- video->give (shared_ptr<ImageProxy> (new J2KImageProxy (stereo->get_frame(frame), stereo->size(), dcp::EYE_LEFT)), frame);
- video->give (shared_ptr<ImageProxy> (new J2KImageProxy (stereo->get_frame(frame), stereo->size(), dcp::EYE_RIGHT)), frame);
+ _stereo_reader = stereo->start_read ();
+ _stereo_reader->set_check_hmac (false);
+ _size = stereo->size ();
+ }
+}
+
+
+bool
+VideoMXFDecoder::pass ()
+{
+ auto const vfr = _content->active_video_frame_rate (film());
+ auto const frame = _next.frames_round (vfr);
+
+ if (frame >= _content->video->length()) {
+ return true;
+ }
+
+ if (_mono_reader) {
+ video->emit (
+ film(),
+ std::make_shared<J2KImageProxy>(_mono_reader->get_frame(frame), _size, AV_PIX_FMT_XYZ12LE, optional<int>()),
+ frame
+ );
+ } else {
+ video->emit (
+ film(),
+ std::make_shared<J2KImageProxy>(_stereo_reader->get_frame(frame), _size, dcp::Eye::LEFT, AV_PIX_FMT_XYZ12LE, optional<int>()),
+ frame
+ );
+ video->emit (
+ film(),
+ std::make_shared<J2KImageProxy>(_stereo_reader->get_frame(frame), _size, dcp::Eye::RIGHT, AV_PIX_FMT_XYZ12LE, optional<int>()),
+ frame
+ );