aic: Convert to the new bitstream reader
authorAlexandra Hájková <alexandra@khirnov.net>
Sat, 23 Apr 2016 13:19:08 +0000 (15:19 +0200)
committerDiego Biurrun <diego@biurrun.de>
Tue, 31 Jan 2017 16:54:10 +0000 (17:54 +0100)
libavcodec/aic.c

index 405ebf1..368b3bc 100644 (file)
 #include <inttypes.h>
 
 #include "avcodec.h"
+#include "bitstream.h"
 #include "bytestream.h"
+#include "golomb.h"
 #include "internal.h"
-#include "get_bits.h"
-#include "golomb_legacy.h"
 #include "idctdsp.h"
 #include "thread.h"
-#include "unary_legacy.h"
+#include "unary.h"
 
 #define AIC_HDR_SIZE    24
 #define AIC_BAND_COEFFS (64 + 32 + 192 + 96)
@@ -191,14 +191,14 @@ static int aic_decode_header(AICContext *ctx, const uint8_t *src, int size)
 #define GET_CODE(val, type, add_bits)                         \
     do {                                                      \
         if (type)                                             \
-            val = get_ue_golomb(gb);                          \
+            val = get_ue_golomb(bc);                          \
         else                                                  \
-            val = get_unary(gb, 1, 31);                       \
+            val = get_unary(bc, 1, 31);                       \
         if (add_bits)                                         \
-            val = (val << add_bits) + get_bits(gb, add_bits); \
+            val = (val << add_bits) + bitstream_read(bc, add_bits); \
     } while (0)
 
-static int aic_decode_coeffs(GetBitContext *gb, int16_t *dst,
+static int aic_decode_coeffs(BitstreamContext *bc, int16_t *dst,
                              int band, int slice_width, int force_chroma)
 {
     int has_skips, coeff_type, coeff_bits, skip_type, skip_bits;
@@ -206,13 +206,13 @@ static int aic_decode_coeffs(GetBitContext *gb, int16_t *dst,
     const uint8_t *scan = aic_scan[band | force_chroma];
     int mb, idx, val;
 
-    has_skips  = get_bits1(gb);
-    coeff_type = get_bits1(gb);
-    coeff_bits = get_bits(gb, 3);
+    has_skips  = bitstream_read_bit(bc);
+    coeff_type = bitstream_read_bit(bc);
+    coeff_bits = bitstream_read(bc, 3);
 
     if (has_skips) {
-        skip_type = get_bits1(gb);
-        skip_bits = get_bits(gb, 3);
+        skip_type = bitstream_read_bit(bc);
+        skip_bits = bitstream_read(bc, 3);
 
         for (mb = 0; mb < slice_width; mb++) {
             idx = -1;
@@ -303,7 +303,7 @@ static void unquant_block(int16_t *block, int q)
 static int aic_decode_slice(AICContext *ctx, int mb_x, int mb_y,
                             const uint8_t *src, int src_size)
 {
-    GetBitContext gb;
+    BitstreamContext bc;
     int ret, i, mb, blk;
     int slice_width = FFMIN(ctx->slice_width, ctx->mb_width - mb_x);
     uint8_t *Y, *C[2];
@@ -318,12 +318,12 @@ static int aic_decode_slice(AICContext *ctx, int mb_x, int mb_y,
     for (i = 0; i < 2; i++)
         C[i] = ctx->frame->data[i + 1] + mb_x * 8
                + mb_y * 8 * ctx->frame->linesize[i + 1];
-    init_get_bits(&gb, src, src_size * 8);
+    bitstream_init8(&bc, src, src_size);
 
     memset(ctx->slice_data, 0,
            sizeof(*ctx->slice_data) * slice_width * AIC_BAND_COEFFS);
     for (i = 0; i < NUM_BANDS; i++)
-        if ((ret = aic_decode_coeffs(&gb, ctx->data_ptr[i],
+        if ((ret = aic_decode_coeffs(&bc, ctx->data_ptr[i],
                                      i, slice_width,
                                      !ctx->interlaced)) < 0)
             return ret;