diff options
author | Max Kellermann <max@duempel.org> | 2013-12-24 12:20:24 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2013-12-24 12:20:24 +0100 |
commit | 64e898f6dbcfe5e584cb308dd3eca411bfd7667d (patch) | |
tree | 6b0e7ea929ad019a8591cc54a3b88febc74e8983 | |
parent | 1732166328f3e2db3d959b60bbe46f85d36d8e77 (diff) | |
parent | fb34519b96629291d0f26990931ec89c47a4ade2 (diff) | |
download | mpd-64e898f6dbcfe5e584cb308dd3eca411bfd7667d.tar.gz mpd-64e898f6dbcfe5e584cb308dd3eca411bfd7667d.tar.xz mpd-64e898f6dbcfe5e584cb308dd3eca411bfd7667d.zip |
Merge tag 'release-0.18.6'
-rw-r--r-- | NEWS | 7 | ||||
-rw-r--r-- | src/OutputControl.cxx | 2 | ||||
-rw-r--r-- | src/PlayerThread.cxx | 5 | ||||
-rw-r--r-- | src/decoder/FfmpegDecoderPlugin.cxx | 10 | ||||
-rw-r--r-- | src/input/CdioParanoiaInputPlugin.cxx | 2 | ||||
-rw-r--r-- | src/tag/Riff.cxx | 3 |
6 files changed, 21 insertions, 8 deletions
@@ -5,14 +5,19 @@ ver 0.19 (not yet released) - alsa: new input plugin * new resampler option using libsoxr -ver 0.18.6 (not yet released) +ver 0.18.6 (2013/12/24) * input - cdio_paranoia: support libcdio-paranoia 0.90 +* tags + - riff: recognize upper-case "ID3" chunk name +* decoder + - ffmpeg: use relative timestamps * output - openal: fix build failure on Mac OS X - osx: fix build failure * mixer - alsa: fix build failure with uClibc +* fix replay gain during cross-fade * accept files without metadata ver 0.18.5 (2013/11/23) diff --git a/src/OutputControl.cxx b/src/OutputControl.cxx index be0d2bec9..bcfd6a8c1 100644 --- a/src/OutputControl.cxx +++ b/src/OutputControl.cxx @@ -96,6 +96,8 @@ audio_output_set_replay_gain_mode(struct audio_output *ao, { if (ao->replay_gain_filter != nullptr) replay_gain_filter_set_mode(ao->replay_gain_filter, mode); + if (ao->other_replay_gain_filter != nullptr) + replay_gain_filter_set_mode(ao->other_replay_gain_filter, mode); } void diff --git a/src/PlayerThread.cxx b/src/PlayerThread.cxx index 42c7120f0..aa42eed49 100644 --- a/src/PlayerThread.cxx +++ b/src/PlayerThread.cxx @@ -1080,8 +1080,11 @@ Player::Run() delete cross_fade_tag; - if (song != nullptr) + if (song != nullptr) { + const auto uri = song->GetURI(); + FormatDefault(player_domain, "played \"%s\"", uri.c_str()); song->Free(); + } pc.Lock(); diff --git a/src/decoder/FfmpegDecoderPlugin.cxx b/src/decoder/FfmpegDecoderPlugin.cxx index a14b04510..01b551bb1 100644 --- a/src/decoder/FfmpegDecoderPlugin.cxx +++ b/src/decoder/FfmpegDecoderPlugin.cxx @@ -250,13 +250,14 @@ static DecoderCommand ffmpeg_send_packet(Decoder &decoder, InputStream &is, const AVPacket *packet, AVCodecContext *codec_context, - const AVRational *time_base, + const AVStream *stream, AVFrame *frame, uint8_t **buffer, int *buffer_size) { if (packet->pts >= 0 && packet->pts != (int64_t)AV_NOPTS_VALUE) decoder_timestamp(decoder, - time_from_ffmpeg(packet->pts, *time_base)); + time_from_ffmpeg(packet->pts - stream->start_time, + stream->time_base)); AVPacket packet2 = *packet; @@ -469,7 +470,7 @@ ffmpeg_decode(Decoder &decoder, InputStream &input) if (packet.stream_index == audio_stream) cmd = ffmpeg_send_packet(decoder, input, &packet, codec_context, - &av_stream->time_base, + av_stream, frame, &interleaved_buffer, &interleaved_buffer_size); else @@ -480,7 +481,8 @@ ffmpeg_decode(Decoder &decoder, InputStream &input) if (cmd == DecoderCommand::SEEK) { int64_t where = time_to_ffmpeg(decoder_seek_where(decoder), - av_stream->time_base); + av_stream->time_base) + + av_stream->start_time; if (av_seek_frame(format_context, audio_stream, where, AV_TIME_BASE) < 0) diff --git a/src/input/CdioParanoiaInputPlugin.cxx b/src/input/CdioParanoiaInputPlugin.cxx index 73fb8acdd..bf1c3c908 100644 --- a/src/input/CdioParanoiaInputPlugin.cxx +++ b/src/input/CdioParanoiaInputPlugin.cxx @@ -43,7 +43,7 @@ #include <assert.h> #ifdef HAVE_CDIO_PARANOIA_PARANOIA_H -#include <cdio/parannoia/paranoia.h> +#include <cdio/paranoia/paranoia.h> #else #include <cdio/paranoia.h> #endif diff --git a/src/tag/Riff.cxx b/src/tag/Riff.cxx index 73b2139d3..0f8f265fc 100644 --- a/src/tag/Riff.cxx +++ b/src/tag/Riff.cxx @@ -86,7 +86,8 @@ riff_seek_id3(FILE *file) /* pad byte */ ++size; - if (memcmp(chunk.id, "id3 ", 4) == 0) + if (memcmp(chunk.id, "id3 ", 4) == 0 || + memcmp(chunk.id, "ID3 ", 4) == 0) /* found it! */ return size; |