Fix corrupted image when over-cropping black filler frames. v2.14.45
authorCarl Hetherington <cth@carlh.net>
Tue, 24 Nov 2020 23:11:55 +0000 (00:11 +0100)
committerCarl Hetherington <cth@carlh.net>
Tue, 24 Nov 2020 23:11:55 +0000 (00:11 +0100)
commitaccdec63a79b43c6349597b15243dc41e521521d
tree88dadb3eebc45c4980e9f4498bb9a065f0b562e4
parent82faf2d5817af3ca8d303a8e1b62f23bb461dcaf
Fix corrupted image when over-cropping black filler frames.

FFmpegDecoder can emit small black frames (128x128 pixels) when it
wants to fill in a gap.  Image::crop_scale_window would do the wrong
thing if we then applied a crop of greater than 128 in either direction;
though cropped_size is correctly clamped, the crop value itself was
not and is used to calculate the input data pointers.

This would result in random frames, usually at the end of DCPs,
often made up of blurry colour washes.
src/lib/image.cc
test/data
test/image_test.cc