From 0b97307b78b1d5e017e97ff90d5d05102cb70c1c Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Fri, 7 Jun 2013 17:07:02 +0100 Subject: Fix seeks past the end of video files. --- src/lib/ffmpeg_decoder.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/lib/ffmpeg_decoder.cc') diff --git a/src/lib/ffmpeg_decoder.cc b/src/lib/ffmpeg_decoder.cc index 1d000b62b..2f890c0cd 100644 --- a/src/lib/ffmpeg_decoder.cc +++ b/src/lib/ffmpeg_decoder.cc @@ -247,7 +247,9 @@ FFmpegDecoder::pass () if (_ffmpeg_content->audio_stream() && _decode_audio) { decode_audio_packet (); } - + + /* Stop us being asked for any more data */ + _next_video = _next_audio = _ffmpeg_content->length (); return; } @@ -277,6 +279,8 @@ FFmpegDecoder::pass () } avsubtitle_free (&sub); } + } else { + cout << "[ffmpeg] other packet.\n"; } av_free_packet (&_packet); @@ -443,6 +447,7 @@ void FFmpegDecoder::seek (Time t) { do_seek (t, false, false); + VideoDecoder::seek (t); } void @@ -453,6 +458,7 @@ FFmpegDecoder::seek_back () } do_seek (next() - 2.5 * TIME_HZ / video_frame_rate(), true, true); + VideoDecoder::seek_back (); } void @@ -463,6 +469,7 @@ FFmpegDecoder::seek_forward () } do_seek (next() - 0.5 * TIME_HZ / video_frame_rate(), true, true); + VideoDecoder::seek_forward (); } void -- cgit v1.2.3