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 /src/decoder/FfmpegDecoderPlugin.cxx | |
parent | 1732166328f3e2db3d959b60bbe46f85d36d8e77 (diff) | |
parent | fb34519b96629291d0f26990931ec89c47a4ade2 (diff) | |
download | mpd-64e898f6dbcfe5e584cb308dd3eca411bfd7667d.tar.gz mpd-64e898f6dbcfe5e584cb308dd3eca411bfd7667d.tar.xz mpd-64e898f6dbcfe5e584cb308dd3eca411bfd7667d.zip |
Merge tag 'release-0.18.6'
Diffstat (limited to '')
-rw-r--r-- | src/decoder/FfmpegDecoderPlugin.cxx | 10 |
1 files changed, 6 insertions, 4 deletions
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) |