diff --git a/configure.ac b/configure.ac index f9520e34d2..3b5c4fbe3e 100644 --- a/configure.ac +++ b/configure.ac @@ -2065,35 +2065,47 @@ AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [ dnl check for intel mediasdk translit(dnm, m, l) AM_CONDITIONAL(USE_MSDK, true) AG_GST_CHECK_FEATURE(MSDK, [Intel MediaSDK], msdk, [ - AC_ARG_WITH([msdk-prefix], - AS_HELP_STRING([--with-msdk-prefix], - [Use the provided prefix for detecting the Intel MediaSDK]), - [AS_IF([test "x$with_msdk_prefix" != "x"], - [MSDK_PREFIX="$with_msdk_prefix"])], - [AS_IF([test "x$MFX_HOME" != "x"], - [MSDK_PREFIX="$MFX_HOME"], - [MSDK_PREFIX="/opt/intel/media"])]) - MSDK_CFLAGS="-I$MSDK_PREFIX/include" - MSDK_LIBS="-L$MSDK_PREFIX/lib/lin_x64 -lmfx -ldl" - AC_SUBST(MSDK_CFLAGS) - AC_SUBST(MSDK_LIBS) + PKG_CHECK_MODULES(LIBMFX, libmfx, + [ + AC_DEFINE(HAVE_LIBMFX, 1, [Define if mfx_dispatcher is available]) + HAVE_MSDK="yes" + ], [ + AC_ARG_WITH([msdk-prefix], + AS_HELP_STRING([--with-msdk-prefix], + [Use the provided prefix for detecting the Intel MediaSDK]), + [AS_IF([test "x$with_msdk_prefix" != "x"], + [MSDK_PREFIX="$with_msdk_prefix"])], + [AS_IF([test "x$MFX_HOME" != "x"], + [MSDK_PREFIX="$MFX_HOME"], + [MSDK_PREFIX="/opt/intel/media"])]) + MSDK_CFLAGS="-I$MSDK_PREFIX/include" + MSDK_LIBS="-L$MSDK_PREFIX/lib/lin_x64 -lmfx -ldl" + AC_SUBST(MSDK_CFLAGS) + AC_SUBST(MSDK_LIBS) - save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$MSDK_CFLAGS $save_CPPFLAGS" - AC_CHECK_HEADER(mfxdefs.h, HAVE_MFXDEFS_H="yes", HAVE_MFXDEFS_H="no") - CPPFLAGS="$save_CPPFLAGS" + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$MSDK_CFLAGS $save_CPPFLAGS" + AC_CHECK_HEADER(mfxdefs.h, HAVE_MFXDEFS_H="yes", HAVE_MFXDEFS_H="no") + CPPFLAGS="$save_CPPFLAGS" - save_LIBS="$LIBS" - LIBS="$MSDK_LIBS $LIBS" - AC_LANG_PUSH([C++]) - AC_CHECK_LIB(mfx,MFXInit,HAVE_MFX_LIB="yes",HAVE_MFX_LIB="no") - AC_LANG_POP([C++]) - LIBS="$save_LIBS" + save_LIBS="$LIBS" + LIBS="$MSDK_LIBS $LIBS" + AC_LANG_PUSH([C++]) + AC_CHECK_LIB(mfx,MFXInit,HAVE_MFX_LIB="yes",HAVE_MFX_LIB="no") + AC_LANG_POP([C++]) + LIBS="$save_LIBS" + + if test "x$HAVE_MFXDEFS_H" = "xyes" \ + -a "x$HAVE_MFX_LIB" = "xyes"; then + HAVE_MSDK="yes" + else + HAVE_MSDK="no" + fi + ]) PKG_CHECK_MODULES(LIBVA_DRM, libva-drm, HAVE_LIBVA_DRM="yes", HAVE_LIBVA_DRM="no") - if test "x$HAVE_MFXDEFS_H" = "xyes" \ - -a "x$HAVE_MFX_LIB" = "xyes" \ + if test "x$HAVE_MSDK" = "xyes" \ -a "x$HAVE_LIBVA_DRM" = "xyes"; then HAVE_MSDK="yes" else diff --git a/sys/msdk/Makefile.am b/sys/msdk/Makefile.am index c0c44e9b11..0af445f545 100644 --- a/sys/msdk/Makefile.am +++ b/sys/msdk/Makefile.am @@ -33,13 +33,15 @@ libgstmsdk_la_CFLAGS = \ $(GST_CFLAGS) \ $(GST_PBUTILS_CFLAGS) \ $(GST_VIDEO_CFLAGS) \ - $(MSDK_CFLAGS) + $(MSDK_CFLAGS) \ + $(LIBMFX_CFLAGS) libgstmsdk_la_LIBADD = \ $(GST_LIBS) \ $(GST_PBUTILS_LIBS) \ $(GST_VIDEO_LIBS) \ - $(MSDK_LIBS) + $(MSDK_LIBS) \ + $(LIBMFX_LIBS) if USE_MSDK_LIBVA libgstmsdk_la_SOURCES += \ diff --git a/sys/msdk/gstmsdkh265dec.c b/sys/msdk/gstmsdkh265dec.c index 8bf0a7a4a6..fd1ae753f6 100644 --- a/sys/msdk/gstmsdkh265dec.c +++ b/sys/msdk/gstmsdkh265dec.c @@ -32,7 +32,12 @@ #ifdef HAVE_CONFIG_H # include #endif -#include + +#ifdef HAVE_LIBMFX +# include +#else +# include "mfxplugin.h" +#endif #include "gstmsdkh265dec.h" diff --git a/sys/msdk/gstmsdkh265enc.c b/sys/msdk/gstmsdkh265enc.c index 3fb536a9f0..f7d4620bf4 100644 --- a/sys/msdk/gstmsdkh265enc.c +++ b/sys/msdk/gstmsdkh265enc.c @@ -32,7 +32,12 @@ #ifdef HAVE_CONFIG_H # include #endif -#include + +#ifdef HAVE_LIBMFX +# include +#else +# include "mfxplugin.h" +#endif #include "gstmsdkh265enc.h" diff --git a/sys/msdk/gstmsdkmjpegdec.c b/sys/msdk/gstmsdkmjpegdec.c index 3323450855..a76f31fa5d 100644 --- a/sys/msdk/gstmsdkmjpegdec.c +++ b/sys/msdk/gstmsdkmjpegdec.c @@ -32,8 +32,14 @@ #ifdef HAVE_CONFIG_H # include #endif -#include -#include + +#ifdef HAVE_LIBMFX +# include +# include +#else +# include "mfxstructures.h" +# include "mfxjpeg.h" +#endif #include "gstmsdkmjpegdec.h" diff --git a/sys/msdk/gstmsdkmjpegenc.c b/sys/msdk/gstmsdkmjpegenc.c index ebee0e5069..00230f8bf5 100644 --- a/sys/msdk/gstmsdkmjpegenc.c +++ b/sys/msdk/gstmsdkmjpegenc.c @@ -32,8 +32,14 @@ #ifdef HAVE_CONFIG_H # include #endif -#include -#include + +#ifdef HAVE_LIBMFX +# include +# include +#else +# include "mfxstructures.h" +# include "mfxjpeg.h" +#endif #include "gstmsdkmjpegenc.h" diff --git a/sys/msdk/gstmsdkvp8enc.c b/sys/msdk/gstmsdkvp8enc.c index 069b466e51..9e269ad500 100644 --- a/sys/msdk/gstmsdkvp8enc.c +++ b/sys/msdk/gstmsdkvp8enc.c @@ -32,8 +32,14 @@ #ifdef HAVE_CONFIG_H # include #endif -#include -#include + +#ifdef HAVE_LIBMFX +# include +# include +#else +# include "mfxplugin.h" +# include "mfxvp8.h" +#endif #include "gstmsdkvp8enc.h" diff --git a/sys/msdk/msdk.h b/sys/msdk/msdk.h index 346dd853d9..6a30eec441 100644 --- a/sys/msdk/msdk.h +++ b/sys/msdk/msdk.h @@ -32,11 +32,20 @@ #ifndef __MSDK_H__ #define __MSDK_H__ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include #include -#include "mfxvideo.h" + +#ifdef HAVE_LIBMFX +# include +#else +# include "mfxvideo.h" +#endif G_BEGIN_DECLS