Re: [libav-devel] [PATCH 1/2] magicyuv: Convert to the new bitstream reader
On Tue, Jan 24, 2017 at 11:40:10AM +0100, Vittorio Giovara wrote: > On Wed, Jan 11, 2017 at 10:44 PM, Diego Biurrunwrote: > > --- a/libavcodec/magicyuv.c > > +++ b/libavcodec/magicyuv.c > > @@ -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 Why not, I'll push with that amended. Diego ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [PATCH 1/2] magicyuv: Convert to the new bitstream reader
On Wed, Jan 11, 2017 at 10:44 PM, Diego Biurrunwrote: > --- > > 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 > #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(, s->buf + s->slices[i][j].start, > - s->slices[i][j].size); > +int ret = bitstream_init8(, s->buf + s->slices[i][j].start, > + s->slices[i][j].size); > > if (ret < 0) > return ret; > > -flags = get_bits(, 8); > -pred = get_bits(, 8); > +flags = bitstream_read(, 8); > +pred = bitstream_read(, 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(, 8); > +dst[x] = bitstream_read(, 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() <= 0) > +if (bitstream_bits_left() <= 0) > return AVERROR_INVALIDDATA; > > -pix = get_vlc2(, s->vlc[i].table, s->vlc[i].bits, 3); > +pix = bitstream_read_vlc(, 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(, avpkt->data + bytestream2_tell(), > table_size); > +ret = bitstream_init8(, avpkt->data + bytestream2_tell(), > table_size); > if (ret < 0) > return ret; > > memset(s->len, 0, sizeof(s->len)); > j = i = 0; > -while (get_bits_left() >= 8) { > -int b = get_bits(, 4); > -int x = get_bits(, 4); > -int l = get_bitsz(, b) + 1; > +while (bitstream_bits_left() >= 8) { > +int b = bitstream_read(, 4); > +int x = bitstream_read(, 4); > +int l = bitstream_read(, b) + 1; > > for (k = 0; k < l; k++) > if (j + k < 256) > -- should be fine either way -- Vittorio ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel
Re: [libav-devel] [PATCH 1/2] magicyuv: Convert to the new bitstream reader
On Tue, Jun 21, 2016 at 8:42 AM, Diego Biurrunwrote: > --- > 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 > #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(, s->buf + s->slices[i][j].start, > - s->slices[i][j].size); > +int ret = bitstream_init8(, s->buf + s->slices[i][j].start, > + s->slices[i][j].size); > > if (ret < 0) > return ret; > > -flags = get_bits(, 8); > -pred = get_bits(, 8); > +flags = bitstream_read(, 8); > +pred = bitstream_read(, 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(, 8); > +dst[x] = bitstream_read(, 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() <= 0) > +if (bitstream_bits_left() <= 0) > return AVERROR_INVALIDDATA; > > -pix = get_vlc2(, s->vlc[i].table, s->vlc[i].bits, 3); > +pix = bitstream_read_vlc(, 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; > 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(, avpkt->data + bytestream2_tell(), > table_size); > +ret = bitstream_init8(, avpkt->data + bytestream2_tell(), > table_size); > if (ret < 0) > return ret; > > memset(s->len, 0, sizeof(s->len)); > j = i = 0; > -while (get_bits_left() >= 8) { > -int b = get_bits(, 4); > -int x = get_bits(, 4); > -int l = get_bitsz(, b) + 1; > +while (bitstream_bits_left() >= 8) { > +int b = bitstream_read(, 4); > +int x = bitstream_read(, 4); > +int l = bitstream_read(, b) + 1; > > for (k = 0; k < l; k++) > if (j + k < 256) > -- lgtm -- Vittorio ___ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel