mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
cedf589c09
More commonly, this fixes the case of sws_setColorspaceDetails after sws_getContext, since the latter implies sws_init_context. The problem here is that sws_init_context sets up the range conversion and fast path tables based on the values of srcRange/dstRange at init time. This may result in locking in a "wrong" path (either using unscaled fast path when range conversion later required, or using scaled slow path when range conversion becomes no longer required). There are two way outs: 1. Always initialize range conversion and unscaled converters, even if they will be unused, and extend the runtime check. 2. Re-do initialization if the values change after sws_setColorspaceDetails. I opted for approach 1 because it was simpler and easier to reason about. Reword the av_log message to make it clear that this special converter is not necessarily used, depending on whether or not there is range conversion or YUV matrix conversion going on. |
||
---|---|---|
.. | ||
aarch64 | ||
arm | ||
loongarch | ||
ppc | ||
riscv | ||
tests | ||
x86 | ||
alphablend.c | ||
bayer_template.c | ||
gamma.c | ||
half2float.c | ||
hscale_fast_bilinear.c | ||
hscale.c | ||
input.c | ||
libswscale.v | ||
log2_tab.c | ||
Makefile | ||
options.c | ||
output.c | ||
rgb2rgb_template.c | ||
rgb2rgb.c | ||
rgb2rgb.h | ||
slice.c | ||
swscale_internal.h | ||
swscale_unscaled.c | ||
swscale.c | ||
swscale.h | ||
swscaleres.rc | ||
utils.c | ||
version_major.h | ||
version.c | ||
version.h | ||
vscale.c | ||
yuv2rgb.c |