lavc/svq3: Fail for media key encryption.
authorCarl Eugen Hoyos <cehoyos@ag.or.at>
Mon, 23 Jan 2017 12:39:56 +0000 (13:39 +0100)
committerCarl Eugen Hoyos <cehoyos@ag.or.at>
Tue, 24 Jan 2017 22:40:13 +0000 (23:40 +0100)
Tested-by: ami_stuff
Fixes a part of ticket #6094.

libavcodec/svq3.c

index e0747d5..5b99656 100644 (file)
@@ -1070,14 +1070,16 @@ static int svq3_decode_slice_header(AVCodecContext *avctx)
         av_log(s->avctx, AV_LOG_ERROR, "illegal slice type %u \n", slice_id);
         return -1;
     }
+    if (get_bits1(&s->gb_slice)) {
+        avpriv_report_missing_feature(s->avctx, "Media key encryption");
+        return AVERROR_PATCHWELCOME;
+    }
 
     s->slice_type = ff_h264_golomb_to_pict_type[slice_id];
 
     if ((header & 0x9F) == 2) {
-        i = (s->mb_num < 64) ? 6 : (1 + av_log2(s->mb_num - 1));
+        i = (s->mb_num < 64) ? 5 : av_log2(s->mb_num - 1);
         get_bits(&s->gb_slice, i);
-    } else {
-        skip_bits1(&s->gb_slice);
     }
 
     s->slice_num      = get_bits(&s->gb_slice, 8);