diff options
| author | Carl Hetherington <cth@carlh.net> | 2024-08-02 18:23:36 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2024-08-02 18:23:36 +0200 |
| commit | 7d9e108ba3629b2e9120bc1da3354935c41aca37 (patch) | |
| tree | c8ffdb2bca75d62bfe9fa2262e9fc4cd19c45027 /src/stereo_j2k_picture_frame.cc | |
| parent | 6f98afd8021f9475bbd342bdcb39162b3167fa9e (diff) | |
WIP: more hacks.shared-ptr
Diffstat (limited to 'src/stereo_j2k_picture_frame.cc')
| -rw-r--r-- | src/stereo_j2k_picture_frame.cc | 40 |
1 files changed, 19 insertions, 21 deletions
diff --git a/src/stereo_j2k_picture_frame.cc b/src/stereo_j2k_picture_frame.cc index 8e09888a..fccd9983 100644 --- a/src/stereo_j2k_picture_frame.cc +++ b/src/stereo_j2k_picture_frame.cc @@ -55,7 +55,7 @@ using std::make_shared; using namespace dcp; -StereoJ2KPictureFrame::Part::Part (shared_ptr<ASDCP::JP2K::SFrameBuffer> buffer, Eye eye) +StereoJ2KPictureFrame::Part::Part(ASDCP::JP2K::SFrameBuffer const& buffer, Eye eye) : _buffer (buffer) , _eye (eye) { @@ -63,10 +63,10 @@ StereoJ2KPictureFrame::Part::Part (shared_ptr<ASDCP::JP2K::SFrameBuffer> buffer, } -ASDCP::JP2K::FrameBuffer & +ASDCP::JP2K::FrameBuffer const& StereoJ2KPictureFrame::Part::mono () const { - return _eye == Eye::LEFT ? _buffer->Left : _buffer->Right; + return _eye == Eye::LEFT ? _buffer.Left : _buffer.Right; } @@ -77,13 +77,6 @@ StereoJ2KPictureFrame::Part::data () const } -uint8_t * -StereoJ2KPictureFrame::Part::data () -{ - return mono().Data(); -} - - int StereoJ2KPictureFrame::Part::size () const { @@ -97,19 +90,24 @@ StereoJ2KPictureFrame::Part::size () const * @param check_hmac true to check the HMAC and give an error if it is not as expected. */ StereoJ2KPictureFrame::StereoJ2KPictureFrame (ASDCP::JP2K::MXFSReader* reader, int n, shared_ptr<DecryptionContext> c, bool check_hmac) + : _buffer(4 * Kumu::Megabyte) { - /* XXX: unfortunate guesswork on this buffer size */ - _buffer = make_shared<ASDCP::JP2K::SFrameBuffer>(4 * Kumu::Megabyte); - - if (ASDCP_FAILURE (reader->ReadFrame (n, *_buffer, c->context(), check_hmac ? c->hmac() : nullptr))) { + if (ASDCP_FAILURE(reader->ReadFrame(n, _buffer, c->context(), check_hmac ? c->hmac() : nullptr))) { boost::throw_exception (ReadError (String::compose ("could not read video frame %1 of %2", n))); } } StereoJ2KPictureFrame::StereoJ2KPictureFrame () + : _buffer(4 * Kumu::Megabyte) { - _buffer = make_shared<ASDCP::JP2K::SFrameBuffer>(4 * Kumu::Megabyte); +} + + +StereoJ2KPictureFrame::StereoJ2KPictureFrame(StereoJ2KPictureFrame&& other) + : _buffer(std::move(other._buffer)) +{ + } @@ -123,26 +121,26 @@ StereoJ2KPictureFrame::xyz_image (Eye eye, int reduce) const { switch (eye) { case Eye::LEFT: - return decompress_j2k(_buffer->Left.RoData(), _buffer->Left.Size(), reduce); + return decompress_j2k(_buffer.Left.RoData(), _buffer.Left.Size(), reduce); case Eye::RIGHT: - return decompress_j2k(_buffer->Right.RoData(), _buffer->Right.Size(), reduce); + return decompress_j2k(_buffer.Right.RoData(), _buffer.Right.Size(), reduce); } return {}; } -shared_ptr<StereoJ2KPictureFrame::Part> +StereoJ2KPictureFrame::Part StereoJ2KPictureFrame::right () const { - return make_shared<Part>(_buffer, Eye::RIGHT); + return Part(_buffer, Eye::RIGHT); } -shared_ptr<StereoJ2KPictureFrame::Part> +StereoJ2KPictureFrame::Part StereoJ2KPictureFrame::left () const { - return make_shared<Part>(_buffer, Eye::LEFT); + return Part(_buffer, Eye::LEFT); } |
