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 |
Context | Check | Description |
---|---|---|
yinshiyou/configure_loongarch64 | warning | Failed to apply patch |
andriy/configure_x86 | warning | Failed to apply patch |
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 --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);
This will permit further optimizations Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> --- libavcodec/magicyuv.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)