From 0253b4e45c71a1c2e2a8bffaf1c3cb84a0a3e41a Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 3 Aug 2017 17:54:06 +0100 Subject: Basics of forced reduction of JPEG2000 decode resolution. --- src/lib/dcp_decoder.cc | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) (limited to 'src/lib/dcp_decoder.cc') diff --git a/src/lib/dcp_decoder.cc b/src/lib/dcp_decoder.cc index c7294bda7..ef40f2ec7 100644 --- a/src/lib/dcp_decoder.cc +++ b/src/lib/dcp_decoder.cc @@ -48,6 +48,7 @@ using std::list; using std::cout; using boost::shared_ptr; using boost::dynamic_pointer_cast; +using boost::optional; DCPDecoder::DCPDecoder (shared_ptr c, shared_ptr log) : DCP (c) @@ -100,20 +101,39 @@ DCPDecoder::pass () if (_mono_reader) { video->emit ( shared_ptr ( - new J2KImageProxy (_mono_reader->get_frame (entry_point + frame), asset->size(), AV_PIX_FMT_XYZ12LE) + new J2KImageProxy ( + _mono_reader->get_frame (entry_point + frame), + asset->size(), + AV_PIX_FMT_XYZ12LE, + _forced_reduction + ) ), _offset + frame ); } else { video->emit ( shared_ptr ( - new J2KImageProxy (_stereo_reader->get_frame (entry_point + frame), asset->size(), dcp::EYE_LEFT, AV_PIX_FMT_XYZ12LE)), + new J2KImageProxy ( + _stereo_reader->get_frame (entry_point + frame), + asset->size(), + dcp::EYE_LEFT, + AV_PIX_FMT_XYZ12LE, + _forced_reduction + ) + ), _offset + frame ); video->emit ( shared_ptr ( - new J2KImageProxy (_stereo_reader->get_frame (entry_point + frame), asset->size(), dcp::EYE_RIGHT, AV_PIX_FMT_XYZ12LE)), + new J2KImageProxy ( + _stereo_reader->get_frame (entry_point + frame), + asset->size(), + dcp::EYE_RIGHT, + AV_PIX_FMT_XYZ12LE, + _forced_reduction + ) + ), _offset + frame ); } @@ -234,3 +254,9 @@ DCPDecoder::set_decode_referenced () { _decode_referenced = true; } + +void +DCPDecoder::set_forced_reduction (optional reduction) +{ + _forced_reduction = reduction; +} -- cgit v1.2.3