diff options
| author | Carl Hetherington <cth@carlh.net> | 2020-11-01 23:51:19 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2020-11-02 23:10:04 +0100 |
| commit | 2ea3a0d0e4066a166c0700bd1d53daa7f1c50dff (patch) | |
| tree | a730b75be36d74a8aee1ebab60d5a3aa629d8d35 /src/lib/reel_writer.cc | |
| parent | 6fa9748f382302fa88292b4219598bb81edc7bd0 (diff) | |
Pass around JPEG2000 data as a shared_ptr and hence avoid a copy
of 4MB of data for every JPEG2000 frame we decode.
Diffstat (limited to 'src/lib/reel_writer.cc')
| -rw-r--r-- | src/lib/reel_writer.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/lib/reel_writer.cc b/src/lib/reel_writer.cc index 097b9d84b..7ed79d818 100644 --- a/src/lib/reel_writer.cc +++ b/src/lib/reel_writer.cc @@ -67,6 +67,7 @@ using boost::dynamic_pointer_cast; #if BOOST_VERSION >= 106100 using namespace boost::placeholders; #endif +using dcp::ArrayData; using dcp::Data; using dcp::raw_convert; using namespace dcpomatic; @@ -289,14 +290,14 @@ ReelWriter::check_existing_picture_asset (boost::filesystem::path asset) } void -ReelWriter::write (optional<Data> encoded, Frame frame, Eyes eyes) +ReelWriter::write (shared_ptr<const Data> encoded, Frame frame, Eyes eyes) { if (!_picture_asset_writer) { /* We're not writing any data */ return; } - dcp::FrameInfo fin = _picture_asset_writer->write (encoded->data().get (), encoded->size()); + dcp::FrameInfo fin = _picture_asset_writer->write (encoded->data(), encoded->size()); write_frame_info (frame, eyes, fin); _last_written[eyes] = encoded; } @@ -338,7 +339,7 @@ ReelWriter::repeat_write (Frame frame, Eyes eyes) } dcp::FrameInfo fin = _picture_asset_writer->write ( - _last_written[eyes]->data().get(), + _last_written[eyes]->data(), _last_written[eyes]->size() ); write_frame_info (frame, eyes, fin); |
