vaapih264enc: accept baseline as constrained baseline compatible

This commit is contained in:
Víctor Manuel Jáquez Leal 2020-01-17 16:19:52 +01:00
parent 9f627ef234
commit 73159cdc5d
2 changed files with 10 additions and 0 deletions

View file

@ -295,6 +295,12 @@ gst_vaapiencode_h264_set_config (GstVaapiEncode * base_encode)
if (profile == GST_VAAPI_PROFILE_UNKNOWN) if (profile == GST_VAAPI_PROFILE_UNKNOWN)
goto fail; goto fail;
/* if allwed caps request baseline (which is deprecated), the
* encoder will try with constrained baseline which is
* compatible. */
if (profile == GST_VAAPI_PROFILE_H264_BASELINE)
profile = GST_VAAPI_PROFILE_H264_CONSTRAINED_BASELINE;
tmp_caps = gst_caps_from_string (GST_CODEC_CAPS); tmp_caps = gst_caps_from_string (GST_CODEC_CAPS);
gst_caps_set_simple (tmp_caps, "profile", G_TYPE_STRING, gst_caps_set_simple (tmp_caps, "profile", G_TYPE_STRING,
gst_vaapi_profile_get_name (profile), NULL); gst_vaapi_profile_get_name (profile), NULL);
@ -381,6 +387,8 @@ retry:
if (!gst_caps_can_intersect (allowed_caps, tmp_caps)) { if (!gst_caps_can_intersect (allowed_caps, tmp_caps)) {
if (profile == GST_VAAPI_PROFILE_H264_CONSTRAINED_BASELINE) { if (profile == GST_VAAPI_PROFILE_H264_CONSTRAINED_BASELINE) {
profile = GST_VAAPI_PROFILE_H264_BASELINE; profile = GST_VAAPI_PROFILE_H264_BASELINE;
GST_INFO ("user might requested baseline profile, "
"trying constrained-baseline instead");
goto retry; goto retry;
} }
} else { } else {

View file

@ -1043,6 +1043,8 @@ gst_vaapi_h26x_encoder_get_profiles_from_caps (GstCaps * caps,
const gchar *str = g_value_get_string (value); const gchar *str = g_value_get_string (value);
if (str) { if (str) {
profile = func (str); profile = func (str);
if (profile == GST_VAAPI_PROFILE_H264_BASELINE)
profile = GST_VAAPI_PROFILE_H264_CONSTRAINED_BASELINE;
if (profile != GST_VAAPI_PROFILE_UNKNOWN) if (profile != GST_VAAPI_PROFILE_UNKNOWN)
g_array_append_val (profiles, profile); g_array_append_val (profiles, profile);
} }