summaryrefslogtreecommitdiff
path: root/src/lib/ffmpeg_decoder.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-06-07 17:07:02 +0100
committerCarl Hetherington <cth@carlh.net>2013-06-07 17:07:02 +0100
commit0b97307b78b1d5e017e97ff90d5d05102cb70c1c (patch)
tree16306c8f066b10a3fb356a3065c2db84220348ce /src/lib/ffmpeg_decoder.cc
parent0799f9481791f8a70589bf9e6991883f48e27b3d (diff)
Fix seeks past the end of video files.
Diffstat (limited to 'src/lib/ffmpeg_decoder.cc')
-rw-r--r--src/lib/ffmpeg_decoder.cc9
1 files changed, 8 insertions, 1 deletions
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