diff mbox series

[FFmpeg-devel,1/7] avcodec/indeo2: Remove #ifdef BITSTREAM_READER_LE cruft

Message ID 20201012081217.1643833-1-andreas.rheinhardt@gmail.com
State Accepted
Commit 57eee75c3fd075e555df122f1abc45ca636a2726
Headers show
Series [FFmpeg-devel,1/7] avcodec/indeo2: Remove #ifdef BITSTREAM_READER_LE cruft | expand

Checks

Context Check Description
andriy/x86_make success Make finished
andriy/x86_make_fate success Make fate finished

Commit Message

Andreas Rheinhardt Oct. 12, 2020, 8:12 a.m. UTC
Before the LE bitstream reader was used in the Indeo 2 decoder,
a standard BE bitstream reader with swapped bits was used; when the LE
bitstream reader was added, the old code was only #ifdef'ed away and not
removed. Said code has several problems: It modifies the input packet
without ensuring that the packet is indeed writable; and it doesn't work
since 09c4e5c5988c0037d108c5fc2a137d9ad488f7f4 because said commit
removed the BE table used to initialize the VLC table. So just remove
this cruft from the actual decoder, too.

Also use INIT_LE_VLC_STATIC while at it.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
---
 libavcodec/indeo2.c | 19 +++----------------
 1 file changed, 3 insertions(+), 16 deletions(-)

Comments

Paul B Mahol Oct. 12, 2020, 9:51 a.m. UTC | #1
On Mon, Oct 12, 2020 at 10:12:11AM +0200, Andreas Rheinhardt wrote:
> Before the LE bitstream reader was used in the Indeo 2 decoder,
> a standard BE bitstream reader with swapped bits was used; when the LE
> bitstream reader was added, the old code was only #ifdef'ed away and not
> removed. Said code has several problems: It modifies the input packet
> without ensuring that the packet is indeed writable; and it doesn't work
> since 09c4e5c5988c0037d108c5fc2a137d9ad488f7f4 because said commit
> removed the BE table used to initialize the VLC table. So just remove
> this cruft from the actual decoder, too.
> 
> Also use INIT_LE_VLC_STATIC while at it.

lgtm

> 
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
> ---
>  libavcodec/indeo2.c | 19 +++----------------
>  1 file changed, 3 insertions(+), 16 deletions(-)
> 
> diff --git a/libavcodec/indeo2.c b/libavcodec/indeo2.c
> index ccf6cd84cb..7a568bfbc4 100644
> --- a/libavcodec/indeo2.c
> +++ b/libavcodec/indeo2.c
> @@ -174,10 +174,6 @@ static int ir2_decode_frame(AVCodecContext *avctx,
>      s->decode_delta = buf[18];
>  
>      /* decide whether frame uses deltas or not */
> -#ifndef BITSTREAM_READER_LE
> -    for (i = 0; i < buf_size; i++)
> -        buf[i] = ff_reverse[buf[i]];
> -#endif
>  
>      if ((ret = init_get_bits8(&s->gb, buf + start, buf_size - start)) < 0)
>          return ret;
> @@ -232,7 +228,6 @@ static int ir2_decode_frame(AVCodecContext *avctx,
>  static av_cold int ir2_decode_init(AVCodecContext *avctx)
>  {
>      Ir2Context * const ic = avctx->priv_data;
> -    static VLC_TYPE vlc_tables[1 << CODE_VLC_BITS][2];
>  
>      ic->avctx = avctx;
>  
> @@ -242,17 +237,9 @@ static av_cold int ir2_decode_init(AVCodecContext *avctx)
>      if (!ic->picture)
>          return AVERROR(ENOMEM);
>  
> -    ir2_vlc.table = vlc_tables;
> -    ir2_vlc.table_allocated = 1 << CODE_VLC_BITS;
> -#ifdef BITSTREAM_READER_LE
> -        init_vlc(&ir2_vlc, CODE_VLC_BITS, IR2_CODES,
> -                 &ir2_codes[0][1], 4, 2,
> -                 &ir2_codes[0][0], 4, 2, INIT_VLC_USE_NEW_STATIC | INIT_VLC_LE);
> -#else
> -        init_vlc(&ir2_vlc, CODE_VLC_BITS, IR2_CODES,
> -                 &ir2_codes[0][1], 4, 2,
> -                 &ir2_codes[0][0], 4, 2, INIT_VLC_USE_NEW_STATIC);
> -#endif
> +    INIT_LE_VLC_STATIC(&ir2_vlc, CODE_VLC_BITS, IR2_CODES,
> +                       &ir2_codes[0][1], 4, 2,
> +                       &ir2_codes[0][0], 4, 2, 1 << CODE_VLC_BITS);
>  
>      return 0;
>  }
> -- 
> 2.25.1
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
diff mbox series

Patch

diff --git a/libavcodec/indeo2.c b/libavcodec/indeo2.c
index ccf6cd84cb..7a568bfbc4 100644
--- a/libavcodec/indeo2.c
+++ b/libavcodec/indeo2.c
@@ -174,10 +174,6 @@  static int ir2_decode_frame(AVCodecContext *avctx,
     s->decode_delta = buf[18];
 
     /* decide whether frame uses deltas or not */
-#ifndef BITSTREAM_READER_LE
-    for (i = 0; i < buf_size; i++)
-        buf[i] = ff_reverse[buf[i]];
-#endif
 
     if ((ret = init_get_bits8(&s->gb, buf + start, buf_size - start)) < 0)
         return ret;
@@ -232,7 +228,6 @@  static int ir2_decode_frame(AVCodecContext *avctx,
 static av_cold int ir2_decode_init(AVCodecContext *avctx)
 {
     Ir2Context * const ic = avctx->priv_data;
-    static VLC_TYPE vlc_tables[1 << CODE_VLC_BITS][2];
 
     ic->avctx = avctx;
 
@@ -242,17 +237,9 @@  static av_cold int ir2_decode_init(AVCodecContext *avctx)
     if (!ic->picture)
         return AVERROR(ENOMEM);
 
-    ir2_vlc.table = vlc_tables;
-    ir2_vlc.table_allocated = 1 << CODE_VLC_BITS;
-#ifdef BITSTREAM_READER_LE
-        init_vlc(&ir2_vlc, CODE_VLC_BITS, IR2_CODES,
-                 &ir2_codes[0][1], 4, 2,
-                 &ir2_codes[0][0], 4, 2, INIT_VLC_USE_NEW_STATIC | INIT_VLC_LE);
-#else
-        init_vlc(&ir2_vlc, CODE_VLC_BITS, IR2_CODES,
-                 &ir2_codes[0][1], 4, 2,
-                 &ir2_codes[0][0], 4, 2, INIT_VLC_USE_NEW_STATIC);
-#endif
+    INIT_LE_VLC_STATIC(&ir2_vlc, CODE_VLC_BITS, IR2_CODES,
+                       &ir2_codes[0][1], 4, 2,
+                       &ir2_codes[0][0], 4, 2, 1 << CODE_VLC_BITS);
 
     return 0;
 }