Commit 64e898f6 authored by Max Kellermann's avatar Max Kellermann

Merge tag 'release-0.18.6'

parents 17321663 fb34519b
...@@ -5,14 +5,19 @@ ver 0.19 (not yet released) ...@@ -5,14 +5,19 @@ ver 0.19 (not yet released)
- alsa: new input plugin - alsa: new input plugin
* new resampler option using libsoxr * new resampler option using libsoxr
ver 0.18.6 (not yet released) ver 0.18.6 (2013/12/24)
* input * input
- cdio_paranoia: support libcdio-paranoia 0.90 - cdio_paranoia: support libcdio-paranoia 0.90
* tags
- riff: recognize upper-case "ID3" chunk name
* decoder
- ffmpeg: use relative timestamps
* output * output
- openal: fix build failure on Mac OS X - openal: fix build failure on Mac OS X
- osx: fix build failure - osx: fix build failure
* mixer * mixer
- alsa: fix build failure with uClibc - alsa: fix build failure with uClibc
* fix replay gain during cross-fade
* accept files without metadata * accept files without metadata
ver 0.18.5 (2013/11/23) ver 0.18.5 (2013/11/23)
......
...@@ -96,6 +96,8 @@ audio_output_set_replay_gain_mode(struct audio_output *ao, ...@@ -96,6 +96,8 @@ audio_output_set_replay_gain_mode(struct audio_output *ao,
{ {
if (ao->replay_gain_filter != nullptr) if (ao->replay_gain_filter != nullptr)
replay_gain_filter_set_mode(ao->replay_gain_filter, mode); 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 void
......
...@@ -1080,8 +1080,11 @@ Player::Run() ...@@ -1080,8 +1080,11 @@ Player::Run()
delete cross_fade_tag; 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(); song->Free();
}
pc.Lock(); pc.Lock();
......
...@@ -250,13 +250,14 @@ static DecoderCommand ...@@ -250,13 +250,14 @@ static DecoderCommand
ffmpeg_send_packet(Decoder &decoder, InputStream &is, ffmpeg_send_packet(Decoder &decoder, InputStream &is,
const AVPacket *packet, const AVPacket *packet,
AVCodecContext *codec_context, AVCodecContext *codec_context,
const AVRational *time_base, const AVStream *stream,
AVFrame *frame, AVFrame *frame,
uint8_t **buffer, int *buffer_size) uint8_t **buffer, int *buffer_size)
{ {
if (packet->pts >= 0 && packet->pts != (int64_t)AV_NOPTS_VALUE) if (packet->pts >= 0 && packet->pts != (int64_t)AV_NOPTS_VALUE)
decoder_timestamp(decoder, decoder_timestamp(decoder,
time_from_ffmpeg(packet->pts, *time_base)); time_from_ffmpeg(packet->pts - stream->start_time,
stream->time_base));
AVPacket packet2 = *packet; AVPacket packet2 = *packet;
...@@ -469,7 +470,7 @@ ffmpeg_decode(Decoder &decoder, InputStream &input) ...@@ -469,7 +470,7 @@ ffmpeg_decode(Decoder &decoder, InputStream &input)
if (packet.stream_index == audio_stream) if (packet.stream_index == audio_stream)
cmd = ffmpeg_send_packet(decoder, input, cmd = ffmpeg_send_packet(decoder, input,
&packet, codec_context, &packet, codec_context,
&av_stream->time_base, av_stream,
frame, frame,
&interleaved_buffer, &interleaved_buffer_size); &interleaved_buffer, &interleaved_buffer_size);
else else
...@@ -480,7 +481,8 @@ ffmpeg_decode(Decoder &decoder, InputStream &input) ...@@ -480,7 +481,8 @@ ffmpeg_decode(Decoder &decoder, InputStream &input)
if (cmd == DecoderCommand::SEEK) { if (cmd == DecoderCommand::SEEK) {
int64_t where = int64_t where =
time_to_ffmpeg(decoder_seek_where(decoder), 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, if (av_seek_frame(format_context, audio_stream, where,
AV_TIME_BASE) < 0) AV_TIME_BASE) < 0)
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
#include <assert.h> #include <assert.h>
#ifdef HAVE_CDIO_PARANOIA_PARANOIA_H #ifdef HAVE_CDIO_PARANOIA_PARANOIA_H
#include <cdio/parannoia/paranoia.h> #include <cdio/paranoia/paranoia.h>
#else #else
#include <cdio/paranoia.h> #include <cdio/paranoia.h>
#endif #endif
......
...@@ -86,7 +86,8 @@ riff_seek_id3(FILE *file) ...@@ -86,7 +86,8 @@ riff_seek_id3(FILE *file)
/* pad byte */ /* pad byte */
++size; ++size;
if (memcmp(chunk.id, "id3 ", 4) == 0) if (memcmp(chunk.id, "id3 ", 4) == 0 ||
memcmp(chunk.id, "ID3 ", 4) == 0)
/* found it! */ /* found it! */
return size; return size;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment