--- 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; }