diff mbox series

[FFmpeg-devel,1/4] avcodec/magicyuv: Use a compile time constant for vlc_bits

Message ID 20231024150443.7438-1-michael@niedermayer.cc
State New
Headers show
Series [FFmpeg-devel,1/4] avcodec/magicyuv: Use a compile time constant for vlc_bits | expand

Checks

Context Check Description
yinshiyou/configure_loongarch64 warning Failed to apply patch
andriy/configure_x86 warning Failed to apply patch

Commit Message

Michael Niedermayer Oct. 24, 2023, 3:04 p.m. UTC
This will permit further optimizations

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
---
 libavcodec/magicyuv.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

Comments

Andreas Rheinhardt Oct. 26, 2023, 9:37 p.m. UTC | #1
Michael Niedermayer:
> This will permit further optimizations
> 
> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> ---
>  libavcodec/magicyuv.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/libavcodec/magicyuv.c b/libavcodec/magicyuv.c
> index 4a143cdbbf7..78d7f44cd65 100644
> --- a/libavcodec/magicyuv.c
> +++ b/libavcodec/magicyuv.c
> @@ -124,13 +124,13 @@ static void magicyuv_median_pred16(uint16_t *dst, const uint16_t *src1,
>      x = 0; \
>      for (; x < width-c && get_bits_left(&gb) > 0;) {\
>          ret = get_vlc_multi(&gb, (uint8_t *)dst + x * b, multi, \
> -                            vlc, vlc_bits, 3); \
> +                            vlc, VLC_BITS, 3); \
>          if (ret <= 0) \
>              return AVERROR_INVALIDDATA; \
>          x += ret; \
>      } \
>      for (; x < width && get_bits_left(&gb) > 0; x++) \
> -        dst[x] = get_vlc2(&gb, vlc, vlc_bits, 3); \
> +        dst[x] = get_vlc2(&gb, vlc, VLC_BITS, 3); \
>      dst += stride; \
>  }
>  
> @@ -155,7 +155,6 @@ static int magy_decode_slice10(AVCodecContext *avctx, void *tdata,
>          ptrdiff_t stride = p->linesize[i] / 2;
>          const VLC_MULTI_ELEM *const multi = s->multi[i].table;
>          const VLCElem *const vlc = s->vlc[i].table;
> -        const int vlc_bits = s->vlc[i].bits;
>          int flags, pred;
>          int ret = init_get_bits8(&gb, s->buf + s->slices[i][j].start,
>                                   s->slices[i][j].size);

The VLCs are created via "ff_vlc_init_multi_from_lengths(vlc, multi,
FFMIN(he[0].len, VLC_BITS), nb_elems, nb_elems,", so the number of bits
of the VLC is not a compile-time constant.

- Andreas
diff mbox series

Patch

diff --git a/libavcodec/magicyuv.c b/libavcodec/magicyuv.c
index 4a143cdbbf7..78d7f44cd65 100644
--- a/libavcodec/magicyuv.c
+++ b/libavcodec/magicyuv.c
@@ -124,13 +124,13 @@  static void magicyuv_median_pred16(uint16_t *dst, const uint16_t *src1,
     x = 0; \
     for (; x < width-c && get_bits_left(&gb) > 0;) {\
         ret = get_vlc_multi(&gb, (uint8_t *)dst + x * b, multi, \
-                            vlc, vlc_bits, 3); \
+                            vlc, VLC_BITS, 3); \
         if (ret <= 0) \
             return AVERROR_INVALIDDATA; \
         x += ret; \
     } \
     for (; x < width && get_bits_left(&gb) > 0; x++) \
-        dst[x] = get_vlc2(&gb, vlc, vlc_bits, 3); \
+        dst[x] = get_vlc2(&gb, vlc, VLC_BITS, 3); \
     dst += stride; \
 }
 
@@ -155,7 +155,6 @@  static int magy_decode_slice10(AVCodecContext *avctx, void *tdata,
         ptrdiff_t stride = p->linesize[i] / 2;
         const VLC_MULTI_ELEM *const multi = s->multi[i].table;
         const VLCElem *const vlc = s->vlc[i].table;
-        const int vlc_bits = s->vlc[i].bits;
         int flags, pred;
         int ret = init_get_bits8(&gb, s->buf + s->slices[i][j].start,
                                  s->slices[i][j].size);