summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorGravatar Alexey Yakovenko <waker@users.sourceforge.net>2014-06-25 16:43:01 +0200
committerGravatar Alexey Yakovenko <waker@users.sourceforge.net>2014-06-25 16:43:01 +0200
commite4dcbc4a3285130b14853da94dab5ea23c11119d (patch)
tree64ecbfba4bcb959fd636e60ddf3aec849f471012 /plugins
parent5816d82ae45b86b029bb2e3cedcfc44211d73df8 (diff)
flac: fixed tag writing regression and related error reporting
Diffstat (limited to 'plugins')
-rw-r--r--plugins/flac/flac.c24
1 files changed, 10 insertions, 14 deletions
diff --git a/plugins/flac/flac.c b/plugins/flac/flac.c
index 71d64f0a..93ed1224 100644
--- a/plugins/flac/flac.c
+++ b/plugins/flac/flac.c
@@ -1019,27 +1019,21 @@ cflac_write_metadata (DB_playItem_t *it) {
chain = FLAC__metadata_chain_new ();
if (!chain) {
- trace ("cflac_write_metadata: FLAC__metadata_chain_new failed\n");
+ fprintf (stderr, "cflac_write_metadata: FLAC__metadata_chain_new failed\n");
return -1;
}
deadbeef->pl_lock ();
- DB_FILE *file = deadbeef->fopen (deadbeef->pl_find_meta (it, ":URI"));
- deadbeef->pl_unlock ();
- if (!file) {
- return -1;
- }
- FLAC__bool res = FLAC__metadata_chain_read_with_callbacks (chain, (FLAC__IOHandle)file, iocb);
+ FLAC__bool res = FLAC__metadata_chain_read (chain, deadbeef->pl_find_meta (it, ":URI"));
FLAC__bool isogg = false;
#if USE_OGGEDIT
if (!res && FLAC__metadata_chain_status(chain) == FLAC__METADATA_SIMPLE_ITERATOR_STATUS_NOT_A_FLAC_FILE) {
isogg = true;
- res = FLAC__metadata_chain_read_ogg_with_callbacks (chain, (FLAC__IOHandle)file, iocb);
+ res = FLAC__metadata_chain_read_ogg (chain, deadbeef->pl_find_meta (it, ":URI"));
}
#endif
- deadbeef->fclose (file);
- file = NULL;
+ deadbeef->pl_unlock ();
if (!res) {
- trace ("cflac_write_metadata: FLAC__metadata_chain_read(_ogg) failed - code %d\n", res);
+ fprintf (stderr, "cflac_write_metadata: FLAC__metadata_chain_read(_ogg) failed - code %d\n", res);
goto error;
}
FLAC__metadata_chain_merge_padding (chain);
@@ -1140,11 +1134,13 @@ cflac_write_metadata (DB_playItem_t *it) {
}
#if USE_OGGEDIT
else {
- res = cflac_write_metadata_ogg(it, &data->data.vorbis_comment);
+ if (cflac_write_metadata_ogg(it, &data->data.vorbis_comment)) {
+ res = 0;
+ }
}
#endif
- if (res) {
- trace ("cflac_write_metadata: failed to write tags: code %d\n", res);
+ if (!res) {
+ fprintf (stderr, "cflac_write_metadata: failed to write tags: code %d\n", res);
goto error;
}