omxh265: fix enum casting when using Allegro HEVC extensions
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Mon, 16 Oct 2017 11:26:38 +0000 (13:26 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Thu, 19 Oct 2017 14:19:16 +0000 (16:19 +0200)
Allegro's HEVC implementation defines a superset of the profiles and
enums from the Android implementation.
Properly cast to fix -Wenum-conversion warnings from clang.

https://bugzilla.gnome.org/show_bug.cgi?id=789057

omx/gstomxh265enc.c
omx/gstomxh265utils.c

index 3185ee3..614a163 100644 (file)
@@ -268,9 +268,18 @@ update_param_hevc (GstOMXH265Enc * self,
   }
 
   if (profile != OMX_VIDEO_HEVCProfileUnknown)
+#ifdef USE_OMX_TARGET_ZYNQ_USCALE_PLUS
+    param.eProfile = (OMX_ALG_VIDEO_HEVCPROFILETYPE) profile;
+#else
     param.eProfile = profile;
+#endif
+
   if (level != OMX_VIDEO_HEVCLevelUnknown)
+#ifdef USE_OMX_TARGET_ZYNQ_USCALE_PLUS
+    param.eLevel = (OMX_ALG_VIDEO_HEVCLEVELTYPE) level;
+#else
     param.eLevel = level;
+#endif
 
   /* GOP pattern */
 #ifdef USE_OMX_TARGET_ZYNQ_USCALE_PLUS
index 04c374e..e0045f8 100644 (file)
@@ -34,11 +34,11 @@ gst_omx_h265_utils_get_profile_from_str (const gchar * profile)
     return OMX_VIDEO_HEVCProfileMain10;
 #ifdef USE_OMX_TARGET_ZYNQ_USCALE_PLUS
   } else if (g_str_equal (profile, "main-still-picture")) {
-    return OMX_ALG_VIDEO_HEVCProfileMainStill;
+    return (OMX_VIDEO_HEVCPROFILETYPE) OMX_ALG_VIDEO_HEVCProfileMainStill;
   } else if (g_str_equal (profile, "main422")) {
-    return OMX_ALG_VIDEO_HEVCProfileMain422;
+    return (OMX_VIDEO_HEVCPROFILETYPE) OMX_ALG_VIDEO_HEVCProfileMain422;
   } else if (g_str_equal (profile, "main422-10")) {
-    return OMX_ALG_VIDEO_HEVCProfileMain422_10;
+    return (OMX_VIDEO_HEVCPROFILETYPE) OMX_ALG_VIDEO_HEVCProfileMain422_10;
 #endif
   }
   return OMX_VIDEO_HEVCProfileUnknown;