Hi,

On Sun, Jan 8, 2012 at 6:52 PM, Laurentiu Ion
<[email protected]> wrote:
> -#define kmvc_init_getbits(bb, src)  bb.bits = 7; bb.bitbuf = *src++;
> +#define kmvc_init_getbits(bb)  bb.bits = 7; bb.bitbuf = 
> bytestream2_get_byte(&g);
>
> -#define kmvc_getbit(bb, src, src_end, res) {\
> +#define kmvc_getbit(bb, res) {\
>     res = 0; \
>     if (bb.bitbuf & (1 << bb.bits)) res = 1; \
>     bb.bits--; \
>     if(bb.bits == -1) { \
> -        if (src >= src_end) { \
> +        if (!bytestream2_get_bytes_left(&g)) { \
>             av_log(ctx->avctx, AV_LOG_ERROR, "Data overrun\n"); \
>             return AVERROR_INVALIDDATA; \
>         } \
> -        bb.bitbuf = *src++; \
> +        bb.bitbuf = bytestream2_get_byte(&g); \
>         bb.bits = 7; \
>     } \
>  }

You're making the macro not self-contained here, I think 'g' should be
an argument to both functions.

Also, Kostya, can't we emulate this kind of bit reading behaviour by
doing manual CACHE_UPDATE() calls and then using the regular
bitreader?

Rest is probably OK.

Ronald
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to