- Eyes const eyes = same ? EYES_RIGHT : EYES_LEFT;
- Data (ContentVideo (image, frame, eyes, PART_WHOLE));
- _last_emitted_frame = frame;
- _last_emitted_eyes = eyes;
+
+ if (_frame_interval_checker->guess() != FrameIntervalChecker::AGAIN) {
+ _frame_interval_checker.reset ();
+ }
+ }
+
+ switch (vft) {
+ case VideoFrameType::TWO_D:
+ Data(ContentVideo(image, time, Eyes::BOTH, Part::WHOLE));
+ break;
+ case VideoFrameType::THREE_D:
+ {
+ auto eyes = Eyes::LEFT;
+ auto j2k = dynamic_pointer_cast<const J2KImageProxy>(image);
+ if (j2k && j2k->eye()) {
+ eyes = *j2k->eye() == dcp::Eye::LEFT ? Eyes::LEFT : Eyes::RIGHT;
+ }
+
+ Data(ContentVideo(image, time, eyes, Part::WHOLE));