From f7f34f9f3f6c5d4e68ca1e2820fffd40533ad69c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Fri, 30 Nov 2012 11:37:37 +0100 Subject: [PATCH] wasapi: Integrate into the autotools build system Patch based on a patch by Fabrizio Ciavatta --- configure.ac | 48 ++++++++++++++++++++++++++++++++++++++++++ sys/Makefile.am | 8 ++++++- sys/wasapi/Makefile.am | 25 +++++++++++++++++----- 3 files changed, 75 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index 9b7eca3197..3ad92398aa 100644 --- a/configure.ac +++ b/configure.ac @@ -456,6 +456,54 @@ AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [ AC_SUBST(HAVE_DIRECTSOUND) ]) +dnl WASAPI +translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true) +AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [ + HAVE_WASAPI="no" + save_CFLAGS="$CFLAGS" + save_LDFLAGS="$LDFLAGS" + save_LIBS="$LIBS" + CFLAGS="$CFLAGS $DIRECTX_CFLAGS" + LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS" + LIBS="$LIBS -lole32 -lwinmm -lksuser" + AC_MSG_CHECKING(for WASAPI LDFLAGS) + AC_LINK_IFELSE([ +#include +#include +#include +#include + +int main () +{ + HRESULT hr = S_OK; + + hr = CoInitialize(NULL); + if (FAILED(hr)) { + printf("CoInitialize failed: hr = 0x%08x", hr); + return __LINE__; + } + + int result = 0; + // result = do_everything(argc, argv); + + CoUninitialize(); + return result; +} +], + [HAVE_WASAPI="yes"], + [HAVE_WASAPI="no"]) + AC_MSG_RESULT($HAVE_WASAPI) + CFLAGS=$save_CFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + + if test "x$HAVE_WASAPI" = "xyes"; then + WASAPI_LIBS="-lole32 -lwinmm -lksuser" + AC_SUBST(WASAPI_LIBS) + fi + AC_SUBST(HAVE_WASAPI) +]) + dnl Direct3D translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true) AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [ diff --git a/sys/Makefile.am b/sys/Makefile.am index c638c9de62..881d4d431f 100644 --- a/sys/Makefile.am +++ b/sys/Makefile.am @@ -28,6 +28,12 @@ endif # CDROM_DIR= # endif +if USE_WASAPI +WASAPI_DIR=wasapi +else +WASAPI_DIR= +endif + if USE_DIRECT3D D3DVIDEOSINK_DIR=d3dvideosink else @@ -148,7 +154,7 @@ else UVCH264_DIR= endif -SUBDIRS = $(ACM_DIR) $(ANDROID_MEDIA_DIR) $(APPLE_MEDIA_DIR) $(AVC_DIR) $(D3DVIDEOSINK_DIR) $(DECKLINK_DIR) $(DIRECTDRAW_DIR) $(DIRECTSOUND_DIR) $(DIRECTSHOW_DIR) $(DVB_DIR) $(FBDEV_DIR) $(LINSYS_DIR) $(OPENSLES_DIR) $(OSX_VIDEO_DIR) $(PVR_DIR) $(QT_DIR) $(SHM_DIR) $(UVCH264_DIR) $(VCD_DIR) $(VDPAU_DIR) $(WININET_DIR) $(WINSCREENCAP_DIR) +SUBDIRS = $(ACM_DIR) $(ANDROID_MEDIA_DIR) $(APPLE_MEDIA_DIR) $(AVC_DIR) $(D3DVIDEOSINK_DIR) $(DECKLINK_DIR) $(DIRECTDRAW_DIR) $(DIRECTSOUND_DIR) $(DIRECTSHOW_DIR) $(DVB_DIR) $(FBDEV_DIR) $(LINSYS_DIR) $(OPENSLES_DIR) $(OSX_VIDEO_DIR) $(PVR_DIR) $(QT_DIR) $(SHM_DIR) $(UVCH264_DIR) $(VCD_DIR) $(VDPAU_DIR) $(WININET_DIR) $(WINSCREENCAP_DIR) $(WASAPI_DIR) DIST_SUBDIRS = acmenc acmmp3dec androidmedia applemedia avc d3dvideosink decklink directdraw directsound dvb linsys fbdev dshowdecwrapper dshowsrcwrapper dshowvideosink \ opensles osxvideo pvr2d qtwrapper shm uvch264 vcd vdpau wasapi wininet winks winscreencap diff --git a/sys/wasapi/Makefile.am b/sys/wasapi/Makefile.am index 905817835b..49cbd1d6d5 100644 --- a/sys/wasapi/Makefile.am +++ b/sys/wasapi/Makefile.am @@ -1,5 +1,20 @@ -EXTRA_DIST = \ - gstwasapi.c \ - gstwasapisrc.c gstwasapisrc.h \ - gstwasapisink.c gstwasapisink.h \ - gstwasapiutil.c gstwasapiutil.h +plugin_LTLIBRARIES = libgstwasapi.la + +libgstwasapi_la_SOURCES = gstwasapi.c \ + gstwasapisrc.c \ + gstwasapisink.c \ + gstwasapiutil.c + +libgstwasapi_la_CFLAGS = $(GST_BASE_CFLAGS) $(GST_CFLAGS) -DCOBJMACROS=1 +libgstwasapi_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) \ + -lgstaudio-$(GST_MAJORMINOR) -lgstinterfaces-$(GST_MAJORMINOR) \ + $(WASAPI_LIBS) +libgstwasapi_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +if !GST_PLUGIN_BUILD_STATIC +libgstwasapi_la_LIBTOOLFLAGS = --tag=disable-static +endif + +noinst_HEADERS = gstwasapisrc.h \ + gstwasapisink.h \ + gstwasapiutil.h +