summaryrefslogtreecommitdiff
path: root/src/lib/image.cc
AgeCommit message (Collapse)Author
2024-02-03Add an assert to check that sws_getContext() succeeded.Carl Hetherington
2024-02-03Add some asserts; sws_getContext() will fail if the image width or height are 0.Carl Hetherington
2024-02-03Support alpha blend onto YUV444P9LE and YUV444P10LE (68 and 70).Carl Hetherington
2024-02-03Fix incorrect alpha channel scaling with RGBA64.Carl Hetherington
2024-02-03Fix incorrect alpha step used for RGBA64 sources.Carl Hetherington
2024-02-03Put alpha_{data,stride} into OtherYUVParams.Carl Hetherington
2024-02-03Separate out OtherParams into Other{RGB,YUV}Params.Carl Hetherington
2023-12-09Support YUV422P9LE in alpha_blend() (#2671).notar1Carl Hetherington
2023-10-28Use updated libdcp, including an optimisation for rgb-onto-xyz12.Carl Hetherington
2023-09-29Support alpha blending 64-bit RGB onto things.Carl Hetherington
2023-09-29Cleanup: extract some parts of alpha_blend().Carl Hetherington
2023-05-13Fix some typos in comments.Carl Hetherington
2022-10-18Support Rec2020 YUV/RGB conversion.Carl Hetherington
2022-09-27Use EnumIndexedVector in Image.Carl Hetherington
2022-09-10Support YUV444P10LE in make_part_black().Carl Hetherington
2022-08-11Fix d881836379172f4072ed81ea074f46b3a363a681 which removed clearingCarl Hetherington
of the left-hand-side of images.
2022-08-09Fix lines down the right-hand-side of exports in some cases.Carl Hetherington
2022-06-10Fix incorrect burnt-in subtitle colours when burning into a DCP source (#2261).Carl Hetherington
dcp::combined_rgb_to_xyz was changed in libdcp (the values are no longer scaled by 65535) but DoM wasn't changed, and there was no test to catch it.
2022-05-05Update for change to libdcp API.Carl Hetherington
2022-04-29Move Image::as_png() out to image_as_png().Carl Hetherington
2022-04-29Remove unnecessary method.Carl Hetherington
2022-04-22Use libdcp's warnings.hCarl Hetherington
2022-04-04Cleanup: move some methods from util to memory_util.Carl Hetherington
2022-04-04Cleanup: move some methods from util to maths_util.Carl Hetherington
2022-04-03Cleanup: move stride_round_up into the only place it is used.Carl Hetherington
2022-04-03C++11 and whitespace cleanups.Carl Hetherington
2021-09-27Make merge return the right alignment even if it's not doing anything.Carl Hetherington
2021-09-27Replace aligned bool with enum Alignment.Carl Hetherington
2021-09-27Various alignment adjustments.Carl Hetherington
2021-09-27Support subs and tidy up a few things.Carl Hetherington
2021-05-25Move video level conversion for RGB from FFmpegImageProxy to Image.Carl Hetherington
Since FFmpeg does not do video level conversion for RGB sources when we (sort of) ask it to in Image::crop_scale_window() it seems to make more sense to compensate for that by calling full_to_video_range() in the same place (rather than in FFmpegImageProxy).
2021-05-25Add video_to_full_range implementation for RGB48LE.Carl Hetherington
2021-05-25Clamp results correctly when shifting video levels, and account for that in ↵Carl Hetherington
tests.
2021-05-25const-correctness tweak.Carl Hetherington
2021-05-07Missing #include.Carl Hetherington
2021-05-07Hide some warnings from ffmpeg on Centos 7.Carl Hetherington
2021-05-03Add pixel format 0 (AV_PIX_FMT_YUV420P) to make_part_black().Carl Hetherington
Remainder of fix for #1984.
2021-05-03Add pixel format 66 (AV_PIX_FMT_YUV422P10LE) to make_part_black().Carl Hetherington
Part of fix for #1984.
2021-05-03C++11 tidying.Carl Hetherington
2021-05-01Switch decoding to ffmpeg send/receive API.Carl Hetherington
2021-01-27Use enum class for VideoRange.Carl Hetherington
2021-01-26Small bits of c++11 tidying.Carl Hetherington
2021-01-21Adapt for libdcp use of enum class.Carl Hetherington
2021-01-07std::shared_ptrCarl Hetherington
2020-11-25Fix corrupted image when over-cropping black filler frames.Carl Hetherington
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.
2020-11-17Fix cropping of subsampled images.Carl Hetherington
The calculations for how to crop subsampled components of YUV images were wrong, causing strange effects like misregistration of colour components in cropped images. Should fix #1872.
2020-11-17Add some lrintf() calls to be sure.Carl Hetherington
2020-11-17Use 64-byte alignment for aligned image memory.Carl Hetherington
FFmpeg uses this values if AVX512 is available, and with only 32-byte alignment I am seeing strange scaling effects whereby crop_scale_window_test7 gives black bars down the right side of cropped images (when run on an i7 7700).
2020-11-16Make sure we use limited ("video") range data when exporting.Carl Hetherington
Our export formats all currently use limited range but we weren't making sure data fed to the encoders was limited range. Should fix #1832.
2020-11-16Remove pointless comment.Carl Hetherington