[FFmpeg-cvslog] clearvideo: Convert to the new bitstream reader
Diego Biurrun
git at videolan.org
Mon Oct 30 20:52:18 EET 2017
ffmpeg | branch: master | Diego Biurrun <diego at biurrun.de> | Fri Apr 14 20:42:47 2017 +0200| [d0ce0634e09403eecaea4283cf82a2c5cea7d1e1] | committer: Diego Biurrun
clearvideo: Convert to the new bitstream reader
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d0ce0634e09403eecaea4283cf82a2c5cea7d1e1
---
libavcodec/clearvideo.c | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/libavcodec/clearvideo.c b/libavcodec/clearvideo.c
index a0ce686385..08bf2cb6da 100644
--- a/libavcodec/clearvideo.c
+++ b/libavcodec/clearvideo.c
@@ -25,8 +25,8 @@
*/
#include "avcodec.h"
+#include "bitstream.h"
#include "bytestream.h"
-#include "get_bits.h"
#include "idctdsp.h"
#include "internal.h"
@@ -123,7 +123,7 @@ typedef struct CLVContext {
AVCodecContext *avctx;
IDCTDSPContext idsp;
AVFrame *pic;
- GetBitContext gb;
+ BitstreamContext bc;
int mb_width, mb_height;
VLC dc_vlc, ac_vlc;
int luma_dc_quant, chroma_dc_quant, ac_quant;
@@ -135,11 +135,11 @@ typedef struct CLVContext {
static inline int decode_block(CLVContext *ctx, int16_t *blk, int has_ac,
int ac_quant)
{
- GetBitContext *gb = &ctx->gb;
+ BitstreamContext *bc = &ctx->bc;
int idx = 1, last = 0, val, skip;
memset(blk, 0, sizeof(*blk) * 64);
- blk[0] = get_vlc2(gb, ctx->dc_vlc.table, 9, 3);
+ blk[0] = bitstream_read_vlc(bc, ctx->dc_vlc.table, 9, 3);
if (blk[0] < 0)
return AVERROR_INVALIDDATA;
blk[0] -= 63;
@@ -148,19 +148,19 @@ static inline int decode_block(CLVContext *ctx, int16_t *blk, int has_ac,
return 0;
while (idx < 64 && !last) {
- val = get_vlc2(gb, ctx->ac_vlc.table, 9, 2);
+ val = bitstream_read_vlc(bc, ctx->ac_vlc.table, 9, 2);
if (val < 0)
return AVERROR_INVALIDDATA;
if (val != 0x1BFF) {
last = val >> 12;
skip = (val >> 4) & 0xFF;
val &= 0xF;
- if (get_bits1(gb))
+ if (bitstream_read_bit(bc))
val = -val;
} else {
- last = get_bits1(gb);
- skip = get_bits(gb, 6);
- val = get_sbits(gb, 8);
+ last = bitstream_read_bit(bc);
+ skip = bitstream_read(bc, 6);
+ val = bitstream_read_signed(bc, 8);
}
if (val) {
int aval = FFABS(val), sign = val < 0;
@@ -229,7 +229,7 @@ static int decode_mb(CLVContext *c, int x, int y)
int i, has_ac[6], off;
for (i = 0; i < 6; i++)
- has_ac[i] = get_bits1(&c->gb);
+ has_ac[i] = bitstream_read_bit(&c->bc);
off = x * 16 + y * 16 * c->pic->linesize[0];
for (i = 0; i < 4; i++) {
@@ -301,8 +301,8 @@ static int clv_decode_frame(AVCodecContext *avctx, void *data,
c->luma_dc_quant = 32;
c->chroma_dc_quant = 32;
- if ((ret = init_get_bits8(&c->gb, buf + bytestream2_tell(&gb),
- buf_size - bytestream2_tell(&gb))) < 0)
+ if ((ret = bitstream_init8(&c->bc, buf + bytestream2_tell(&gb),
+ buf_size - bytestream2_tell(&gb))) < 0)
return ret;
for (i = 0; i < 3; i++)
More information about the ffmpeg-cvslog
mailing list