From 424f9d0c70ff0832da0509776da939b2f855cdc1 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 9 Jul 2014 16:41:53 +0100 Subject: Use a new ImageProxy to hold J2K data from DCP content. --- src/lib/dcp_decoder.cc | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) (limited to 'src/lib/dcp_decoder.cc') diff --git a/src/lib/dcp_decoder.cc b/src/lib/dcp_decoder.cc index 1939fc1c9..e23efba3e 100644 --- a/src/lib/dcp_decoder.cc +++ b/src/lib/dcp_decoder.cc @@ -62,23 +62,20 @@ DCPDecoder::pass () shared_ptr mxf = (*_reel)->main_picture()->mxf (); shared_ptr mono = dynamic_pointer_cast (mxf); shared_ptr stereo = dynamic_pointer_cast (mxf); - int64_t const ep = (*_reel)->main_picture()->entry_point (); + int64_t const entry_point = (*_reel)->main_picture()->entry_point (); + int64_t const frame = _next.frames (vfr); if (mono) { - shared_ptr image (new Image (PIX_FMT_RGB24, mxf->size(), false)); - mono->get_frame (ep + _next.frames (vfr))->rgb_frame (image->data()[0]); - shared_ptr aligned (new Image (image, true)); - video (shared_ptr (new RawImageProxy (aligned, _log)), _next.frames (vfr)); + video (shared_ptr (new J2KImageProxy (mono->get_frame (entry_point + frame), mxf->size(), _log)), frame); } else { - - shared_ptr left (new Image (PIX_FMT_RGB24, mxf->size(), false)); - stereo->get_frame (ep + _next.frames (vfr))->rgb_frame (dcp::EYE_LEFT, left->data()[0]); - shared_ptr aligned_left (new Image (left, true)); - video (shared_ptr (new RawImageProxy (aligned_left, _log)), _next.frames (vfr)); - - shared_ptr right (new Image (PIX_FMT_RGB24, mxf->size(), false)); - stereo->get_frame (ep + _next.frames (vfr))->rgb_frame (dcp::EYE_RIGHT, right->data()[0]); - shared_ptr aligned_right (new Image (right, true)); - video (shared_ptr (new RawImageProxy (aligned_right, _log)), _next.frames (vfr)); + video ( + shared_ptr (new J2KImageProxy (stereo->get_frame (entry_point + frame), mxf->size(), dcp::EYE_LEFT, _log)), + frame + ); + + video ( + shared_ptr (new J2KImageProxy (stereo->get_frame (entry_point + frame), mxf->size(), dcp::EYE_RIGHT, _log)), + frame + ); } } -- cgit v1.2.3