msdk: fix plugin load on implementations with only HW support
authorU. Artie Eoff <ullysses.a.eoff@intel.com>
Thu, 5 Apr 2018 01:30:21 +0000 (17:30 -0800)
committerSreerenj Balachandran <sreerenj.balachandran@intel.com>
Thu, 5 Apr 2018 01:31:14 +0000 (17:31 -0800)
We can't assume that MSDK always supports SW implementation
on all platforms.  Thus, msdk_is_available should check for
ANY implementation.

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

sys/msdk/gstmsdkcontext.c
sys/msdk/msdk.c
sys/msdk/msdk.h

index 883fdb5..a952370 100644 (file)
@@ -183,7 +183,8 @@ gst_msdk_context_open (GstMsdkContext * context, gboolean hardware,
 
   priv->job_type = job_type;
   priv->hardware = hardware;
-  priv->session = msdk_open_session (hardware);
+  priv->session =
+      msdk_open_session (hardware ? MFX_IMPL_HARDWARE_ANY : MFX_IMPL_SOFTWARE);
   if (!priv->session)
     goto failed;
 
index e2c80bf..9187648 100644 (file)
@@ -147,7 +147,7 @@ msdk_close_session (mfxSession session)
 }
 
 mfxSession
-msdk_open_session (gboolean hardware)
+msdk_open_session (mfxIMPL impl)
 {
   mfxSession session = NULL;
   mfxVersion version = { {1, 1}
@@ -160,8 +160,7 @@ msdk_open_session (gboolean hardware)
     "HARDWARE3", "HARDWARE4", "RUNTIME"
   };
 
-  status = MFXInit (hardware ? MFX_IMPL_HARDWARE_ANY : MFX_IMPL_SOFTWARE,
-      &version, &session);
+  status = MFXInit (impl, &version, &session);
   if (status != MFX_ERR_NONE) {
     GST_ERROR ("Intel Media SDK not available (%s)",
         msdk_status_to_string (status));
@@ -195,7 +194,7 @@ failed:
 gboolean
 msdk_is_available (void)
 {
-  mfxSession session = msdk_open_session (FALSE);
+  mfxSession session = msdk_open_session (MFX_IMPL_AUTO_ANY);
   if (!session) {
     return FALSE;
   }
index a764f2c..d1c874c 100644 (file)
@@ -49,7 +49,7 @@
 
 G_BEGIN_DECLS
 
-mfxSession msdk_open_session (gboolean hardware);
+mfxSession msdk_open_session (mfxIMPL impl);
 void msdk_close_session (mfxSession session);
 
 gboolean msdk_is_available (void);