From: He Junyan Date: Fri, 21 Jun 2019 16:44:25 +0000 (+0800) Subject: plugin: encode: Add H265 main-444 profile. X-Git-Tag: 1.19.3~503^2~301 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=25422b6766ceb18778067f34e6d6b19da74bed8d;p=platform%2Fupstream%2Fgstreamer.git plugin: encode: Add H265 main-444 profile. Expose the main-444 profile to h265enc caps, when the upstream chooses to use VUYA as input, we choose main 4:4:4 profile to encode the frames. --- diff --git a/gst-libs/gst/vaapi/gstvaapiencoder.c b/gst-libs/gst/vaapi/gstvaapiencoder.c index 690caf7..771a82b 100644 --- a/gst-libs/gst/vaapi/gstvaapiencoder.c +++ b/gst-libs/gst/vaapi/gstvaapiencoder.c @@ -677,7 +677,8 @@ is_chroma_type_supported (GstVaapiEncoder * encoder) if (cip->chroma_type != GST_VAAPI_CHROMA_TYPE_YUV420 && cip->chroma_type != GST_VAAPI_CHROMA_TYPE_YUV422 && - cip->chroma_type != GST_VAAPI_CHROMA_TYPE_YUV420_10BPP) + cip->chroma_type != GST_VAAPI_CHROMA_TYPE_YUV420_10BPP && + cip->chroma_type != GST_VAAPI_CHROMA_TYPE_YUV444) goto unsupported; if (!get_config_attribute (encoder, VAConfigAttribRTFormat, &format)) diff --git a/gst-libs/gst/vaapi/gstvaapiencoder_h265.c b/gst-libs/gst/vaapi/gstvaapiencoder_h265.c index 9914237..8f5cd91 100644 --- a/gst-libs/gst/vaapi/gstvaapiencoder_h265.c +++ b/gst-libs/gst/vaapi/gstvaapiencoder_h265.c @@ -1082,6 +1082,8 @@ ensure_profile (GstVaapiEncoderH265 * encoder) if (format == GST_VIDEO_FORMAT_P010_10LE) profile = GST_VAAPI_PROFILE_H265_MAIN10; + else if (format == GST_VIDEO_FORMAT_VUYA) + profile = GST_VAAPI_PROFILE_H265_MAIN_444; encoder->profile = profile; encoder->profile_idc = gst_vaapi_utils_h265_get_profile_idc (profile); diff --git a/gst-libs/gst/vaapi/gstvaapiutils_h265.c b/gst-libs/gst/vaapi/gstvaapiutils_h265.c index 5b3bef1..2c078e8 100644 --- a/gst-libs/gst/vaapi/gstvaapiutils_h265.c +++ b/gst-libs/gst/vaapi/gstvaapiutils_h265.c @@ -40,6 +40,7 @@ static const struct map gst_vaapi_h265_profile_map[] = { { GST_VAAPI_PROFILE_H265_MAIN, "main" }, { GST_VAAPI_PROFILE_H265_MAIN10, "main-10" }, { GST_VAAPI_PROFILE_H265_MAIN_STILL_PICTURE, "main-still-picture" }, + { GST_VAAPI_PROFILE_H265_MAIN_444, "main-444" }, { 0, NULL } /* *INDENT-ON* */ }; diff --git a/gst/vaapi/gstvaapiencode_h265.c b/gst/vaapi/gstvaapiencode_h265.c index a3325e6..67a319c 100644 --- a/gst/vaapi/gstvaapiencode_h265.c +++ b/gst/vaapi/gstvaapiencode_h265.c @@ -65,7 +65,7 @@ static const char gst_vaapiencode_h265_sink_caps_str[] = /* *INDENT-OFF* */ static const char gst_vaapiencode_h265_src_caps_str[] = GST_CODEC_CAPS ", " - "profile = (string) { main, main-10 }"; + "profile = (string) { main, main-10, main-444 }"; /* *INDENT-ON* */ /* *INDENT-OFF* */