summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2022-08-11 22:44:57 +0200
committerCarl Hetherington <cth@carlh.net>2022-08-11 22:44:57 +0200
commit83401fffc9f7bfea8c167ecbeec0949e22d76548 (patch)
treeb5c400ab5e46d71e5ff18aad6f6e32658efd8528
parentd37f7f314aebb48ce42e57011b1966d113686c8f (diff)
Allow convert_to_xyz() to take any image.
-rw-r--r--src/lib/dcp_video.cc5
-rw-r--r--src/lib/player_video.cc11
-rw-r--r--src/lib/player_video.h2
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 {