diff options
| author | Carl Hetherington <cth@carlh.net> | 2021-10-03 21:22:14 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2021-10-03 23:41:02 +0200 |
| commit | 969906f2dd6c5c144781861f53e2a0f6baefb9a3 (patch) | |
| tree | d4091610b2c0582f52a8d484fd7a36a9c4878111 /src/lib/player_video.cc | |
| parent | 70b72b53eab0f247eb4dc605a2d669d4adb4e469 (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.cc | 7 |
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(); |
