Merged release 0.15.7 from branch 'v0.15.x'
Conflicts: NEWS configure.ac src/decoder_api.c
This commit is contained in:
commit
333e11d0eb
@ -1007,6 +1007,7 @@ DOCBOOK_HTML =
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
doc/api/html/index.html: doc/doxygen.conf
|
doc/api/html/index.html: doc/doxygen.conf
|
||||||
|
@mkdir -p $(@D)
|
||||||
$(DOXYGEN) $<
|
$(DOXYGEN) $<
|
||||||
|
|
||||||
all-local: $(DOCBOOK_HTML) doc/api/html/index.html
|
all-local: $(DOCBOOK_HTML) doc/api/html/index.html
|
||||||
|
5
NEWS
5
NEWS
@ -83,7 +83,7 @@ ver 0.16 (20??/??/??)
|
|||||||
* require GLib 2.12
|
* require GLib 2.12
|
||||||
|
|
||||||
|
|
||||||
ver 0.15.7 (2009/??/??)
|
ver 0.15.7 (2009/12/27)
|
||||||
* archive:
|
* archive:
|
||||||
- close archive when stream is closed
|
- close archive when stream is closed
|
||||||
- iso, zip: fixed memory leak in destructor
|
- iso, zip: fixed memory leak in destructor
|
||||||
@ -93,11 +93,14 @@ ver 0.15.7 (2009/??/??)
|
|||||||
* tags:
|
* tags:
|
||||||
- id3: fix ID3v1 charset conversion
|
- id3: fix ID3v1 charset conversion
|
||||||
* decoders:
|
* decoders:
|
||||||
|
- eliminate jitter after seek failure
|
||||||
- ffmpeg: don't try to force stereo
|
- ffmpeg: don't try to force stereo
|
||||||
|
- wavpack: allow fine-grained seeking
|
||||||
* mixer: explicitly close all mixers on shutdown
|
* mixer: explicitly close all mixers on shutdown
|
||||||
* mapper: fix memory leak when playlist_directory is not set
|
* mapper: fix memory leak when playlist_directory is not set
|
||||||
* mapper: apply filesystem_charset to playlists
|
* mapper: apply filesystem_charset to playlists
|
||||||
* command: verify playlist name in the "rm" command
|
* command: verify playlist name in the "rm" command
|
||||||
|
* database: return multiple tag values per song
|
||||||
|
|
||||||
|
|
||||||
ver 0.15.6 (2009/11/18)
|
ver 0.15.6 (2009/11/18)
|
||||||
|
@ -268,7 +268,6 @@ visitTag(struct client *client, struct strset *set,
|
|||||||
for (unsigned i = 0; i < tag->num_items; i++) {
|
for (unsigned i = 0; i < tag->num_items; i++) {
|
||||||
if (tag->items[i]->type == tagType) {
|
if (tag->items[i]->type == tagType) {
|
||||||
strset_add(set, tag->items[i]->value);
|
strset_add(set, tag->items[i]->value);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -201,10 +201,9 @@ wavpack_decode(struct decoder *decoder, WavpackContext *wpc, bool can_seek,
|
|||||||
do {
|
do {
|
||||||
if (decoder_get_command(decoder) == DECODE_COMMAND_SEEK) {
|
if (decoder_get_command(decoder) == DECODE_COMMAND_SEEK) {
|
||||||
if (can_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)) {
|
if (WavpackSeekSample(wpc, where)) {
|
||||||
decoder_command_finished(decoder);
|
decoder_command_finished(decoder);
|
||||||
} else {
|
} else {
|
||||||
|
@ -107,7 +107,9 @@ decoder_command_finished(struct decoder *decoder)
|
|||||||
dc->seek_error || decoder->seeking);
|
dc->seek_error || decoder->seeking);
|
||||||
assert(dc->pipe != NULL);
|
assert(dc->pipe != NULL);
|
||||||
|
|
||||||
if (dc->command == DECODE_COMMAND_SEEK) {
|
if (decoder->seeking) {
|
||||||
|
decoder->seeking = false;
|
||||||
|
|
||||||
/* delete frames from the old song position */
|
/* delete frames from the old song position */
|
||||||
|
|
||||||
if (decoder->chunk != NULL) {
|
if (decoder->chunk != NULL) {
|
||||||
@ -146,6 +148,8 @@ void decoder_seek_error(struct decoder * decoder)
|
|||||||
assert(dc->pipe != NULL);
|
assert(dc->pipe != NULL);
|
||||||
|
|
||||||
dc->seek_error = true;
|
dc->seek_error = true;
|
||||||
|
decoder->seeking = false;
|
||||||
|
|
||||||
decoder_command_finished(decoder);
|
decoder_command_finished(decoder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user