-
- Video (image, same, sub, t);
-
- shared_ptr<const Film> film = _film.lock ();
- assert (film);
-
- if (_frame_rate_conversion.repeat) {
- Video (image, true, sub, t + film->video_frames_to_time (1));
- _next_video = t + film->video_frames_to_time (2);
- } else {
- _next_video = t + film->video_frames_to_time (1);
+ 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));
+ Data (ContentVideo (image, frame, EYES_RIGHT, PART_RIGHT_HALF));
+ break;
+ case VIDEO_FRAME_TYPE_3D_TOP_BOTTOM:
+ Data (ContentVideo (image, frame, EYES_LEFT, PART_TOP_HALF));
+ Data (ContentVideo (image, frame, EYES_RIGHT, PART_BOTTOM_HALF));
+ break;
+ case VIDEO_FRAME_TYPE_3D_LEFT:
+ Data (ContentVideo (image, frame, EYES_LEFT, PART_WHOLE));
+ break;
+ case VIDEO_FRAME_TYPE_3D_RIGHT:
+ Data (ContentVideo (image, frame, EYES_RIGHT, PART_WHOLE));
+ break;
+ default:
+ DCPOMATIC_ASSERT (false);