Commit f608a0bb8d for ffmpeg
commit f608a0bb8d905cef65de6732fc4bdec2eab1fb9f
Author: Ramiro Polla <ramiro.polla@gmail.com>
Date: Wed Nov 4 19:26:51 2026 +0100
swscale/utils: keep float gray formats full range in sws_setColorspaceDetails()
sws_init_context() treats float gray formats as full range, but a later
call to sws_setColorspaceDetails() could set them to limited range,
enabling range conversion on float values. Force them to full range
there as well, as is already done with a fixed range for RGB formats.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Ramiro Polla <ramiro.polla@gmail.com>
diff --git a/libswscale/utils.c b/libswscale/utils.c
index 2361bb94c0..eaa352a30c 100644
--- a/libswscale/utils.c
+++ b/libswscale/utils.c
@@ -919,8 +919,12 @@ int sws_setColorspaceDetails(SwsContext *sws, const int inv_table[4],
if(range_override_needed(sws->dst_format))
dstRange = 0;
+ else if (isFloat(sws->dst_format))
+ dstRange = 1; /* float gray formats are always full range */
if(range_override_needed(sws->src_format))
srcRange = 0;
+ else if (isFloat(sws->src_format))
+ srcRange = 1;
if (sws->src_range != srcRange ||
sws->dst_range != dstRange ||