]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/lagarith.c
lavc: add a null bitstream filter
[ffmpeg] / libavcodec / lagarith.c
index 55e10bce55f8389bf5732b6fed9877247bfd7d9b..d9667b7afced7e1d200abb3e913a2c9c66c41818 100644 (file)
@@ -28,7 +28,7 @@
 #include <inttypes.h>
 
 #include "avcodec.h"
-#include "get_bits.h"
+#include "bitstream.h"
 #include "mathops.h"
 #include "huffyuvdsp.h"
 #include "lagarithrac.h"
@@ -101,7 +101,7 @@ static uint8_t lag_calc_zero_run(int8_t x)
     return (x << 1) ^ (x >> 7);
 }
 
-static int lag_decode_prob(GetBitContext *gb, uint32_t *value)
+static int lag_decode_prob(BitstreamContext *bc, uint32_t *value)
 {
     static const uint8_t series[] = { 1, 2, 3, 5, 8, 13, 21 };
     int i;
@@ -114,7 +114,7 @@ static int lag_decode_prob(GetBitContext *gb, uint32_t *value)
         if (prevbit && bit)
             break;
         prevbit = bit;
-        bit = get_bits1(gb);
+        bit = bitstream_read_bit(bc);
         if (bit && !prevbit)
             bits += series[i];
     }
@@ -127,7 +127,7 @@ static int lag_decode_prob(GetBitContext *gb, uint32_t *value)
         return 0;
     }
 
-    val  = get_bits_long(gb, bits);
+    val  = bitstream_read(bc, bits);
     val |= 1 << bits;
 
     *value = val - 1;
@@ -135,7 +135,7 @@ static int lag_decode_prob(GetBitContext *gb, uint32_t *value)
     return 0;
 }
 
-static int lag_read_prob_header(lag_rac *rac, GetBitContext *gb)
+static int lag_read_prob_header(lag_rac *rac, BitstreamContext *bc)
 {
     int i, j, scale_factor;
     unsigned prob, cumulative_target;
@@ -146,7 +146,7 @@ static int lag_read_prob_header(lag_rac *rac, GetBitContext *gb)
     rac->prob[257] = UINT_MAX;
     /* Read probabilities from bitstream */
     for (i = 1; i < 257; i++) {
-        if (lag_decode_prob(gb, &rac->prob[i]) < 0) {
+        if (lag_decode_prob(bc, &rac->prob[i]) < 0) {
             av_log(rac->avctx, AV_LOG_ERROR, "Invalid probability encountered.\n");
             return -1;
         }
@@ -156,7 +156,7 @@ static int lag_read_prob_header(lag_rac *rac, GetBitContext *gb)
         }
         cumul_prob += rac->prob[i];
         if (!rac->prob[i]) {
-            if (lag_decode_prob(gb, &prob)) {
+            if (lag_decode_prob(bc, &prob)) {
                 av_log(rac->avctx, AV_LOG_ERROR, "Invalid probability run encountered.\n");
                 return -1;
             }
@@ -422,7 +422,7 @@ static int lag_decode_arith_plane(LagarithContext *l, uint8_t *dst,
     uint32_t length;
     uint32_t offset = 1;
     int esc_count = src[0];
-    GetBitContext gb;
+    BitstreamContext bc;
     lag_rac rac;
     const uint8_t *src_end = src + src_size;
 
@@ -436,12 +436,12 @@ static int lag_decode_arith_plane(LagarithContext *l, uint8_t *dst,
             offset += 4;
         }
 
-        init_get_bits(&gb, src + offset, src_size * 8);
+        bitstream_init(&bc, src + offset, src_size * 8);
 
-        if (lag_read_prob_header(&rac, &gb) < 0)
+        if (lag_read_prob_header(&rac, &bc) < 0)
             return -1;
 
-        ff_lag_rac_init(&rac, &gb, length - stride);
+        ff_lag_rac_init(&rac, &bc, length - stride);
 
         for (i = 0; i < height; i++)
             read += lag_decode_line(l, &rac, dst + (i * stride), width,