diff options
author | Diego Biurrun <diego@biurrun.de> | 2016-06-21 14:35:53 +0200 |
---|---|---|
committer | Diego Biurrun <diego@biurrun.de> | 2017-01-25 10:38:43 +0100 |
commit | 2e0e150144d6c8fe641a45141638559fbf4d9642 (patch) | |
tree | 55a4e0bd2ee6989aa1ab025c922623ebdd005766 /libavcodec | |
parent | b061f298f7f2c227c12dd76a15041ec0a66eeca0 (diff) | |
download | ffmpeg-streaming-2e0e150144d6c8fe641a45141638559fbf4d9642.zip ffmpeg-streaming-2e0e150144d6c8fe641a45141638559fbf4d9642.tar.gz |
magicyuv: Convert to the new bitstream reader
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/magicyuv.c | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/libavcodec/magicyuv.c b/libavcodec/magicyuv.c index 310ead4..027143f 100644 --- a/libavcodec/magicyuv.c +++ b/libavcodec/magicyuv.c @@ -22,14 +22,15 @@ #include <stdlib.h> #include <string.h> -#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) |