utils: h264: add more profiles.

Add extended profile (A.2.3), high 4:2:2 profile (A.2.6), high 4:2:2
profiles (A.2.7, A.2.10), scalable profiles (G.10.1.1, G.10.1.2) and
multiview profiles (H.10.1.1, H.10.1.2).

Document "Constrained Baseline" and "High 10" profiles.
This commit is contained in:
Gwenole Beauchesne 2013-12-10 11:13:01 +01:00
parent 3d510745c1
commit 416ab33e34
2 changed files with 75 additions and 3 deletions

View file

@ -85,11 +85,33 @@ typedef enum {
* @GST_VAAPI_PROFILE_H263_BASELINE:
* H.263 baseline profile
* @GST_VAAPI_PROFILE_H264_BASELINE:
* H.264 (MPEG-4 Part-10) baseline profile
* H.264 (MPEG-4 Part-10) baseline profile [A.2.1]
* @GST_VAAPI_PROFILE_H264_CONSTRAINED_BASELINE:
* H.264 (MPEG-4 Part-10) constrained baseline profile [A.2.1.1]
* @GST_VAAPI_PROFILE_H264_MAIN:
* H.264 (MPEG-4 Part-10) main profile
* H.264 (MPEG-4 Part-10) main profile [A.2.2]
* @GST_VAAPI_PROFILE_H264_EXTENDED:
* H.264 (MPEG-4 Part 10) extended profile [A.2.3]
* @GST_VAAPI_PROFILE_H264_HIGH:
* H.264 (MPEG-4 Part-10) high profile
* H.264 (MPEG-4 Part-10) high profile [A.2.4]
* @GST_VAAPI_PROFILE_H264_HIGH10:
* H.264 (MPEG-4 Part-10) high 10 profile [A.2.5], or high 10 intra
* profile [A.2.8], depending on constraint_set3_flag
* @GST_VAAPI_PROFILE_H264_HIGH_422:
* H.264 (MPEG-4 Part-10) high 4:2:2 profile [A.2.6], or high 4:2:2
* intra profile [A.2.9], depending on constraint_set3_flag
* @GST_VAAPI_PROFILE_H264_HIGH_444:
* H.264 (MPEG-4 Part-10) high 4:4:4 predictive profile [A.2.7], or
* high 4:4:4 intra profile [A.2.10], depending on constraint_set3_flag
* @GST_VAAPI_PROFILE_H264_SCALABLE_BASELINE:
* H.264 (MPEG-4 Part-10) scalable baseline profile [G.10.1.1]
* @GST_VAAPI_PROFILE_H264_SCALABLE_HIGH:
* H.264 (MPEG-4 Part-10) scalable high profile [G.10.1.2], or scalable
* high intra profile [G.10.1.3], depending on constraint_set3_flag
* @GST_VAAPI_PROFILE_H264_MULTIVIEW_HIGH:
* H.264 (MPEG-4 Part-10) multiview high profile [H.10.1.1]
* @GST_VAAPI_PROFILE_H264_STEREO_HIGH:
* H.264 (MPEG-4 Part-10) stereo high profile [H.10.1.2]
* @GST_VAAPI_PROFILE_VC1_SIMPLE:
* VC-1 simple profile
* @GST_VAAPI_PROFILE_VC1_MAIN:
@ -115,8 +137,16 @@ typedef enum {
GST_VAAPI_PROFILE_H264_CONSTRAINED_BASELINE =
GST_VAAPI_MAKE_PROFILE(H264,9),
GST_VAAPI_PROFILE_H264_MAIN = GST_VAAPI_MAKE_PROFILE(H264,2),
GST_VAAPI_PROFILE_H264_EXTENDED = GST_VAAPI_MAKE_PROFILE(H264,10),
GST_VAAPI_PROFILE_H264_HIGH = GST_VAAPI_MAKE_PROFILE(H264,3),
GST_VAAPI_PROFILE_H264_HIGH10 = GST_VAAPI_MAKE_PROFILE(H264,7),
GST_VAAPI_PROFILE_H264_HIGH_422 = GST_VAAPI_MAKE_PROFILE(H264,4),
GST_VAAPI_PROFILE_H264_HIGH_444 = GST_VAAPI_MAKE_PROFILE(H264,8),
GST_VAAPI_PROFILE_H264_SCALABLE_BASELINE =
GST_VAAPI_MAKE_PROFILE(H264,5),
GST_VAAPI_PROFILE_H264_SCALABLE_HIGH = GST_VAAPI_MAKE_PROFILE(H264,6),
GST_VAAPI_PROFILE_H264_MULTIVIEW_HIGH = GST_VAAPI_MAKE_PROFILE(H264,11),
GST_VAAPI_PROFILE_H264_STEREO_HIGH = GST_VAAPI_MAKE_PROFILE(H264,15),
GST_VAAPI_PROFILE_VC1_SIMPLE = GST_VAAPI_MAKE_PROFILE(VC1,1),
GST_VAAPI_PROFILE_VC1_MAIN = GST_VAAPI_MAKE_PROFILE(VC1,2),
GST_VAAPI_PROFILE_VC1_ADVANCED = GST_VAAPI_MAKE_PROFILE(VC1,3),

View file

@ -62,12 +62,33 @@ gst_vaapi_utils_h264_get_profile (guint8 profile_idc)
case GST_H264_PROFILE_MAIN:
profile = GST_VAAPI_PROFILE_H264_MAIN;
break;
case GST_H264_PROFILE_EXTENDED:
profile = GST_VAAPI_PROFILE_H264_EXTENDED;
break;
case GST_H264_PROFILE_HIGH:
profile = GST_VAAPI_PROFILE_H264_HIGH;
break;
case GST_H264_PROFILE_HIGH10:
profile = GST_VAAPI_PROFILE_H264_HIGH10;
break;
case GST_H264_PROFILE_HIGH_422:
profile = GST_VAAPI_PROFILE_H264_HIGH_422;
break;
case GST_H264_PROFILE_HIGH_444:
profile = GST_VAAPI_PROFILE_H264_HIGH_444;
break;
case GST_H264_PROFILE_SCALABLE_BASELINE:
profile = GST_VAAPI_PROFILE_H264_SCALABLE_BASELINE;
break;
case GST_H264_PROFILE_SCALABLE_HIGH:
profile = GST_VAAPI_PROFILE_H264_SCALABLE_HIGH;
break;
case GST_H264_PROFILE_MULTIVIEW_HIGH:
profile = GST_VAAPI_PROFILE_H264_MULTIVIEW_HIGH;
break;
case GST_H264_PROFILE_STEREO_HIGH:
profile = GST_VAAPI_PROFILE_H264_STEREO_HIGH;
break;
default:
g_assert (0 && "unsupported profile_idc value");
profile = GST_VAAPI_PROFILE_UNKNOWN;
@ -90,12 +111,33 @@ gst_vaapi_utils_h264_get_profile_idc (GstVaapiProfile profile)
case GST_VAAPI_PROFILE_H264_MAIN:
profile_idc = GST_H264_PROFILE_MAIN;
break;
case GST_VAAPI_PROFILE_H264_EXTENDED:
profile_idc = GST_H264_PROFILE_EXTENDED;
break;
case GST_VAAPI_PROFILE_H264_HIGH:
profile_idc = GST_H264_PROFILE_HIGH;
break;
case GST_VAAPI_PROFILE_H264_HIGH10:
profile_idc = GST_H264_PROFILE_HIGH10;
break;
case GST_VAAPI_PROFILE_H264_HIGH_422:
profile_idc = GST_H264_PROFILE_HIGH_422;
break;
case GST_VAAPI_PROFILE_H264_HIGH_444:
profile_idc = GST_H264_PROFILE_HIGH_444;
break;
case GST_VAAPI_PROFILE_H264_SCALABLE_BASELINE:
profile_idc = GST_H264_PROFILE_SCALABLE_BASELINE;
break;
case GST_VAAPI_PROFILE_H264_SCALABLE_HIGH:
profile_idc = GST_H264_PROFILE_SCALABLE_HIGH;
break;
case GST_VAAPI_PROFILE_H264_MULTIVIEW_HIGH:
profile_idc = GST_H264_PROFILE_MULTIVIEW_HIGH;
break;
case GST_VAAPI_PROFILE_H264_STEREO_HIGH:
profile_idc = GST_H264_PROFILE_STEREO_HIGH;
break;
default:
g_assert (0 && "unsupported GstVaapiProfile value");
profile_idc = 0;