Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ffmpeg-7 for openSUSE:Factory checked in at 2026-10-12 22:08:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ffmpeg-7 (Old) and /work/SRC/openSUSE:Factory/.ffmpeg-7.new.3698736 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ffmpeg-7" Mon Oct 12 22:08:53 2026 rev:33 rq:1384349 version:7.1.5 Changes: -------- --- /work/SRC/openSUSE:Factory/ffmpeg-7/ffmpeg-7.changes 2026-09-11 18:06:39.867218570 +0200 +++ /work/SRC/openSUSE:Factory/.ffmpeg-7.new.3698736/ffmpeg-7.changes 2026-10-12 22:08:54.636533913 +0200 @@ -1,0 +2,34 @@ +Mon Oct 12 13:48:17 UTC 2026 - Jan Engelhardt <[email protected]> + +- Synchronize codec enablement list from ffmpeg-9 + +------------------------------------------------------------------- +Mon Oct 12 10:56:46 UTC 2026 - Bjørn Lie <[email protected]> + +- Enable RealAudio Lossless, RealVideo 3.0 and 4.0 decoders. + +------------------------------------------------------------------- +Fri Sep 11 12:54:08 UTC 2026 - Cliff Zhao <[email protected]> + +- Add ffmpeg-7-CVE-2026-38350_part02_c44d237.patch: + Backport c44d237d from upstream, swscale/output: Fix integer + overflow with lum/chr/alpha filter. + (CVE-2026-38350, bsc#1277370) + +------------------------------------------------------------------- +Fri Sep 11 12:38:21 UTC 2026 - Cliff Zhao <[email protected]> + +- Add ffmpeg-7-CVE-2026-38350_part01_aca41d3.patch: + Backport aca41d3d from upstream, swscale/output: Fix all bilinear + integer overflows. + (CVE-2026-38350, bsc#1277370) + +------------------------------------------------------------------- +Fri Sep 11 12:04:54 UTC 2026 - Cliff Zhao <[email protected]> + +- Add ffmpeg-7-CVE-2026-38345.patch: + Backport 04fe9848 from upstream, libswscale/utils: prevent division + by zero for chroma width 8. + (CVE-2026-38345, bsc#1277376) + +------------------------------------------------------------------- @@ -196,0 +231,2 @@ + * swscale/alphablend: don't overread alpha plane on subsampled odd size + (CVE-2026-38347, bsc#1277373) @@ -207,0 +244,8 @@ + * avcodec/tdsc: remove double stride adjustment + (CVE-2026-18393, bsc#1277377) + * swscale/output: Fixes integer overflow in yuv2planeX_8_c. + (CVE-2026-38346, bsc#1277375) + * swscale/output: Fix integer overflow in alpha in yuv2rgba64_1_c_template() + (CVE-2026-38349, bsc#1277369) + * swscale/utils: Check *Inc + (CVE-2026-38348, bsc#1277368) @@ -403,4 +446,0 @@ - * avcodec/vp9: Fix race when attaching side-data for show-existing frame. (commit: 0ba0585) - (CVE-2024-36615, bsc#1234017) - * lavc/vp9: Fix regression introduced in 0ba0585. - (CVE-2024-36615, bsc#1234017) New: ---- ffmpeg-7-CVE-2026-38345.patch ffmpeg-7-CVE-2026-38350_part01_aca41d3.patch ffmpeg-7-CVE-2026-38350_part02_c44d237.patch ----------(New B)---------- New: - Add ffmpeg-7-CVE-2026-38345.patch: Backport 04fe9848 from upstream, libswscale/utils: prevent division New: - Add ffmpeg-7-CVE-2026-38350_part01_aca41d3.patch: Backport aca41d3d from upstream, swscale/output: Fix all bilinear New: - Add ffmpeg-7-CVE-2026-38350_part02_c44d237.patch: Backport c44d237d from upstream, swscale/output: Fix integer ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ffmpeg-7.spec ++++++ --- /var/tmp/diff_new_pack.Ywj6pj/_old 2026-10-12 22:08:56.184598490 +0200 +++ /var/tmp/diff_new_pack.Ywj6pj/_new 2026-10-12 22:08:56.186598573 +0200 @@ -147,6 +147,9 @@ Patch32: ffmpeg-7-CVE-2026-75143.patch Patch33: ffmpeg-7-CVE-2026-75144.patch Patch34: ffmpeg-7-CVE-2026-75146.patch +Patch35: ffmpeg-7-CVE-2026-38345.patch +Patch36: ffmpeg-7-CVE-2026-38350_part01_aca41d3.patch +Patch37: ffmpeg-7-CVE-2026-38350_part02_c44d237.patch # There is another Patch section further below! BuildRequires: ladspa-devel BuildRequires: libgsm-devel ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.Ywj6pj/_old 2026-10-12 22:08:56.243600951 +0200 +++ /var/tmp/diff_new_pack.Ywj6pj/_new 2026-10-12 22:08:56.247601118 +0200 @@ -1,5 +1,5 @@ -mtime: 1789025729 -commit: c8d3ca4029e8a3aabe1070b9dc95ce40875758dd73392aa1c2147721df770fa8 +mtime: 1791813409 +commit: 30fa5fbfcf145ffd8156561b1f1b02521c59a7df44ab6201e2e8b710dcd34171 url: https://src.opensuse.org/jengelh/ffmpeg revision: ff7 ++++++ build.specials.obscpio ++++++ ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2026-10-12 15:56:49.000000000 +0200 @@ -0,0 +1 @@ +.osc ++++++ enable_decoders ++++++ --- /var/tmp/diff_new_pack.Ywj6pj/_old 2026-10-12 22:08:56.425608544 +0200 +++ /var/tmp/diff_new_pack.Ywj6pj/_new 2026-10-12 22:08:56.428608669 +0200 @@ -36,6 +36,7 @@ adpcm_ima_mtf adpcm_ima_oki adpcm_ima_qt +adpcm_ima_qt_at adpcm_ima_rad adpcm_ima_smjpeg adpcm_ima_ssi @@ -55,6 +56,7 @@ adpcm_xmd adpcm_yamaha adpcm_zork +aic alac alias_pix amrnb # opencore-amr @@ -66,8 +68,11 @@ apac ape apng # animated png +apv # openapv arbc argo +aptx +aptx_hd ass # trivial asv1 asv2 @@ -115,6 +120,7 @@ dfpwm dirac # dirac dnxhd +dnxhr dolby_e dpx dsd_lsbf @@ -160,6 +166,7 @@ gremlin_dpcm gsm # libgsm gsm_ms +gsm_ms_at h261 h263 h263_v4l2m2m # passthrough @@ -199,14 +206,18 @@ libaom_av1 # libaom libcodec2 # codec2 libdav1d # av1 +libfdk_aac # fdk-aac-free libgsm # libgsm libgsm_ms # libgsm +libilbc # ilbc libjxl # libjxl +liblc3 # liblc3 libopencore_amrnb # opencore-amr libopencore_amrwb # opencore-amr libopenh264 # passthrough/dlopen libopenjpeg # openjpeg libopus # opus +librsvg # librsvg libschroedinger # schroedinger libspeex # speex libvorbis # libvorbis @@ -265,6 +276,7 @@ msp2 msrle mss1 +mss2 msvideo1 mszh mts2 @@ -338,6 +350,7 @@ qdm2 qdmc qdraw +qoa qoi qpeg qtrle @@ -345,6 +358,7 @@ r210 ra_144 ra_288 +ralf rasc rawvideo # trivial realtext @@ -356,6 +370,8 @@ rscc rv10 rv20 +rv30 +rv40 s302m sami sanm ++++++ enable_encoders ++++++ --- /var/tmp/diff_new_pack.Ywj6pj/_old 2026-10-12 22:08:56.450609587 +0200 +++ /var/tmp/diff_new_pack.Ywj6pj/_new 2026-10-12 22:08:56.452609670 +0200 @@ -23,10 +23,14 @@ amv anull apng # libpng +aptx +aptx_hd ass # trivial asv1 asv2 +av1_amf av1_nvenc +av1_qsv av1_vaapi ayuv # trival bitpacked # trivial @@ -36,7 +40,9 @@ dca dfpwm dnxhd +dnxhr dpx +dvbsub dvdsub dvvideo exr @@ -60,10 +66,14 @@ libaom # libaom libaom_av1 # libaom libcodec2 # codec2 +libfdk_aac # fdk-aac-free libgsm # libgsm libgsm_ms # libgsm +libilbc # ilbc libjxl # libjxl +liblc3 # liblc3 libmp3lame # lame +liboapv # openapv libopencore_amrnb # opencore-amr libopenh264 # passthrough/dlopen libopenjpeg # openjpeg ++++++ ffmpeg-7-CVE-2026-38345.patch ++++++ >From 04fe98482a264117fa49a166c18227f3f93f921b Mon Sep 17 00:00:00 2001 From: AnandajithS <[email protected]> Date: Mon, 16 Feb 2026 02:08:36 +0530 Subject: [PATCH] libswscale/utils: prevent division by zero for chroma width 8 --- libswscale/utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff a/libswscale/utils.c b/libswscale/utils.c --- a/libswscale/utils.c 2026-06-20 10:25:34.000000000 +0800 +++ b/libswscale/utils.c 2026-09-16 15:13:16.766379439 +0800 @@ -1408,7 +1408,7 @@ return AVERROR(EINVAL); } if (flags & SWS_FAST_BILINEAR) { - if (srcW < 8 || dstW < 8) { + if (srcW < 8 || dstW <= 8) { flags ^= SWS_FAST_BILINEAR | SWS_BILINEAR; c->flags = flags; } ++++++ ffmpeg-7-CVE-2026-38350_part01_aca41d3.patch ++++++ >From aca41d3d9327be4d6ab036f494b700118fcc04e1 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer <[email protected]> Date: Tue, 29 Jul 2025 20:57:53 +0200 Subject: [PATCH] swscale/output: Fix all bilinear integer overflows Ticket11686 hinted at one of these overflows this fixes them all Issue in line 1325/1326 found by HAORAN FANG <[email protected]> Signed-off-by: Michael Niedermayer <[email protected]> --- libswscale/output.c | 49 +++++++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/libswscale/output.c b/libswscale/output.c --- a/libswscale/output.c +++ b/libswscale/output.c @@ -992,27 +992,28 @@ yuv2ya16_2_c_template(SwsContext *c, const int32_t *buf[2], const int32_t *unused_ubuf[2], const int32_t *unused_vbuf[2], const int32_t *abuf[2], uint16_t *dest, int dstW, - int yalpha, int unused_uvalpha, int y, + int yalpha_param, int unused_uvalpha, int y, enum AVPixelFormat target, int unused_hasAlpha, int unused_eightbytes, int is_be) { + unsigned yalpha = yalpha_param; int hasAlpha = abuf && abuf[0] && abuf[1]; const int32_t *buf0 = buf[0], *buf1 = buf[1], *abuf0 = hasAlpha ? abuf[0] : NULL, *abuf1 = hasAlpha ? abuf[1] : NULL; - int yalpha1 = 4096 - yalpha; + unsigned yalpha1 = 4096 - yalpha; int i; av_assert2(yalpha <= 4096U); for (i = 0; i < dstW; i++) { - int Y = (buf0[i] * yalpha1 + buf1[i] * yalpha) >> 15; + int Y = (int)(buf0[i] * yalpha1 + buf1[i] * yalpha) >> 15; int A; Y = av_clip_uint16(Y); if (hasAlpha) { - A = (abuf0[i] * yalpha1 + abuf1[i] * yalpha) >> 15; + A = (int)(abuf0[i] * yalpha1 + abuf1[i] * yalpha) >> 15; A = av_clip_uint16(A); } @@ -1135,17 +1136,19 @@ yuv2rgba64_2_c_template(SwsContext *c, const int32_t *buf[2], const int32_t *ubuf[2], const int32_t *vbuf[2], const int32_t *abuf[2], uint16_t *dest, int dstW, - int yalpha, int uvalpha, int y, + int yalpha_param, int uvalpha_param, int y, enum AVPixelFormat target, int hasAlpha, int eightbytes, int is_be) { + unsigned yalpha = yalpha_param; + unsigned uvalpha = uvalpha_param; const int32_t *buf0 = buf[0], *buf1 = buf[1], *ubuf0 = ubuf[0], *ubuf1 = ubuf[1], *vbuf0 = vbuf[0], *vbuf1 = vbuf[1], *abuf0 = hasAlpha ? abuf[0] : NULL, *abuf1 = hasAlpha ? abuf[1] : NULL; - int yalpha1 = 4096 - yalpha; - int uvalpha1 = 4096 - uvalpha; + unsigned yalpha1 = 4096 - yalpha; + unsigned uvalpha1 = 4096 - uvalpha; int i; int A1 = 0xffff<<14, A2 = 0xffff<<14; @@ -1153,10 +1156,10 @@ av_assert2(uvalpha <= 4096U); for (i = 0; i < ((dstW + 1) >> 1); i++) { - unsigned Y1 = (buf0[i * 2] * yalpha1 + buf1[i * 2] * yalpha) >> 14; - unsigned Y2 = (buf0[i * 2 + 1] * yalpha1 + buf1[i * 2 + 1] * yalpha) >> 14; - int U = (ubuf0[i] * uvalpha1 + ubuf1[i] * uvalpha - (128 << 23)) >> 14; - int V = (vbuf0[i] * uvalpha1 + vbuf1[i] * uvalpha - (128 << 23)) >> 14; + unsigned Y1 = (int)(buf0[i * 2] * yalpha1 + buf1[i * 2] * yalpha) >> 14; + unsigned Y2 = (int)(buf0[i * 2 + 1] * yalpha1 + buf1[i * 2 + 1] * yalpha) >> 14; + int U = (int)(ubuf0[i] * uvalpha1 + ubuf1[i] * uvalpha - (128 << 23)) >> 14; + int V = (int)(vbuf0[i] * uvalpha1 + vbuf1[i] * uvalpha - (128 << 23)) >> 14; int R, G, B; Y1 -= c->yuv2rgb_y_offset; @@ -1171,8 +1174,8 @@ B = U * c->yuv2rgb_u2b_coeff; if (hasAlpha) { - A1 = (abuf0[i * 2 ] * yalpha1 + abuf1[i * 2 ] * yalpha) >> 1; - A2 = (abuf0[i * 2 + 1] * yalpha1 + abuf1[i * 2 + 1] * yalpha) >> 1; + A1 = (int)(abuf0[i * 2 ] * yalpha1 + abuf1[i * 2 ] * yalpha) >> 1; + A2 = (int)(abuf0[i * 2 + 1] * yalpha1 + abuf1[i * 2 + 1] * yalpha) >> 1; A1 += 1 << 13; A2 += 1 << 13; @@ -1370,17 +1373,19 @@ yuv2rgba64_full_2_c_template(SwsContext *c, const int32_t *buf[2], const int32_t *ubuf[2], const int32_t *vbuf[2], const int32_t *abuf[2], uint16_t *dest, int dstW, - int yalpha, int uvalpha, int y, + int yalpha_param, int uvalpha_param, int y, enum AVPixelFormat target, int hasAlpha, int eightbytes, int is_be) { + unsigned yalpha = yalpha_param; + unsigned uvalpha = uvalpha_param; const int32_t *buf0 = buf[0], *buf1 = buf[1], *ubuf0 = ubuf[0], *ubuf1 = ubuf[1], *vbuf0 = vbuf[0], *vbuf1 = vbuf[1], *abuf0 = hasAlpha ? abuf[0] : NULL, *abuf1 = hasAlpha ? abuf[1] : NULL; - int yalpha1 = 4096 - yalpha; - int uvalpha1 = 4096 - uvalpha; + unsigned yalpha1 = 4096 - yalpha; + unsigned uvalpha1 = 4096 - uvalpha; int i; int A = 0xffff<<14; @@ -1388,9 +1393,9 @@ av_assert2(uvalpha <= 4096U); for (i = 0; i < dstW; i++) { - int Y = (buf0[i] * yalpha1 + buf1[i] * yalpha) >> 14; - int U = (ubuf0[i] * uvalpha1 + ubuf1[i] * uvalpha - (128 << 23)) >> 14; - int V = (vbuf0[i] * uvalpha1 + vbuf1[i] * uvalpha - (128 << 23)) >> 14; + int Y = (int)(buf0[i] * yalpha1 + buf1[i] * yalpha) >> 14; + int U = (int)(ubuf0[i] * uvalpha1 + ubuf1[i] * uvalpha - (128 << 23)) >> 14; + int V = (int)(vbuf0[i] * uvalpha1 + vbuf1[i] * uvalpha - (128 << 23)) >> 14; int R, G, B; Y -= c->yuv2rgb_y_offset; @@ -1402,7 +1407,7 @@ B = U * c->yuv2rgb_u2b_coeff; if (hasAlpha) { - A = (abuf0[i] * yalpha1 + abuf1[i] * yalpha) >> 1; + A = (int)(abuf0[i] * yalpha1 + abuf1[i] * yalpha) >> 1; A += 1 << 13; } ++++++ ffmpeg-7-CVE-2026-38350_part02_c44d237.patch ++++++ >From c44d237d8069a7be8679b27106372f2ba8c0a51b Mon Sep 17 00:00:00 2001 From: Michael Niedermayer <[email protected]> Date: Wed, 30 Jul 2025 12:35:59 +0200 Subject: [PATCH] swscale/output: Fix integer overflow with lum/chr/alpha filter Signed-off-by: Michael Niedermayer <[email protected]> --- libswscale/output.c | 94 ++++++++++++++++++++++----------------------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/libswscale/output.c b/libswscale/output.c --- a/libswscale/output.c +++ b/libswscale/output.c @@ -442,8 +442,8 @@ int v = chrDither[(i + 3) & 7] << 12; int j; for (j=0; j<chrFilterSize; j++) { - u += chrUSrc[j][i] * chrFilter[j]; - v += chrVSrc[j][i] * chrFilter[j]; + u += (unsigned)(chrUSrc[j][i] * chrFilter[j]); + v += (unsigned)(chrVSrc[j][i] * chrFilter[j]); } dest[2*i]= av_clip_uint8(u>>19); @@ -455,8 +455,8 @@ int v = chrDither[(i + 3) & 7] << 12; int j; for (j=0; j<chrFilterSize; j++) { - u += chrUSrc[j][i] * chrFilter[j]; - v += chrVSrc[j][i] * chrFilter[j]; + u += (unsigned)(chrUSrc[j][i] * chrFilter[j]); + v += (unsigned)(chrVSrc[j][i] * chrFilter[j]); } dest[2*i]= av_clip_uint8(v>>19); @@ -519,8 +519,8 @@ int v = 1 << (shift - 1); for (j = 0; j < chrFilterSize; j++) { - u += chrUSrc[j][i] * chrFilter[j]; - v += chrVSrc[j][i] * chrFilter[j]; + u += (unsigned)(chrUSrc[j][i] * chrFilter[j]); + v += (unsigned)(chrVSrc[j][i] * chrFilter[j]); } output_pixel(&dest[2*i] , u); @@ -617,8 +617,8 @@ int Y2 = 1 << 18; for (j = 0; j < lumFilterSize; j++) { - Y1 += lumSrc[j][i] * lumFilter[j]; - Y2 += lumSrc[j][i+1] * lumFilter[j]; + Y1 += (unsigned)(lumSrc[j][i] * lumFilter[j]); + Y2 += (unsigned)(lumSrc[j][i+1] * lumFilter[j]); } Y1 >>= 19; Y2 >>= 19; @@ -835,12 +835,12 @@ int V = 1 << 18; for (j = 0; j < lumFilterSize; j++) { - Y1 += lumSrc[j][i * 2] * lumFilter[j]; - Y2 += lumSrc[j][i * 2 + 1] * lumFilter[j]; + Y1 += (unsigned)(lumSrc[j][i * 2] * lumFilter[j]); + Y2 += (unsigned)(lumSrc[j][i * 2 + 1] * lumFilter[j]); } for (j = 0; j < chrFilterSize; j++) { - U += chrUSrc[j][i] * chrFilter[j]; - V += chrVSrc[j][i] * chrFilter[j]; + U += (unsigned)(chrUSrc[j][i] * chrFilter[j]); + V += (unsigned)(chrVSrc[j][i] * chrFilter[j]); } Y1 >>= 19; Y2 >>= 19; @@ -1735,12 +1735,12 @@ const void *r, *g, *b; for (j = 0; j < lumFilterSize; j++) { - Y1 += lumSrc[j][i * 2] * lumFilter[j]; - Y2 += lumSrc[j][i * 2 + 1] * lumFilter[j]; + Y1 += (unsigned)(lumSrc[j][i * 2] * lumFilter[j]); + Y2 += (unsigned)(lumSrc[j][i * 2 + 1] * lumFilter[j]); } for (j = 0; j < chrFilterSize; j++) { - U += chrUSrc[j][i] * chrFilter[j]; - V += chrVSrc[j][i] * chrFilter[j]; + U += (unsigned)(chrUSrc[j][i] * chrFilter[j]); + V += (unsigned)(chrVSrc[j][i] * chrFilter[j]); } Y1 >>= 19; Y2 >>= 19; @@ -1750,8 +1750,8 @@ A1 = 1 << 18; A2 = 1 << 18; for (j = 0; j < lumFilterSize; j++) { - A1 += alpSrc[j][i * 2 ] * lumFilter[j]; - A2 += alpSrc[j][i * 2 + 1] * lumFilter[j]; + A1 += (unsigned)(alpSrc[j][i * 2 ] * lumFilter[j]); + A2 += (unsigned)(alpSrc[j][i * 2 + 1] * lumFilter[j]); } A1 >>= 19; A2 >>= 19; @@ -2097,11 +2097,11 @@ int V = (1<<9)-(128 << 19); for (j = 0; j < lumFilterSize; j++) { - Y += lumSrc[j][i] * lumFilter[j]; + Y += (unsigned)(lumSrc[j][i] * lumFilter[j]); } for (j = 0; j < chrFilterSize; j++) { - U += chrUSrc[j][i] * chrFilter[j]; - V += chrVSrc[j][i] * chrFilter[j]; + U += (unsigned)(chrUSrc[j][i] * chrFilter[j]); + V += (unsigned)(chrVSrc[j][i] * chrFilter[j]); } Y >>= 10; U >>= 10; @@ -2109,7 +2109,7 @@ if (hasAlpha) { A = 1 << 18; for (j = 0; j < lumFilterSize; j++) { - A += alpSrc[j][i] * lumFilter[j]; + A += (unsigned)(alpSrc[j][i] * lumFilter[j]); } A >>= 19; if (A & 0x100) @@ -2272,11 +2272,11 @@ int R, G, B; for (j = 0; j < lumFilterSize; j++) - Y += lumSrc[j][i] * lumFilter[j]; + Y += (unsigned)(lumSrc[j][i] * lumFilter[j]); for (j = 0; j < chrFilterSize; j++) { - U += chrUSrc[j][i] * chrFilter[j]; - V += chrVSrc[j][i] * chrFilter[j]; + U += (unsigned)(chrUSrc[j][i] * chrFilter[j]); + V += (unsigned)(chrVSrc[j][i] * chrFilter[j]); } Y >>= 10; @@ -2287,7 +2287,7 @@ A = 1 << 18; for (j = 0; j < lumFilterSize; j++) - A += alpSrc[j][i] * lumFilter[j]; + A += (unsigned)(alpSrc[j][i] * lumFilter[j]); if (A & 0xF8000000) A = av_clip_uintp2(A, 27); @@ -2551,7 +2551,7 @@ int Y = 1 << 18, A = 1 << 18; for (j = 0; j < lumFilterSize; j++) - Y += lumSrc[j][i] * lumFilter[j]; + Y += (unsigned)(lumSrc[j][i] * lumFilter[j]); Y >>= 19; if (Y & 0x100) @@ -2559,7 +2559,7 @@ if (hasAlpha) { for (j = 0; j < lumFilterSize; j++) - A += alpSrc[j][i] * lumFilter[j]; + A += (unsigned)(alpSrc[j][i] * lumFilter[j]); A >>= 19; @@ -2634,11 +2634,11 @@ int j; for (j = 0; j < lumFilterSize; j++) - Y += lumSrc[j][i] * lumFilter[j]; + Y += (unsigned)(lumSrc[j][i] * lumFilter[j]); for (j = 0; j < chrFilterSize; j++) { - U += chrUSrc[j][i] * chrFilter[j]; - V += chrVSrc[j][i] * chrFilter[j]; + U += (unsigned)(chrUSrc[j][i] * chrFilter[j]); + V += (unsigned)(chrVSrc[j][i] * chrFilter[j]); } Y = av_clip_uintp2(Y >> 17, 10); @@ -2662,11 +2662,11 @@ int j; for (j = 0; j < lumFilterSize; j++) - Y += lumSrc[j][i] * lumFilter[j]; + Y += (unsigned)(lumSrc[j][i] * lumFilter[j]); for (j = 0; j < chrFilterSize; j++) { - U += chrUSrc[j][i] * chrFilter[j]; - V += chrVSrc[j][i] * chrFilter[j]; + U += (unsigned)(chrUSrc[j][i] * chrFilter[j]); + V += (unsigned)(chrVSrc[j][i] * chrFilter[j]); } AV_WL16(dest + 8 * i + 2, av_clip_uintp2(Y >> 15, 12) << 4); @@ -2691,13 +2691,13 @@ int V = 1 << 18, A = 255; for (j = 0; j < lumFilterSize; j++) - Y += lumSrc[j][i] * lumFilter[j]; + Y += (unsigned)(lumSrc[j][i] * lumFilter[j]); for (j = 0; j < chrFilterSize; j++) - U += chrUSrc[j][i] * chrFilter[j]; + U += (unsigned)(chrUSrc[j][i] * chrFilter[j]); for (j = 0; j < chrFilterSize; j++) - V += chrVSrc[j][i] * chrFilter[j]; + V += (unsigned)(chrVSrc[j][i] * chrFilter[j]); Y >>= 19; U >>= 19; @@ -2714,7 +2714,7 @@ A = 1 << 18; for (j = 0; j < lumFilterSize; j++) - A += alpSrc[j][i] * lumFilter[j]; + A += (unsigned)(alpSrc[j][i] * lumFilter[j]); A >>= 19; @@ -2750,13 +2750,13 @@ int U = 1 << (shift - 1), V = 1 << (shift - 1); \ \ for (j = 0; j < lumFilterSize; j++) { \ - Y1 += lumSrc[j][i * 2] * lumFilter[j]; \ - Y2 += lumSrc[j][i * 2 + 1] * lumFilter[j]; \ + Y1 += (unsigned)(lumSrc[j][i * 2] * lumFilter[j]); \ + Y2 += (unsigned)(lumSrc[j][i * 2 + 1] * lumFilter[j]); \ } \ \ for (j = 0; j < chrFilterSize; j++) { \ - U += chrUSrc[j][i] * chrFilter[j]; \ - V += chrVSrc[j][i] * chrFilter[j]; \ + U += (unsigned)(chrUSrc[j][i] * chrFilter[j]); \ + V += (unsigned)(chrVSrc[j][i] * chrFilter[j]); \ } \ \ output_pixel(dest + 8 * i + 0, Y1, bits); \
