Re: [libav-devel] [PATCH 1/2] magicyuv: Convert to the new bitstream reader

2017-01-25 Thread Diego Biurrun
On Tue, Jan 24, 2017 at 11:40:10AM +0100, Vittorio Giovara wrote:
> On Wed, Jan 11, 2017 at 10:44 PM, Diego Biurrun  wrote:
> > --- 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

2017-01-24 Thread Vittorio Giovara
On Wed, Jan 11, 2017 at 10:44 PM, Diego Biurrun  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 
>  #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

2016-06-21 Thread Vittorio Giovara
On Tue, Jun 21, 2016 at 8:42 AM, Diego Biurrun  wrote:
> ---
>  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