diff options
| author | Carl Hetherington <cth@carlh.net> | 2023-02-13 22:47:16 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2023-02-13 22:47:16 +0100 |
| commit | a488be44fa7559553036d4b081ad8e115311500b (patch) | |
| tree | 134bbf1460dee935887f9dff7dc47b87d80039f0 /src/lib/dcp_decoder.cc | |
| parent | 584192cf457f0280c31bdac164e1058a734d0516 (diff) | |
Cleanup: extract pass_video().
Diffstat (limited to 'src/lib/dcp_decoder.cc')
| -rw-r--r-- | src/lib/dcp_decoder.cc | 82 |
1 files changed, 45 insertions, 37 deletions
diff --git a/src/lib/dcp_decoder.cc b/src/lib/dcp_decoder.cc index 9064627ba..7baf05dad 100644 --- a/src/lib/dcp_decoder.cc +++ b/src/lib/dcp_decoder.cc @@ -139,6 +139,50 @@ DCPDecoder::DCPDecoder (shared_ptr<const Film> film, shared_ptr<const DCPContent } +void +DCPDecoder::pass_video(Frame frame, dcp::Size size) +{ + auto const entry_point = (*_reel)->main_picture()->entry_point().get_value_or(0); + + if (_mono_reader) { + video->emit ( + film(), + std::make_shared<J2KImageProxy>( + _mono_reader->get_frame (entry_point + frame), + size, + AV_PIX_FMT_XYZ12LE, + _forced_reduction + ), + _offset + frame + ); + } else { + video->emit ( + film(), + std::make_shared<J2KImageProxy>( + _stereo_reader->get_frame (entry_point + frame), + size, + dcp::Eye::LEFT, + AV_PIX_FMT_XYZ12LE, + _forced_reduction + ), + _offset + frame + ); + + video->emit ( + film(), + std::make_shared<J2KImageProxy>( + _stereo_reader->get_frame (entry_point + frame), + size, + dcp::Eye::RIGHT, + AV_PIX_FMT_XYZ12LE, + _forced_reduction + ), + _offset + frame + ); + } +} + + bool DCPDecoder::pass () { @@ -167,43 +211,7 @@ DCPDecoder::pass () pass_texts (_next, picture_asset->size()); if ((_mono_reader || _stereo_reader) && (_decode_referenced || !_dcp_content->reference_video())) { - auto const entry_point = (*_reel)->main_picture()->entry_point().get_value_or(0); - if (_mono_reader) { - video->emit ( - film(), - std::make_shared<J2KImageProxy>( - _mono_reader->get_frame (entry_point + frame), - picture_asset->size(), - AV_PIX_FMT_XYZ12LE, - _forced_reduction - ), - _offset + frame - ); - } else { - video->emit ( - film(), - std::make_shared<J2KImageProxy>( - _stereo_reader->get_frame (entry_point + frame), - picture_asset->size(), - dcp::Eye::LEFT, - AV_PIX_FMT_XYZ12LE, - _forced_reduction - ), - _offset + frame - ); - - video->emit ( - film(), - std::make_shared<J2KImageProxy>( - _stereo_reader->get_frame (entry_point + frame), - picture_asset->size(), - dcp::Eye::RIGHT, - AV_PIX_FMT_XYZ12LE, - _forced_reduction - ), - _offset + frame - ); - } + pass_video(frame, picture_asset->size()); } if (_sound_reader && (_decode_referenced || !_dcp_content->reference_audio())) { |
