hevc: fix size condition in ptl parsing
authorHendrik Leppkes <h.leppkes@gmail.com>
Fri, 6 May 2016 17:09:04 +0000 (19:09 +0200)
committerDerek Buitenhuis <derek.buitenhuis@gmail.com>
Sat, 7 May 2016 20:10:59 +0000 (21:10 +0100)
When only one sublayer is present, no information is coded. Only when at least two
are present, all 8 sublayers are written.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
libavcodec/hevc_ps.c

index ce3f3dfa8e9f3d1a2f8b652869a0a58c4784898f..83f2ec2bacb1b00f3c26dd1d336f5d5bad8af319 100644 (file)
@@ -280,7 +280,7 @@ static int parse_ptl(GetBitContext *gb, AVCodecContext *avctx,
 {
     int i;
     if (decode_profile_tier_level(gb, avctx, &ptl->general_ptl) < 0 ||
-        get_bits_left(gb) < 8 + 8*2) {
+        get_bits_left(gb) < 8 + (8*2 * (max_num_sub_layers - 1 > 0))) {
         av_log(avctx, AV_LOG_ERROR, "PTL information too short\n");
         return -1;
     }