summaryrefslogtreecommitdiff
path: root/src/stereo_j2k_picture_frame.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/stereo_j2k_picture_frame.cc')
-rw-r--r--src/stereo_j2k_picture_frame.cc40
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);
}