diff options
author | Alexey Yakovenko <waker@users.sourceforge.net> | 2014-06-25 16:43:01 +0200 |
---|---|---|
committer | Alexey Yakovenko <waker@users.sourceforge.net> | 2014-06-25 16:43:01 +0200 |
commit | e4dcbc4a3285130b14853da94dab5ea23c11119d (patch) | |
tree | 64ecbfba4bcb959fd636e60ddf3aec849f471012 /plugins/flac/flac.c | |
parent | 5816d82ae45b86b029bb2e3cedcfc44211d73df8 (diff) |
flac: fixed tag writing regression and related error reporting
Diffstat (limited to 'plugins/flac/flac.c')
-rw-r--r-- | plugins/flac/flac.c | 24 |
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; } |