tta: use get_unary()
authorPaul B Mahol <onemda@gmail.com>
Sat, 1 Jun 2013 23:06:04 +0000 (23:06 +0000)
committerPaul B Mahol <onemda@gmail.com>
Sat, 1 Jun 2013 23:06:04 +0000 (23:06 +0000)
Signed-off-by: Paul B Mahol <onemda@gmail.com>
libavcodec/tta.c

index 2e27093..eafbd44 100644 (file)
@@ -31,6 +31,7 @@
 #include <limits.h>
 #include "avcodec.h"
 #include "get_bits.h"
+#include "unary.h"
 #include "internal.h"
 #include "libavutil/crc.h"
 #include "libavutil/intreadwrite.h"
@@ -147,16 +148,6 @@ static void rice_init(TTARice *c, uint32_t k0, uint32_t k1)
     c->sum1 = shift_16[k1];
 }
 
-static int tta_get_unary(GetBitContext *gb)
-{
-    int ret = 0;
-
-    // count ones
-    while (get_bits_left(gb) > 0 && get_bits1(gb))
-        ret++;
-    return ret;
-}
-
 static const int64_t tta_channel_layouts[7] = {
     AV_CH_LAYOUT_STEREO,
     AV_CH_LAYOUT_STEREO|AV_CH_LOW_FREQUENCY,
@@ -341,7 +332,7 @@ static int tta_decode_frame(AVCodecContext *avctx, void *data,
         uint32_t unary, depth, k;
         int32_t value;
 
-        unary = tta_get_unary(&s->gb);
+        unary = get_unary(&s->gb, 0, get_bits_left(&s->gb));
 
         if (unary == 0) {
             depth = 0;