|
|
|
@ -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; |
|
|
|
|