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

Reply via email to