Quoting Diego Biurrun (2016-06-09 17:12:06)
> From: Alexandra Hájková <[email protected]>
> 
> ---
>  libavcodec/bink.c | 248 
> +++++++++++++++++++++++++++---------------------------
>  1 file changed, 124 insertions(+), 124 deletions(-)
> 
> -static int read_motion_values(AVCodecContext *avctx, GetBitContext *gb, 
> Bundle *b)
> +static int read_motion_values(AVCodecContext *avctx, BitstreamContext *bc, 
> Bundle *b)
>  {
>      int t, sign, v;
>      const uint8_t *dec_end;
>  
> -    CHECK_READ_VAL(gb, b, t);
> +    CHECK_READ_VAL(bc, b, t);
>      dec_end = b->cur_dec + t;
>      if (dec_end > b->data_end) {
>          av_log(avctx, AV_LOG_ERROR, "Too many motion values\n");
>          return AVERROR_INVALIDDATA;
>      }
> -    if (get_bits1(gb)) {
> -        v = get_bits(gb, 4);
> +    if (bitstream_read_bit(bc)) {
> +        v = bitstream_read(bc, 4);
>          if (v) {
> -            sign = -get_bits1(gb);
> +            sign = -bitstream_read_bit(bc);
>              v = (v ^ sign) - sign;

This looks awfully like bitstream_apply_sign(). Same in marked places
below.

>          }
>          memset(b->cur_dec, v, t);
>          b->cur_dec += t;
>      } else {
>          while (b->cur_dec < dec_end) {
> -            v = GET_HUFF(gb, b->tree);
> +            v = GET_HUFF(bc, b->tree);
>              if (v) {
> -                sign = -get_bits1(gb);
> +                sign = -bitstream_read_bit(bc);
>                  v = (v ^ sign) - sign;

++

> -static int read_dcs(AVCodecContext *avctx, GetBitContext *gb, Bundle *b,
> +static int read_dcs(AVCodecContext *avctx, BitstreamContext *bc, Bundle *b,
>                      int start_bits, int has_sign)
>  {
>      int i, j, len, len2, bsize, sign, v, v2;
>      int16_t *dst     = (int16_t*)b->cur_dec;
>      int16_t *dst_end = (int16_t*)b->data_end;
>  
> -    CHECK_READ_VAL(gb, b, len);
> -    v = get_bits(gb, start_bits - has_sign);
> +    CHECK_READ_VAL(bc, b, len);
> +    v = bitstream_read(bc, start_bits - has_sign);
>      if (v && has_sign) {
> -        sign = -get_bits1(gb);
> +        sign = -bitstream_read_bit(bc);
>          v = (v ^ sign) - sign;

++

>      }
>      if (dst_end - dst < 1)
> @@ -481,12 +482,12 @@ static int read_dcs(AVCodecContext *avctx, 
> GetBitContext *gb, Bundle *b,
>          len2 = FFMIN(len - i, 8);
>          if (dst_end - dst < len2)
>              return AVERROR_INVALIDDATA;
> -        bsize = get_bits(gb, 4);
> +        bsize = bitstream_read(bc, 4);
>          if (bsize) {
>              for (j = 0; j < len2; j++) {
> -                v2 = get_bits(gb, bsize);
> +                v2 = bitstream_read(bc, bsize);
>                  if (v2) {
> -                    sign = -get_bits1(gb);
> +                    sign = -bitstream_read_bit(bc);
>                      v2 = (v2 ^ sign) - sign;

++

> @@ -634,15 +636,15 @@ static int read_dct_coeffs(GetBitContext *gb, int32_t 
> block[64], const uint8_t *
>                      mode_list[list_pos++] = 0;
>                  }
>                  for (i = 0; i < 4; i++, ccoef++) {
> -                    if (get_bits1(gb)) {
> +                    if (bitstream_read_bit(bc)) {
>                          coef_list[--list_start] = ccoef;
>                          mode_list[  list_start] = 3;
>                      } else {
>                          if (!bits) {
> -                            t = 1 - (get_bits1(gb) << 1);
> +                            t = 1 - (bitstream_read_bit(bc) << 1);
>                          } else {
> -                            t = get_bits(gb, bits) | 1 << bits;
> -                            sign = -get_bits1(gb);
> +                            t = bitstream_read(bc, bits) | 1 << bits;
> +                            sign = -bitstream_read_bit(bc);
>                              t = (t ^ sign) - sign;

++

>                          }
>                          block[scan[ccoef]] = t;
> @@ -660,10 +662,10 @@ static int read_dct_coeffs(GetBitContext *gb, int32_t 
> block[64], const uint8_t *
>                  break;
>              case 3:
>                  if (!bits) {
> -                    t = 1 - (get_bits1(gb) << 1);
> +                    t = 1 - (bitstream_read_bit(bc) << 1);
>                  } else {
> -                    t = get_bits(gb, bits) | 1 << bits;
> -                    sign = -get_bits1(gb);
> +                    t = bitstream_read(bc, bits) | 1 << bits;
> +                    sign = -bitstream_read_bit(bc);
>                      t = (t ^ sign) - sign;

++

>                  }
>                  block[scan[ccoef]] = t;
> @@ -676,7 +678,7 @@ static int read_dct_coeffs(GetBitContext *gb, int32_t 
> block[64], const uint8_t *
>      }
>  
>      if (q == -1) {
> -        quant_idx = get_bits(gb, 4);
> +        quant_idx = bitstream_read(bc, 4);
>      } else {
>          quant_idx = q;
>      }
> @@ -698,12 +700,12 @@ static int read_dct_coeffs(GetBitContext *gb, int32_t 
> block[64], const uint8_t *
>  /**
>   * Read 8x8 block with residue after motion compensation.
>   *
> - * @param gb          context for reading bits
> + * @param bc          context for reading bits
>   * @param block       place to store read data
>   * @param masks_count number of masks to decode
>   * @return 0 on success, negative value in other cases
>   */
> -static int read_residue(GetBitContext *gb, int16_t block[64], int 
> masks_count)
> +static int read_residue(BitstreamContext *bc, int16_t block[64], int 
> masks_count)
>  {
>      int coef_list[128];
>      int mode_list[128];
> @@ -717,9 +719,9 @@ static int read_residue(GetBitContext *gb, int16_t 
> block[64], int masks_count)
>      coef_list[list_end] = 44; mode_list[list_end++] = 0;
>      coef_list[list_end] =  0; mode_list[list_end++] = 2;
>  
> -    for (mask = 1 << get_bits(gb, 3); mask; mask >>= 1) {
> +    for (mask = 1 << bitstream_read(bc, 3); mask; mask >>= 1) {
>          for (i = 0; i < nz_coeff_count; i++) {
> -            if (!get_bits1(gb))
> +            if (!bitstream_read_bit(bc))
>                  continue;
>              if (block[nz_coeff[i]] < 0)
>                  block[nz_coeff[i]] -= mask;
> @@ -731,7 +733,7 @@ static int read_residue(GetBitContext *gb, int16_t 
> block[64], int masks_count)
>          }
>          list_pos = list_start;
>          while (list_pos < list_end) {
> -            if (!(coef_list[list_pos] | mode_list[list_pos]) || 
> !get_bits1(gb)) {
> +            if (!(coef_list[list_pos] | mode_list[list_pos]) || 
> !bitstream_read_bit(bc)) {
>                  list_pos++;
>                  continue;
>              }
> @@ -747,12 +749,12 @@ static int read_residue(GetBitContext *gb, int16_t 
> block[64], int masks_count)
>                      mode_list[list_pos++] = 0;
>                  }
>                  for (i = 0; i < 4; i++, ccoef++) {
> -                    if (get_bits1(gb)) {
> +                    if (bitstream_read_bit(bc)) {
>                          coef_list[--list_start] = ccoef;
>                          mode_list[  list_start] = 3;
>                      } else {
>                          nz_coeff[nz_coeff_count++] = bink_scan[ccoef];
> -                        sign = -get_bits1(gb);
> +                        sign = -bitstream_read_bit(bc);
>                          block[bink_scan[ccoef]] = (mask ^ sign) - sign;

++

>                          masks_count--;
>                          if (masks_count < 0)
> @@ -770,7 +772,7 @@ static int read_residue(GetBitContext *gb, int16_t 
> block[64], int masks_count)
>                  break;
>              case 3:
>                  nz_coeff[nz_coeff_count++] = bink_scan[ccoef];
> -                sign = -get_bits1(gb);
> +                sign = -bitstream_read_bit(bc);
>                  block[bink_scan[ccoef]] = (mask ^ sign) - sign;

++

Otherwise looks ok.

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

Reply via email to