summaryrefslogtreecommitdiff
path: root/src/lib/player_video.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-10-03 21:22:14 +0200
committerCarl Hetherington <cth@carlh.net>2021-10-03 23:41:02 +0200
commit969906f2dd6c5c144781861f53e2a0f6baefb9a3 (patch)
treed4091610b2c0582f52a8d484fd7a36a9c4878111 /src/lib/player_video.cc
parent70b72b53eab0f247eb4dc605a2d669d4adb4e469 (diff)
Don't scale chroma subsampled images to sizes that don't align with the subsampling (#1872).v2.15.166
There's a slightly odd effect when scaling e.g. YVU420 images to odd and then even widths - there's a small but visible luminance shift. I don't know why this happens, but keeping the scaling sizes locked to the subsampling seems to help.
Diffstat (limited to 'src/lib/player_video.cc')
-rw-r--r--src/lib/player_video.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lib/player_video.cc b/src/lib/player_video.cc
index c9bc2dcde..4cc536bb7 100644
--- a/src/lib/player_video.cc
+++ b/src/lib/player_video.cc
@@ -345,7 +345,12 @@ PlayerVideo::reset_metadata (shared_ptr<const Film> film, dcp::Size player_video
_crop = content->video->actual_crop();
_fade = content->video->fade(film, _video_frame.get());
- _inter_size = scale_for_display(content->video->scaled_size(film->frame_size()), player_video_container_size, film->frame_size());
+ _inter_size = scale_for_display(
+ content->video->scaled_size(film->frame_size()),
+ player_video_container_size,
+ film->frame_size(),
+ content->video->pixel_quanta()
+ );
_out_size = player_video_container_size;
_colour_conversion = content->video->colour_conversion();
_video_range = content->video->range();