- video->give (shared_ptr<ImageProxy> (new J2KImageProxy (mono->get_frame(frame), mono->size())), frame);
+ _mono_reader = mono->start_read ();
+ _size = mono->size ();
+ } else {
+ _stereo_reader = stereo->start_read ();
+ _size = stereo->size ();
+ }
+}
+
+bool
+VideoMXFDecoder::pass ()
+{
+ double const vfr = _content->active_video_frame_rate (film());
+ int64_t const frame = _next.frames_round (vfr);
+
+ if (frame >= _content->video->length()) {
+ return true;
+ }
+
+ if (_mono_reader) {
+ video->emit (
+ film(),
+ shared_ptr<ImageProxy> (
+ new J2KImageProxy (_mono_reader->get_frame(frame), _size, AV_PIX_FMT_XYZ12LE, optional<int>())
+ ),
+ frame
+ );