in the audio stream if it is lower than that for the video stream.
The FFmpeg docs don't support it, AFAICS, as they suggest that
the the seek should be in the timebase of the specified stream.
It also causes problems with the "preview" test when seeking
inaccurately in the viewer.
{
VideoDecoder::seek (time, accurate);
AudioDecoder::seek (time, accurate);
{
VideoDecoder::seek (time, accurate);
AudioDecoder::seek (time, accurate);
/* If we are doing an `accurate' seek, we need to use pre-roll, as
we don't really know what the seek will give us.
*/
/* If we are doing an `accurate' seek, we need to use pre-roll, as
we don't really know what the seek will give us.
*/
*/
ContentTime const u = time - _pts_offset;
*/
ContentTime const u = time - _pts_offset;
- int64_t s = u.seconds() / av_q2d (_format_context->streams[_video_stream]->time_base);
-
- if (_ffmpeg_content->audio_stream ()) {
- s = min (
- s, int64_t (u.seconds() / av_q2d (_ffmpeg_content->audio_stream()->stream(_format_context)->time_base))
- );
- }
-
- av_seek_frame (_format_context, _video_stream, s, 0);
+ av_seek_frame (_format_context, _video_stream, u.seconds() / av_q2d (_format_context->streams[_video_stream]->time_base), 0);
avcodec_flush_buffers (video_codec_context());
if (audio_codec_context ()) {
avcodec_flush_buffers (video_codec_context());
if (audio_codec_context ()) {