X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fvideo_decoder.cc;h=3625e074fba0460fc63729a00bc30c446f7d769b;hb=35992b8f2c9d58a08d1ecb08a39d7c99362fd2c0;hp=9afbd31c46bbd4d52304b478c054fee62fa2e97d;hpb=130577d2e4e67de15ac8f5d6447729736d4bcac6;p=dcpomatic.git diff --git a/src/lib/video_decoder.cc b/src/lib/video_decoder.cc index 9afbd31c4..3625e074f 100644 --- a/src/lib/video_decoder.cc +++ b/src/lib/video_decoder.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2016 Carl Hetherington + Copyright (C) 2012-2018 Carl Hetherington This file is part of DCP-o-matic. @@ -59,7 +59,6 @@ VideoDecoder::emit (shared_ptr image, Frame frame) return; } - /* Work out what we are going to emit next */ switch (_content->video->frame_type ()) { case VIDEO_FRAME_TYPE_2D: Data (ContentVideo (image, frame, EYES_BOTH, PART_WHOLE)); @@ -76,6 +75,7 @@ VideoDecoder::emit (shared_ptr image, Frame frame) } case VIDEO_FRAME_TYPE_3D_ALTERNATE: Data (ContentVideo (image, frame / 2, (frame % 2) ? EYES_RIGHT : EYES_LEFT, PART_WHOLE)); + frame /= 2; break; case VIDEO_FRAME_TYPE_3D_LEFT_RIGHT: Data (ContentVideo (image, frame, EYES_LEFT, PART_LEFT_HALF)); @@ -97,3 +97,10 @@ VideoDecoder::emit (shared_ptr image, Frame frame) _position = ContentTime::from_frames (frame, _content->active_video_frame_rate ()); } + +void +VideoDecoder::seek () +{ + _position = ContentTime(); + _last_emitted.reset (); +}