diff options
author | Max Kellermann <max@duempel.org> | 2009-12-27 20:10:45 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2009-12-27 20:10:45 +0100 |
commit | 333e11d0ebb255a2cd04cfde805e68f257b8a2f5 (patch) | |
tree | 33f76a9fee04cdbe0aee7ec1956dbe35a8b7635f | |
parent | 58da24b1cb685b5235dc5a528651b96a35b5b5bf (diff) | |
parent | b1cc760aa5d99f726f52b4c17e06a9f72a0ef58a (diff) | |
download | mpd-333e11d0ebb255a2cd04cfde805e68f257b8a2f5.tar.gz mpd-333e11d0ebb255a2cd04cfde805e68f257b8a2f5.tar.xz mpd-333e11d0ebb255a2cd04cfde805e68f257b8a2f5.zip |
Merged release 0.15.7 from branch 'v0.15.x'
Conflicts:
NEWS
configure.ac
src/decoder_api.c
-rw-r--r-- | Makefile.am | 1 | ||||
-rw-r--r-- | NEWS | 5 | ||||
-rw-r--r-- | src/dbUtils.c | 1 | ||||
-rw-r--r-- | src/decoder/wavpack_plugin.c | 5 | ||||
-rw-r--r-- | src/decoder_api.c | 6 |
5 files changed, 12 insertions, 6 deletions
diff --git a/Makefile.am b/Makefile.am index 58a04f10c..12c933e9a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1007,6 +1007,7 @@ DOCBOOK_HTML = endif doc/api/html/index.html: doc/doxygen.conf + @mkdir -p $(@D) $(DOXYGEN) $< all-local: $(DOCBOOK_HTML) doc/api/html/index.html @@ -83,7 +83,7 @@ ver 0.16 (20??/??/??) * require GLib 2.12 -ver 0.15.7 (2009/??/??) +ver 0.15.7 (2009/12/27) * archive: - close archive when stream is closed - iso, zip: fixed memory leak in destructor @@ -93,11 +93,14 @@ ver 0.15.7 (2009/??/??) * tags: - id3: fix ID3v1 charset conversion * decoders: + - eliminate jitter after seek failure - ffmpeg: don't try to force stereo + - wavpack: allow fine-grained seeking * mixer: explicitly close all mixers on shutdown * mapper: fix memory leak when playlist_directory is not set * mapper: apply filesystem_charset to playlists * command: verify playlist name in the "rm" command +* database: return multiple tag values per song ver 0.15.6 (2009/11/18) diff --git a/src/dbUtils.c b/src/dbUtils.c index e56b7438d..7a0f532b8 100644 --- a/src/dbUtils.c +++ b/src/dbUtils.c @@ -268,7 +268,6 @@ visitTag(struct client *client, struct strset *set, for (unsigned i = 0; i < tag->num_items; i++) { if (tag->items[i]->type == tagType) { strset_add(set, tag->items[i]->value); - return; } } diff --git a/src/decoder/wavpack_plugin.c b/src/decoder/wavpack_plugin.c index 8b80b1476..fbcebb803 100644 --- a/src/decoder/wavpack_plugin.c +++ b/src/decoder/wavpack_plugin.c @@ -201,10 +201,9 @@ wavpack_decode(struct decoder *decoder, WavpackContext *wpc, bool can_seek, do { if (decoder_get_command(decoder) == DECODE_COMMAND_SEEK) { if (can_seek) { - int where; + unsigned where = decoder_seek_where(decoder) * + audio_format.sample_rate; - where = decoder_seek_where(decoder); - where *= audio_format.sample_rate; if (WavpackSeekSample(wpc, where)) { decoder_command_finished(decoder); } else { diff --git a/src/decoder_api.c b/src/decoder_api.c index 704f6dbf7..e902c454a 100644 --- a/src/decoder_api.c +++ b/src/decoder_api.c @@ -107,7 +107,9 @@ decoder_command_finished(struct decoder *decoder) dc->seek_error || decoder->seeking); assert(dc->pipe != NULL); - if (dc->command == DECODE_COMMAND_SEEK) { + if (decoder->seeking) { + decoder->seeking = false; + /* delete frames from the old song position */ if (decoder->chunk != NULL) { @@ -146,6 +148,8 @@ void decoder_seek_error(struct decoder * decoder) assert(dc->pipe != NULL); dc->seek_error = true; + decoder->seeking = false; + decoder_command_finished(decoder); } |