avcodec/vp9_parser: set profile in AVCodecContext
authorJames Almer <jamrial@gmail.com>
Thu, 25 Oct 2018 23:45:45 +0000 (20:45 -0300)
committerJames Almer <jamrial@gmail.com>
Thu, 25 Oct 2018 23:45:45 +0000 (20:45 -0300)
Signed-off-by: James Almer <jamrial@gmail.com>
libavcodec/vp9_parser.c

index 9531f34..c957a75 100644 (file)
@@ -36,12 +36,16 @@ static int parse(AVCodecParserContext *ctx,
     *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;