msdk: fix plugin load on implementations with only HW support

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
diff --git a/sys/msdk/gstmsdkcontext.c b/sys/msdk/gstmsdkcontext.c
index 4447474..e455152 100644
--- a/sys/msdk/gstmsdkcontext.c
+++ b/sys/msdk/gstmsdkcontext.c
@@ -183,7 +183,8 @@
 
   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;
 
diff --git a/sys/msdk/msdk.c b/sys/msdk/msdk.c
index eaca746..a214508 100644
--- a/sys/msdk/msdk.c
+++ b/sys/msdk/msdk.c
@@ -147,7 +147,7 @@
 }
 
 mfxSession
-msdk_open_session (gboolean hardware)
+msdk_open_session (mfxIMPL impl)
 {
   mfxSession session = NULL;
   mfxVersion version = { {1, 1}
@@ -160,8 +160,7 @@
     "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 @@
 gboolean
 msdk_is_available (void)
 {
-  mfxSession session = msdk_open_session (FALSE);
+  mfxSession session = msdk_open_session (MFX_IMPL_AUTO_ANY);
   if (!session) {
     return FALSE;
   }
diff --git a/sys/msdk/msdk.h b/sys/msdk/msdk.h
index a764f2c..d1c874c 100644
--- a/sys/msdk/msdk.h
+++ b/sys/msdk/msdk.h
@@ -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);