decoder/ffmpeg: use AVStream::duration

Use the duration of the stream we're actually decoding - not the
"global" attribute AVFormatContext::duration which may differ.
This commit is contained in:
Max Kellermann
2014-12-19 10:12:01 +01:00
parent cc19e760cf
commit 42c5f68362
2 changed files with 29 additions and 4 deletions

View File

@@ -583,10 +583,7 @@ ffmpeg_decode(Decoder &decoder, InputStream &input)
}
const SignedSongTime total_time =
format_context->duration != (int64_t)AV_NOPTS_VALUE
? SignedSongTime::FromScale<uint64_t>(format_context->duration,
AV_TIME_BASE)
: SignedSongTime::Negative();
FromFfmpegTimeChecked(av_stream.duration, av_stream.time_base);
decoder_initialized(decoder, audio_format,
input.IsSeekable(), total_time);