Quoting Diego Biurrun (2016-06-09 17:11:49)
> From: Alexandra Hájková <[email protected]>
> 
> ---
>  libavcodec/eatgq.c | 34 +++++++++++++++++-----------------
>  libavcodec/eatgv.c | 23 ++++++++++++-----------
>  2 files changed, 29 insertions(+), 28 deletions(-)
> 
> diff --git a/libavcodec/eatgq.c b/libavcodec/eatgq.c
> index ff0aa55..9f29428 100644
> --- a/libavcodec/eatgq.c
> +++ b/libavcodec/eatgq.c
> @@ -31,9 +31,9 @@
>  #define BITSTREAM_READER_LE
>  #include "aandcttab.h"
>  #include "avcodec.h"
> +#include "bitstream.h"
>  #include "bytestream.h"
>  #include "eaidct.h"
> -#include "get_bits.h"
>  #include "idctdsp.h"
>  #include "internal.h"
>  
> @@ -58,44 +58,44 @@ static av_cold int tgq_decode_init(AVCodecContext *avctx)
>      return 0;
>  }
>  
> -static void tgq_decode_block(TgqContext *s, int16_t block[64], GetBitContext 
> *gb)
> +static void tgq_decode_block(TgqContext *s, int16_t block[64], 
> BitstreamContext *bc)
>  {
>      uint8_t *perm = s->scantable.permutated;
>      int i, j, value;
> -    block[0] = get_sbits(gb, 8) * s->qtable[0];
> +    block[0] = bitstream_read_signed(bc, 8) * s->qtable[0];
>      for (i = 1; i < 64;) {
> -        switch (show_bits(gb, 3)) {
> +        switch (bitstream_peek(bc, 3)) {
>          case 4:
>              block[perm[i++]] = 0;
>          case 0:
>              block[perm[i++]] = 0;
> -            skip_bits(gb, 3);
> +            bitstream_skip(bc, 3);
>              break;
>          case 5:
>          case 1:
> -            skip_bits(gb, 2);
> -            value = get_bits(gb, 6);
> +            bitstream_skip(bc, 2);
> +            value = bitstream_read(bc, 6);
>              for (j = 0; j < value; j++)
>                  block[perm[i++]] = 0;
>              break;
>          case 6:
> -            skip_bits(gb, 3);
> +            bitstream_skip(bc, 3);
>              block[perm[i]] = -s->qtable[perm[i]];
>              i++;
>              break;
>          case 2:
> -            skip_bits(gb, 3);
> +            bitstream_skip(bc, 3);
>              block[perm[i]] = s->qtable[perm[i]];
>              i++;
>              break;
>          case 7: // 111b
>          case 3: // 011b
> -            skip_bits(gb, 2);
> -            if (show_bits(gb, 6) == 0x3F) {
> -                skip_bits(gb, 6);
> -                block[perm[i]] = get_sbits(gb, 8) * s->qtable[perm[i]];
> +            bitstream_skip(bc, 2);
> +            if (bitstream_peek(bc, 6) == 0x3F) {
> +                bitstream_skip(bc, 6);
> +                block[perm[i]] = bitstream_read_signed(bc, 8) * 
> s->qtable[perm[i]];
>              } else {
> -                block[perm[i]] = get_sbits(gb, 6) * s->qtable[perm[i]];
> +                block[perm[i]] = bitstream_read_signed(bc, 6) * 
> s->qtable[perm[i]];
>              }
>              i++;
>              break;
> @@ -156,10 +156,10 @@ static void tgq_decode_mb(TgqContext *s, AVFrame 
> *frame, int mb_y, int mb_x)
>  
>      mode = bytestream2_get_byte(&s->gb);
>      if (mode > 12) {
> -        GetBitContext gb;
> -        init_get_bits(&gb, s->gb.buffer, FFMIN(s->gb.buffer_end - 
> s->gb.buffer, mode) * 8);
> +        BitstreamContext bc;
> +        bitstream_init(&bc, s->gb.buffer, FFMIN(s->gb.buffer_end - 
> s->gb.buffer, mode) * 8);
>          for (i = 0; i < 6; i++)
> -            tgq_decode_block(s, s->block[i], &gb);
> +            tgq_decode_block(s, s->block[i], &bc);
>          tgq_idct_put_mb(s, s->block, frame, mb_x, mb_y);
>          bytestream2_skip(&s->gb, mode);
>      } else {
> diff --git a/libavcodec/eatgv.c b/libavcodec/eatgv.c
> index 7f40f45..458f16a 100644
> --- a/libavcodec/eatgv.c
> +++ b/libavcodec/eatgv.c
> @@ -33,7 +33,7 @@
>  
>  #define BITSTREAM_READER_LE
>  #include "avcodec.h"
> -#include "get_bits.h"
> +#include "bitstream.h"
>  #include "internal.h"
>  
>  #define EA_PREAMBLE_SIZE    8
> @@ -153,7 +153,7 @@ static int tgv_decode_inter(TgvContext *s, AVFrame *frame,
>      int num_blocks_packed;
>      int vector_bits;
>      int i,j,x,y;
> -    GetBitContext gb;
> +    BitstreamContext bc;
>      int mvbits;
>      const uint8_t *blocks_raw;
>  
> @@ -166,7 +166,8 @@ static int tgv_decode_inter(TgvContext *s, AVFrame *frame,
>      vector_bits       = AV_RL16(&buf[6]);
>      buf += 12;
>  
> -    if (vector_bits > MIN_CACHE_BITS || !vector_bits) {
> +//    if (vector_bits > av_log2(num_mvs) || !vector_bits) {

???

Looks ok otherwise.

-- 
Anton Khirnov
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to