hevc: set profile based on the profile compatibility flags if needed
authorHendrik Leppkes <h.leppkes@gmail.com>
Sat, 30 Jan 2016 16:44:34 +0000 (17:44 +0100)
committerHendrik Leppkes <h.leppkes@gmail.com>
Mon, 1 Feb 2016 09:34:23 +0000 (10:34 +0100)
This fixes retrieving a valid profile for many of the FATE conformance samples,
allowing them to be properly decoded by the HWAccel after adding a profile check.

libavcodec/hevc_ps.c

index 14f908e..64d6e2f 100644 (file)
@@ -257,8 +257,12 @@ static int decode_profile_tier_level(GetBitContext *gb, AVCodecContext *avctx,
     else
         av_log(avctx, AV_LOG_WARNING, "Unknown HEVC profile: %d\n", ptl->profile_idc);
 
-    for (i = 0; i < 32; i++)
+    for (i = 0; i < 32; i++) {
         ptl->profile_compatibility_flag[i] = get_bits1(gb);
+
+        if (ptl->profile_idc == 0 && i > 0 && ptl->profile_compatibility_flag[i])
+            ptl->profile_idc = i;
+    }
     ptl->progressive_source_flag    = get_bits1(gb);
     ptl->interlaced_source_flag     = get_bits1(gb);
     ptl->non_packed_constraint_flag = get_bits1(gb);