X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Ftak_parser.c;h=4f2149ae115064a41c4f4f38aabac307f38126a2;hb=9b964690e39928af616d88b3e8ab47a7db14a538;hp=5d8460c90acc6beec606a23634abacf7daaabfd9;hpb=0bdcc27d9598254e79a80f1e016227778b428dbb;p=ffmpeg diff --git a/libavcodec/tak_parser.c b/libavcodec/tak_parser.c index 5d8460c90ac..4f2149ae115 100644 --- a/libavcodec/tak_parser.c +++ b/libavcodec/tak_parser.c @@ -43,10 +43,12 @@ static int tak_parse(AVCodecParserContext *s, AVCodecContext *avctx, GetBitContext gb; int consumed = 0; int needed = buf_size ? TAK_MAX_FRAME_HEADER_BYTES : 8; + int ret; if (s->flags & PARSER_FLAG_COMPLETE_FRAMES) { TAKStreamInfo ti; - init_get_bits(&gb, buf, buf_size); + if ((ret = init_get_bits8(&gb, buf, buf_size)) < 0) + return ret; if (!ff_tak_decode_frame_header(avctx, &gb, &ti, 127)) s->duration = t->ti.last_frame_samples ? t->ti.last_frame_samples : t->ti.frame_samples; @@ -73,8 +75,9 @@ static int tak_parse(AVCodecParserContext *s, AVCodecContext *avctx, pc->buffer[ t->index + 1 ] == 0xA0) { TAKStreamInfo ti; - init_get_bits(&gb, pc->buffer + t->index, - 8 * (pc->index - t->index)); + if ((ret = init_get_bits8(&gb, pc->buffer + t->index, + pc->index - t->index)) < 0) + return ret; if (!ff_tak_decode_frame_header(avctx, &gb, pc->frame_start_found ? &ti : &t->ti, 127) && !ff_tak_check_crc(pc->buffer + t->index,