From: Guillaume Desmottes Date: Tue, 6 Mar 2018 14:18:46 +0000 (+0100) Subject: h264parse: add constrained and progressive profiles X-Git-Tag: 1.19.3~507^2~4235 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5a5bf4b3e302d8f3d7541c26bb7ceff4f11c1628;p=platform%2Fupstream%2Fgstreamer.git h264parse: add constrained and progressive profiles Those profiles have been added in the version 2012-01 and 2011-06 of the AVC spec. https://bugzilla.gnome.org/show_bug.cgi?id=794127 --- diff --git a/gst-libs/gst/codecparsers/gsth264parser.h b/gst-libs/gst/codecparsers/gsth264parser.h index ffd609f..1914470 100644 --- a/gst-libs/gst/codecparsers/gsth264parser.h +++ b/gst-libs/gst/codecparsers/gsth264parser.h @@ -78,9 +78,12 @@ G_BEGIN_DECLS * @GST_H264_PROFILE_BASELINE: Baseline profile (A.2.1) * @GST_H264_PROFILE_MAIN: Main profile (A.2.2) * @GST_H264_PROFILE_EXTENDED: Extended profile (A.2.3) - * @GST_H264_PROFILE_HIGH: High profile (A.2.4) + * @GST_H264_PROFILE_HIGH: High profile (A.2.4), + * or Progressive High profile (A.2.4.1), or Constrained High profile (A.2.4.2) + * depending on constraint_set4_flag and constraint_set5_flag * @GST_H264_PROFILE_HIGH10: High 10 profile (A.2.5) or High 10 Intra - * profile (A.2.8), depending on constraint_set3_flag + * profile (A.2.8), or Progressive High 10 profile (A.2.5.1) depending on + * constraint_set3_flag and constraint_set4_flag * @GST_H264_PROFILE_HIGH_422: High 4:2:2 profile (A.2.6) or High * 4:2:2 Intra profile (A.2.9), depending on constraint_set3_flag * @GST_H264_PROFILE_HIGH_444: High 4:4:4 Predictive profile (A.2.7) diff --git a/gst/videoparsers/gsth264parse.c b/gst/videoparsers/gsth264parse.c index 7751ea2..903d204 100644 --- a/gst/videoparsers/gsth264parse.c +++ b/gst/videoparsers/gsth264parse.c @@ -1629,11 +1629,19 @@ get_profile_string (GstH264SPS * sps) profile = "extended"; break; case 100: - profile = "high"; + if (sps->constraint_set4_flag) { + if (sps->constraint_set5_flag) + profile = "constrained-high"; + else + profile = "progressive-high"; + } else + profile = "high"; break; case 110: if (sps->constraint_set3_flag) profile = "high-10-intra"; + else if (sps->constraint_set4_flag) + profile = "progressive-high-10"; else profile = "high-10"; break;