diff mbox series

[FFmpeg-devel,1/7] avcodec/snow_dwt: Fix left shifts of negative numbers

Message ID AS8P250MB0744FE41BC5B8476814DEFFD8F2D9@AS8P250MB0744.EURP250.PROD.OUTLOOK.COM
State Accepted
Commit c76155236fdfab9eb02ac30d2d03380a0648fb84
Headers show
Series [FFmpeg-devel,1/7] avcodec/snow_dwt: Fix left shifts of negative numbers | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished

Commit Message

Andreas Rheinhardt Oct. 21, 2022, 6:56 p.m. UTC
Affected the vsynth(1|2|_lena)-snow(|-hpel) tests.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
 libavcodec/snow_dwt.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Andreas Rheinhardt Oct. 24, 2022, 3:15 p.m. UTC | #1
Andreas Rheinhardt:
> Affected the vsynth(1|2|_lena)-snow(|-hpel) tests.
> 
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@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
diff mbox series

Patch

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;