diff options
| author | Carl Hetherington <cth@carlh.net> | 2017-12-13 22:03:56 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2017-12-13 22:03:56 +0000 |
| commit | 3c634dda1e88fe04b0f468f39bd13ea41a80989b (patch) | |
| tree | 6174ed73dab44d105ecc2f17620890b84efa14b6 /src | |
| parent | fb771f2613cd3e7f43bf613d592d6937a1017f2d (diff) | |
Reset VideoDecoder::_position on seek.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/decoder.cc | 3 | ||||
| -rw-r--r-- | src/lib/video_decoder.cc | 7 | ||||
| -rw-r--r-- | src/lib/video_decoder.h | 2 |
3 files changed, 12 insertions, 0 deletions
diff --git a/src/lib/decoder.cc b/src/lib/decoder.cc index 0d4f4babf..502273de1 100644 --- a/src/lib/decoder.cc +++ b/src/lib/decoder.cc @@ -52,6 +52,9 @@ Decoder::position () const void Decoder::seek (ContentTime, bool) { + if (video) { + video->seek (); + } if (audio) { audio->seek (); } diff --git a/src/lib/video_decoder.cc b/src/lib/video_decoder.cc index dceadcd15..b9ead52c8 100644 --- a/src/lib/video_decoder.cc +++ b/src/lib/video_decoder.cc @@ -101,3 +101,10 @@ VideoDecoder::emit (shared_ptr<const ImageProxy> image, Frame frame) _position = ContentTime::from_frames (frame, _content->active_video_frame_rate ()); } } + +void +VideoDecoder::seek () +{ + _position = ContentTime(); + _last_emitted.reset (); +} diff --git a/src/lib/video_decoder.h b/src/lib/video_decoder.h index 8b199bd1d..c5e2ea4cf 100644 --- a/src/lib/video_decoder.h +++ b/src/lib/video_decoder.h @@ -55,6 +55,8 @@ public: return _position; } + void seek (); + void emit (boost::shared_ptr<const ImageProxy>, Frame frame); /** @return true if the emitted data was accepted, false if not */ |
