diff options
| author | Carl Hetherington <cth@carlh.net> | 2024-07-27 23:54:19 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2024-07-28 00:59:35 +0200 |
| commit | 6f8ff274caa86cdfa551f88ff2b8306b9badb293 (patch) | |
| tree | 12987303dcc6b79130aa7be3635952da472e306a /src | |
| parent | 11b3b27de0454d5d66aa11c2d9d2a592f80eaaca (diff) | |
Cleanup: remove another shared_ptr use.
Diffstat (limited to 'src')
| -rw-r--r-- | src/mono_j2k_picture_frame.cc | 27 | ||||
| -rw-r--r-- | src/mono_j2k_picture_frame.h | 2 |
2 files changed, 13 insertions, 16 deletions
diff --git a/src/mono_j2k_picture_frame.cc b/src/mono_j2k_picture_frame.cc index 69ba9a59..e0dd4b59 100644 --- a/src/mono_j2k_picture_frame.cc +++ b/src/mono_j2k_picture_frame.cc @@ -59,19 +59,18 @@ using namespace dcp; MonoJ2KPictureFrame::MonoJ2KPictureFrame (boost::filesystem::path path) + : _buffer(boost::filesystem::file_size(path)) { - auto const size = filesystem::file_size(path); - _buffer.reset(new ASDCP::JP2K::FrameBuffer(size)); File f(path, "rb"); if (!f) { boost::throw_exception (FileError("could not open JPEG2000 file", path, errno)); } - if (f.read(data(), 1, size) != size) { + if (f.read(data(), 1, _buffer.Capacity()) != _buffer.Capacity()) { boost::throw_exception (FileError("could not read from JPEG2000 file", path, errno)); } - _buffer->Size (size); + _buffer.Size(_buffer.Capacity()); } @@ -82,11 +81,9 @@ MonoJ2KPictureFrame::MonoJ2KPictureFrame (boost::filesystem::path path) * @param check_hmac true to check the HMAC and give an error if it is not as expected. */ MonoJ2KPictureFrame::MonoJ2KPictureFrame (ASDCP::JP2K::MXFReader* 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::FrameBuffer>(4 * Kumu::Megabyte); - - auto const r = reader->ReadFrame (n, *_buffer, c->context(), check_hmac ? c->hmac() : nullptr); + auto const r = reader->ReadFrame(n, _buffer, c->context(), check_hmac ? c->hmac() : nullptr); if (ASDCP_FAILURE(r)) { boost::throw_exception (ReadError(String::compose ("could not read video frame %1 (%2)", n, static_cast<int>(r)))); @@ -95,36 +92,36 @@ MonoJ2KPictureFrame::MonoJ2KPictureFrame (ASDCP::JP2K::MXFReader* reader, int n, MonoJ2KPictureFrame::MonoJ2KPictureFrame (uint8_t const * data, int size) + : _buffer(size) { - _buffer = make_shared<ASDCP::JP2K::FrameBuffer>(size); - _buffer->Size (size); - memcpy (_buffer->Data(), data, size); + _buffer.Size(size); + memcpy(_buffer.Data(), data, size); } uint8_t const * MonoJ2KPictureFrame::data () const { - return _buffer->RoData (); + return _buffer.RoData(); } uint8_t * MonoJ2KPictureFrame::data () { - return _buffer->Data (); + return _buffer.Data(); } int MonoJ2KPictureFrame::size () const { - return _buffer->Size (); + return _buffer.Size(); } shared_ptr<OpenJPEGImage> MonoJ2KPictureFrame::xyz_image (int reduce) const { - return decompress_j2k (const_cast<uint8_t*>(_buffer->RoData()), _buffer->Size(), reduce); + return decompress_j2k(const_cast<uint8_t*>(_buffer.RoData()), _buffer.Size(), reduce); } diff --git a/src/mono_j2k_picture_frame.h b/src/mono_j2k_picture_frame.h index f08e7343..af2002a1 100644 --- a/src/mono_j2k_picture_frame.h +++ b/src/mono_j2k_picture_frame.h @@ -102,7 +102,7 @@ private: MonoJ2KPictureFrame (ASDCP::JP2K::MXFReader* reader, int n, std::shared_ptr<DecryptionContext>, bool check_hmac); - std::shared_ptr<ASDCP::JP2K::FrameBuffer> _buffer; + ASDCP::JP2K::FrameBuffer _buffer; }; } |
