diff options
| author | Carl Hetherington <cth@carlh.net> | 2022-08-11 22:44:57 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2022-08-11 22:44:57 +0200 |
| commit | 83401fffc9f7bfea8c167ecbeec0949e22d76548 (patch) | |
| tree | b5c400ab5e46d71e5ff18aad6f6e32658efd8528 | |
| parent | d37f7f314aebb48ce42e57011b1966d113686c8f (diff) | |
Allow convert_to_xyz() to take any image.
| -rw-r--r-- | src/lib/dcp_video.cc | 5 | ||||
| -rw-r--r-- | src/lib/player_video.cc | 11 | ||||
| -rw-r--r-- | src/lib/player_video.h | 2 |
3 files changed, 9 insertions, 9 deletions
diff --git a/src/lib/dcp_video.cc b/src/lib/dcp_video.cc index e49777265..52b9d5a03 100644 --- a/src/lib/dcp_video.cc +++ b/src/lib/dcp_video.cc @@ -114,7 +114,8 @@ DCPVideo::encode_locally () const int const minimum_size = 16384; LOG_DEBUG_ENCODE("Using minimum frame size %1", minimum_size); - auto xyz = _frame->convert_to_xyz(boost::bind(&Log::dcp_log, dcpomatic_log.get(), _1, _2)); + auto frame_image = _frame->image(bind(&PlayerVideo::keep_xyz_or_rgb, _1), VideoRange::FULL, false); + auto xyz = _frame->convert_to_xyz(frame_image, boost::bind(&Log::dcp_log, dcpomatic_log.get(), _1, _2)); int noise_amount = 2; int pixel_skip = 16; while (true) { @@ -139,7 +140,7 @@ DCPVideo::encode_locally () const * convert_to_xyz() again because compress_j2k() corrupts its xyz parameter. */ - xyz = _frame->convert_to_xyz(boost::bind(&Log::dcp_log, dcpomatic_log.get(), _1, _2)); + xyz = _frame->convert_to_xyz(frame_image, boost::bind(&Log::dcp_log, dcpomatic_log.get(), _1, _2)); auto size = xyz->size (); auto pixels = size.width * size.height; dcpomatic::RNG rng(42); diff --git a/src/lib/player_video.cc b/src/lib/player_video.cc index 04aeffc29..385d26aac 100644 --- a/src/lib/player_video.cc +++ b/src/lib/player_video.cc @@ -382,19 +382,18 @@ PlayerVideo::reset_metadata (shared_ptr<const Film> film, dcp::Size player_video shared_ptr<dcp::OpenJPEGImage> -PlayerVideo::convert_to_xyz(dcp::NoteHandler note) const +PlayerVideo::convert_to_xyz(shared_ptr<const Image> image, dcp::NoteHandler note) const { - auto frame_image = image(bind(&PlayerVideo::keep_xyz_or_rgb, _1), VideoRange::FULL, false); if (colour_conversion()) { return dcp::rgb_to_xyz ( - frame_image->data()[0], - frame_image->size(), - frame_image->stride()[0], + image->data()[0], + image->size(), + image->stride()[0], colour_conversion().get(), note ); } else { - return make_shared<dcp::OpenJPEGImage>(frame_image->data()[0], frame_image->size(), frame_image->stride()[0]); + return make_shared<dcp::OpenJPEGImage>(image->data()[0], image->size(), image->stride()[0]); } } diff --git a/src/lib/player_video.h b/src/lib/player_video.h index 731c1a695..9c1c064a5 100644 --- a/src/lib/player_video.h +++ b/src/lib/player_video.h @@ -90,7 +90,7 @@ public: bool has_j2k () const; std::shared_ptr<const dcp::Data> j2k () const; - std::shared_ptr<dcp::OpenJPEGImage> convert_to_xyz(dcp::NoteHandler note) const; + std::shared_ptr<dcp::OpenJPEGImage> convert_to_xyz(std::shared_ptr<const Image> image, dcp::NoteHandler note) const; Eyes eyes () const { |
