[FFmpeg-devel] [PATCH 1/7] avcodec/snow_dwt: Fix left shifts of negative numbers
Andreas Rheinhardt
andreas.rheinhardt at outlook.com
Mon Oct 24 18:15:28 EEST 2022
Andreas Rheinhardt:
> Affected the vsynth(1|2|_lena)-snow(|-hpel) tests.
>
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
> ---
> libavcodec/snow_dwt.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/libavcodec/snow_dwt.c b/libavcodec/snow_dwt.c
> index 18b315ef66..965f409002 100644
> --- a/libavcodec/snow_dwt.c
> +++ b/libavcodec/snow_dwt.c
> @@ -778,10 +778,10 @@ static inline int w_c(struct MpegEncContext *v, const uint8_t *pix1, const uint8
>
> for (i = 0; i < h; i++) {
> for (j = 0; j < w; j += 4) {
> - tmp[32 * i + j + 0] = (pix1[j + 0] - pix2[j + 0]) << 4;
> - tmp[32 * i + j + 1] = (pix1[j + 1] - pix2[j + 1]) << 4;
> - tmp[32 * i + j + 2] = (pix1[j + 2] - pix2[j + 2]) << 4;
> - tmp[32 * i + j + 3] = (pix1[j + 3] - pix2[j + 3]) << 4;
> + tmp[32 * i + j + 0] = (pix1[j + 0] - pix2[j + 0]) * (1 << 4);
> + tmp[32 * i + j + 1] = (pix1[j + 1] - pix2[j + 1]) * (1 << 4);
> + tmp[32 * i + j + 2] = (pix1[j + 2] - pix2[j + 2]) * (1 << 4);
> + tmp[32 * i + j + 3] = (pix1[j + 3] - pix2[j + 3]) * (1 << 4);
> }
> pix1 += line_size;
> pix2 += line_size;
Will apply the remaining patches of this patchset tomorrow unless there
are objections.
- Andreas
More information about the ffmpeg-devel
mailing list