On Wed, Jan 11, 2017 at 10:44 PM, Diego Biurrun <[email protected]> wrote:
> ---
>
> Another fringe codec that should need no benchmarks.
>
> libavcodec/magicyuv.c | 33 +++++++++++++++++----------------
> 1 file changed, 17 insertions(+), 16 deletions(-)
>
> diff --git a/libavcodec/magicyuv.c b/libavcodec/magicyuv.c
> index 310ead4..8dec6bb 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 gbit;
I wonder whether we should call it 'bc' like the others
> 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(&gbit, 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(&gbit) >= 8) {
> + int b = bitstream_read(&gbit, 4);
> + int x = bitstream_read(&gbit, 4);
> + int l = bitstream_read(&gbit, b) + 1;
>
> for (k = 0; k < l; k++)
> if (j + k < 256)
> --
should be fine either way
--
Vittorio
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel