summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2024-07-27 23:54:19 +0200
committerCarl Hetherington <cth@carlh.net>2024-07-28 00:59:35 +0200
commit6f8ff274caa86cdfa551f88ff2b8306b9badb293 (patch)
tree12987303dcc6b79130aa7be3635952da472e306a /src
parent11b3b27de0454d5d66aa11c2d9d2a592f80eaaca (diff)
Cleanup: remove another shared_ptr use.
Diffstat (limited to 'src')
-rw-r--r--src/mono_j2k_picture_frame.cc27
-rw-r--r--src/mono_j2k_picture_frame.h2
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;
};
}