*out_data = data;
*out_size = size;
- if ((res = init_get_bits8(&gb, data, size)) < 0)
+ if (!size || (res = init_get_bits8(&gb, data, size)) < 0)
return size; // parsers can't return errors
get_bits(&gb, 2); // frame marker
profile = get_bits1(&gb);
profile |= get_bits1(&gb) << 1;
if (profile == 3) profile += get_bits1(&gb);
+ if (profile > 3)
+ return size;
+
+ avctx->profile = profile;
if (get_bits1(&gb)) {
keyframe = 0;
return size;
}
-AVCodecParser ff_vp9_parser = {
+const AVCodecParser ff_vp9_parser = {
.codec_ids = { AV_CODEC_ID_VP9 },
.parser_parse = parse,
};