summaryrefslogtreecommitdiff
path: root/sys/va/gstvah264dec.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/va/gstvah264dec.c')
-rw-r--r--sys/va/gstvah264dec.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/sys/va/gstvah264dec.c b/sys/va/gstvah264dec.c
index 4d342a880..aba8bab70 100644
--- a/sys/va/gstvah264dec.c
+++ b/sys/va/gstvah264dec.c
@@ -602,13 +602,21 @@ _get_profile (GstVaH264Dec * self, const GstH264SPS * sps, gint max_dpb_size)
switch (sps->profile_idc) {
case GST_H264_PROFILE_BASELINE:
- /* A.2 compliant */
+ {
+ GstH264DecoderCompliance compliance = GST_H264_DECODER_COMPLIANCE_STRICT;
+
+ g_object_get (G_OBJECT (self), "compliance", &compliance, NULL);
+
+ /* A.2 compliant or not strict */
if (sps->constraint_set0_flag || sps->constraint_set1_flag
- || sps->constraint_set2_flag) {
+ || sps->constraint_set2_flag
+ || compliance != GST_H264_DECODER_COMPLIANCE_STRICT) {
profiles[i++] = VAProfileH264ConstrainedBaseline;
profiles[i++] = VAProfileH264Main;
}
+
break;
+ }
case GST_H264_PROFILE_EXTENDED:
if (sps->constraint_set1_flag) { /* A.2.2 (main profile) */
profiles[i++] = VAProfileH264Main;