From: Niklas Haas <[email protected]>
When dealing with 4x subsampling ratios (log2 == 2), such as can arise
with 4:1:1 or 4:1:0, a value range of 512 is not enough to cover the
range of possible scenarios.
For example, bottom-sited chroma in 4:1:0 would require an offset of 768
(three luma rows). Simply double the limit to 1024. I don't see any
place in initFilter() that would experience overflow as a result of this
change, especially since get_local_pos() right-shifts it by the
subsampling ratio again.
---
libswscale/options.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/libswscale/options.c b/libswscale/options.c
index b36f13c872..53c4f0651b 100644
--- a/libswscale/options.c
+++ b/libswscale/options.c
@@ -62,10 +62,10 @@ static const AVOption swscale_options[] = {
{ "param0", "scaler param 0", OFFSET(param[0]),
AV_OPT_TYPE_DOUBLE, { .dbl = SWS_PARAM_DEFAULT }, INT_MIN, INT_MAX, VE
},
{ "param1", "scaler param 1", OFFSET(param[1]),
AV_OPT_TYPE_DOUBLE, { .dbl = SWS_PARAM_DEFAULT }, INT_MIN, INT_MAX, VE
},
- { "src_v_chr_pos", "source vertical chroma position in luma grid/256" ,
OFFSET(src_v_chr_pos), AV_OPT_TYPE_INT, { .i64 = -513 }, -513, 512,
VE },
- { "src_h_chr_pos", "source horizontal chroma position in luma grid/256",
OFFSET(src_h_chr_pos), AV_OPT_TYPE_INT, { .i64 = -513 }, -513, 512,
VE },
- { "dst_v_chr_pos", "destination vertical chroma position in luma
grid/256" , OFFSET(dst_v_chr_pos), AV_OPT_TYPE_INT, { .i64 = -513 }, -513,
512, VE },
- { "dst_h_chr_pos", "destination horizontal chroma position in luma
grid/256", OFFSET(dst_h_chr_pos), AV_OPT_TYPE_INT, { .i64 = -513 }, -513,
512, VE },
+ { "src_v_chr_pos", "source vertical chroma position in luma grid/256" ,
OFFSET(src_v_chr_pos), AV_OPT_TYPE_INT, { .i64 = -513 }, -513, 1024,
VE },
+ { "src_h_chr_pos", "source horizontal chroma position in luma grid/256",
OFFSET(src_h_chr_pos), AV_OPT_TYPE_INT, { .i64 = -513 }, -513, 1024,
VE },
+ { "dst_v_chr_pos", "destination vertical chroma position in luma
grid/256" , OFFSET(dst_v_chr_pos), AV_OPT_TYPE_INT, { .i64 = -513 }, -513,
1024, VE },
+ { "dst_h_chr_pos", "destination horizontal chroma position in luma
grid/256", OFFSET(dst_h_chr_pos), AV_OPT_TYPE_INT, { .i64 = -513 }, -513,
1024, VE },
{ "sws_dither", "set dithering algorithm", OFFSET(dither),
AV_OPT_TYPE_INT, { .i64 = SWS_DITHER_AUTO }, 0, NB_SWS_DITHER,
VE, .unit = "sws_dither" },
{ "auto", "leave choice to sws", 0,
AV_OPT_TYPE_CONST, { .i64 = SWS_DITHER_AUTO }, INT_MIN, INT_MAX,
VE, .unit = "sws_dither" },
--
2.45.2
_______________________________________________
ffmpeg-devel mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".