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
This commit is contained in:
U. Artie Eoff 2018-04-04 17:30:21 -08:00 committed by Sreerenj Balachandran
parent fc989ce544
commit 275d754156
3 changed files with 6 additions and 6 deletions

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

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

View 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);