gst-omx: hanle some extra profile about avc.

Signed-off-by: sw.multimedia <sw.multimedia@starfivetech.com>

(cherry picked from http://192.168.110.45/jh7100/buildroot/-/commit/39f08c81f5a05ad0b06a95c4a3599602641c07af)
This commit is contained in:
sw.multimedia
2022-05-06 18:35:00 +08:00
committed by Andy Hu
parent 995214a89e
commit 951fcfe90a
@@ -0,0 +1,38 @@
--- a/omx/gstomxh264utils.c
+++ b/omx/gstomxh264utils.c
@@ -54,6 +54,19 @@
#endif
};
+#ifdef USE_OMX_TARGET_STARFIVE
+static const H264ProfileMapping h264_ext_profiles[] = {
+ {"progressive-high",
+ (OMX_VIDEO_AVCPROFILETYPE) OMX_VIDEO_AVCProfileHigh},
+ {"constrained-high",
+ (OMX_VIDEO_AVCPROFILETYPE) OMX_VIDEO_AVCProfileHigh},
+ {"high-10-intra",
+ (OMX_VIDEO_AVCPROFILETYPE) OMX_VIDEO_AVCProfileHigh10},
+ {"high-4:2:2-intra",
+ (OMX_VIDEO_AVCPROFILETYPE) OMX_VIDEO_AVCProfileHigh422},
+};
+#endif
+
OMX_VIDEO_AVCPROFILETYPE
gst_omx_h264_utils_get_profile_from_str (const gchar * profile)
{
@@ -63,6 +76,15 @@
if (g_str_equal (profile, h264_profiles[i].profile))
return h264_profiles[i].e;
}
+
+#ifdef USE_OMX_TARGET_STARFIVE
+ for (i = 0; i < G_N_ELEMENTS (h264_ext_profiles); i++) {
+ if (g_str_equal (profile, h264_ext_profiles[i].profile)) {
+ GST_INFO("extra profile: %s ==> avc profie type: %d", profile, h264_ext_profiles[i].e);
+ return h264_ext_profiles[i].e;
+ }
+ }
+#endif
return OMX_VIDEO_AVCProfileMax;
}