From 2e0e150144d6c8fe641a45141638559fbf4d9642 Mon Sep 17 00:00:00 2001 From: Diego Biurrun Date: Tue, 21 Jun 2016 14:35:53 +0200 Subject: [PATCH] magicyuv: Convert to the new bitstream reader --- libavcodec/magicyuv.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/libavcodec/magicyuv.c b/libavcodec/magicyuv.c index 310ead4b06..027143fc87 100644 --- a/libavcodec/magicyuv.c +++ b/libavcodec/magicyuv.c @@ -22,14 +22,15 @@ #include #include -#include "../libavutil/pixdesc.h" +#include "libavutil/pixdesc.h" #include "avcodec.h" +#include "bitstream.h" #include "bytestream.h" -#include "get_bits.h" #include "huffyuvdsp.h" #include "internal.h" #include "thread.h" +#include "vlc.h" typedef struct Slice { uint32_t start; @@ -108,7 +109,7 @@ static int magy_decode_slice(AVCodecContext *avctx, void *tdata, int interlaced = s->interlaced; AVFrame *p = s->p; int i, k, x; - GetBitContext gb; + BitstreamContext bc; uint8_t *dst; for (i = 0; i < s->planes; i++) { @@ -119,20 +120,20 @@ static int magy_decode_slice(AVCodecContext *avctx, void *tdata, ptrdiff_t fake_stride = p->linesize[i] * (1 + interlaced); ptrdiff_t stride = p->linesize[i]; int flags, pred; - int ret = init_get_bits8(&gb, s->buf + s->slices[i][j].start, - s->slices[i][j].size); + int ret = bitstream_init8(&bc, s->buf + s->slices[i][j].start, + s->slices[i][j].size); if (ret < 0) return ret; - flags = get_bits(&gb, 8); - pred = get_bits(&gb, 8); + flags = bitstream_read(&bc, 8); + pred = bitstream_read(&bc, 8); dst = p->data[i] + j * sheight * stride; if (flags & 1) { for (k = 0; k < height; k++) { for (x = 0; x < width; x++) - dst[x] = get_bits(&gb, 8); + dst[x] = bitstream_read(&bc, 8); dst += stride; } @@ -140,10 +141,10 @@ static int magy_decode_slice(AVCodecContext *avctx, void *tdata, for (k = 0; k < height; k++) { for (x = 0; x < width; x++) { int pix; - if (get_bits_left(&gb) <= 0) + if (bitstream_bits_left(&bc) <= 0) return AVERROR_INVALIDDATA; - pix = get_vlc2(&gb, s->vlc[i].table, s->vlc[i].bits, 3); + pix = bitstream_read_vlc(&bc, s->vlc[i].table, s->vlc[i].bits, 3); if (pix < 0) return AVERROR_INVALIDDATA; @@ -238,7 +239,7 @@ static int magy_decode_frame(AVCodecContext *avctx, void *data, ThreadFrame frame = { .f = data }; AVFrame *p = data; GetByteContext gbyte; - GetBitContext gbit; + BitstreamContext bc; uint32_t first_offset, offset, next_offset, header_size, slice_width; int width, height, format, version, table_size; int ret, i, j, k; @@ -370,16 +371,16 @@ static int magy_decode_frame(AVCodecContext *avctx, void *data, if (table_size < 2) return AVERROR_INVALIDDATA; - ret = init_get_bits8(&gbit, avpkt->data + bytestream2_tell(&gbyte), table_size); + ret = bitstream_init8(&bc, avpkt->data + bytestream2_tell(&gbyte), table_size); if (ret < 0) return ret; memset(s->len, 0, sizeof(s->len)); j = i = 0; - while (get_bits_left(&gbit) >= 8) { - int b = get_bits(&gbit, 4); - int x = get_bits(&gbit, 4); - int l = get_bitsz(&gbit, b) + 1; + while (bitstream_bits_left(&bc) >= 8) { + int b = bitstream_read(&bc, 4); + int x = bitstream_read(&bc, 4); + int l = bitstream_read(&bc, b) + 1; for (k = 0; k < l; k++) if (j + k < 256)