Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1577>
+++ /dev/null
-
-== Dependencies ==
-
- * CMake (tested with 3.9, likely >=3.0 will work)
-
- * GStreamer (1.8 or newer)
-
- * Microsoft SDK
- (http://www.microsoft.com/en-us/download/details.aspx?id=8279). Don't
- use any after 7.1, they don't include the samples. You can uncheck
- the .NET stuff.
-
- * Visual Studio, in theory any version will do; tested with 2013
- Express
- (http://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx).
-
-== Build ==
-
-First build the SDK "baseclasses" sample; they should have been
-installed in <SDK>/Samples/multimedia/directshow/baseclasses. Just
-open the SLN and build both Debug_MBCS and Release_MBCS.
-
-If you get a build error "ctype.h: no such file or directory", try
-retargetting the solution from the Project menu.
-
-Then go to sys/dshowsrcwrapper and use CMake to generate the project
-file for your chosen version of Visual Studio. There are two influential
-variables:
-
- * GST_INSTALL_BASE: your GStreamer installation directory
- (default C:\gstreamer\1.0\x86 or C:\gstreamer\1.0\x86_64)
-
- * SDK_INSTALL_BASE: the Windows SDK installation path (default
- C:\Program Files\Microsoft SDKs\Windows\v7.0).
-
-mkdir build
-cd build
-cmake -G "Visual Studio 12" ..
-
-Open the SLN and build the project. Copy the DLL to the GStreamer
-plugins directory.
+++ /dev/null
-
-CMAKE_MINIMUM_REQUIRED (VERSION 2.8)
-
-PROJECT(dshowsrcwrapper)
-
-IF ("${CMAKE_GENERATOR}" MATCHES "Win64")
- SET(ARCH_ "x86_64")
-ELSE ()
- SET(ARCH_ "x86")
-ENDIF ()
-SET(GST_INSTALL_BASE "C:\\gstreamer\\1.0\\${ARCH_}" CACHE PATH "Path to the GStreamer install base")
-SET(SDK_INSTALL_BASE "C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1" CACHE PATH "Path to the Windows SDK root")
-
-SET_PROPERTY(
- DIRECTORY
- APPEND PROPERTY COMPILE_DEFINITIONS
- HAVE_CONFIG_H
-)
-
-INCLUDE_DIRECTORIES(
- ${GST_INSTALL_BASE}/include
- ${GST_INSTALL_BASE}/include/gstreamer-1.0
- ${GST_INSTALL_BASE}/include/glib-2.0
- ${GST_INSTALL_BASE}/lib/glib-2.0/include
- ${GST_INSTALL_BASE}/lib/gstreamer-1.0/include
- ${SDK_INSTALL_BASE}/Samples/multimedia/directshow/baseclasses
-
- # When building from the Cerbero build dir, this is where config.h is.
- ${PROJECT_SOURCE_DIR}/../../_builddir
-)
-
-IF ("${CMAKE_GENERATOR}" MATCHES "Win64")
- SET(ARCH_ "x64/")
-ELSE ()
- SET(ARCH_ "")
-ENDIF ()
-
-LINK_DIRECTORIES(
- ${GST_INSTALL_BASE}/lib
- ${SDK_INSTALL_BASE}/Samples/multimedia/directshow/baseclasses/${ARCH_}Release_MBCS
- ${SDK_INSTALL_BASE}/Samples/multimedia/directshow/baseclasses/${ARCH_}Debug_MBCS
-)
-
-SET(CMAKE_SHARED_LINKER_FLAGS "${CMALE_SHARED_LINKER_FLAGS} /SAFESEH:NO")
-
-ADD_LIBRARY(libgstdshowsrcwrapper SHARED
- dshowdeviceprovider.cpp
- dshowdeviceprovider.h
- gstdshow.cpp
- gstdshow.h
- gstdshowfakesink.cpp
- gstdshowfakesink.h
- gstdshowaudiosrc.cpp
- gstdshowaudiosrc.h
- gstdshowvideosrc.cpp
- gstdshowvideosrc.h
- gstdshowsrcwrapper.cpp
-)
-
-TARGET_LINK_LIBRARIES(libgstdshowsrcwrapper
- gstreamer-1.0
- gstaudio-1.0
- gstvideo-1.0
- gstbase-1.0
- glib-2.0
- gobject-2.0
- debug strmbasd
- optimized strmbase
- rpcrt4
- uuid
- winmm
-)
break;
case GST_STATE_CHANGE_READY_TO_NULL:
break;
+ default:
+ break;
}
return GST_ELEMENT_CLASS(gst_dshowvideosrc_parent_class)->change_state(element, transition);
--- /dev/null
+dshowsrcwrapper_sources = [
+ 'dshowdeviceprovider.cpp',
+ 'gstdshow.cpp',
+ 'gstdshowfakesink.cpp',
+ 'gstdshowaudiosrc.cpp',
+ 'gstdshowvideosrc.cpp',
+ 'gstdshowsrcwrapper.cpp'
+]
+
+if not strmbase_dep.found()
+ message('strmbase not found, not building dshowsrcwrapper')
+ subdir_done()
+endif
+
+winmm_dep = cxx.find_library('winmm', required: get_option('directshow'))
+if not winmm_dep.found()
+ message('winmm not found, not building dshowsrcwrapper')
+ subdir_done()
+endif
+
+rpcrt4_dep = cxx.find_library('rpcrt4', required: get_option('directshow'))
+if not rpcrt4_dep.found()
+ message('rpcrt4 not found, not building dshowsrcwrapper')
+ subdir_done()
+endif
+
+gstdshowsrcwrapper = library('gstdshowsrcwrapper',
+ dshowsrcwrapper_sources,
+ cpp_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [
+ gstaudio_dep,
+ gstvideo_dep,
+ strmbase_dep,
+ winmm_dep,
+ rpcrt4_dep
+ ],
+ install : true,
+ install_dir : plugins_install_dir,
+ override_options : ['cpp_std=none'])
+
+pkgconfig.generate(gstdshowsrcwrapper, install_dir : plugins_pkgconfig_install_dir)
+plugins += [gstdshowsrcwrapper]
subdir('strmbase')
subdir('dshowdecwrapper')
-#subdir('dshowsrcwrapper')
+subdir('dshowsrcwrapper')
#subdir('dshowvideosink')