On Mon, Dec 12, 2011 at 03:26:33PM +0000, Måns Rullgård wrote: > Måns Rullgård <[email protected]> writes: > > > Luca Barbato <[email protected]> writes: > > > >> On 12/12/11 15:54, Gaurav Narula wrote: > >>> --- > >>> libavcodec/kmvc.c | 82 > >>> ++++++++++++++++++++++++++++++++++++++++++---------- > >>> 1 files changed, 66 insertions(+), 16 deletions(-) > >>> > >>> diff --git a/libavcodec/kmvc.c b/libavcodec/kmvc.c > >>> index 07ca194..7f63699 100644 > >>> --- a/libavcodec/kmvc.c > >>> +++ b/libavcodec/kmvc.c > >>> @@ -57,17 +57,21 @@ typedef struct BitBuf { > >>> > >>> #define kmvc_init_getbits(bb, src) bb.bits = 7; bb.bitbuf = *src++; > >>> > >>> -#define kmvc_getbit(bb, src, res) {\ > >>> +#define kmvc_getbit(bb, src, src_end, res) {\ > >>> res = 0; \ > >>> if (bb.bitbuf& (1<< bb.bits)) res = 1; \ > >>> bb.bits--; \ > >>> if(bb.bits == -1) { \ > >>> + if (src>= src_end) { \ > >>> + av_log(ctx->avctx, AV_LOG_ERROR, "Data overrun\n"); \ > >>> + return AVERROR_INVALIDDATA; \ > >>> + } \ > >>> bb.bitbuf = *src++; \ > >>> bb.bits = 7; \ > >>> } \ > >>> } > >> > >> res == 1 is an error condition that always triggers a return, am I > >> wrong? > > > > res is the bit that was read. > > > > The real question is why this decoder isn't using get_bits.h. > > Never mind, I see the WTF-ness of this bitstream now.
It's bytestream with some fraction of bits. _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
