Add build files and fix build for gst-plugins-bad dshowsinkwrapper plugin

dshowsinkwrapper plugin is the old dshowvideosink plugin that has been
renamed to be compliant with the actuel plugin name in the source code.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1577>
This commit is contained in:
Loic Le Page 2022-01-26 21:06:45 +01:00 committed by Loïc Le Page
parent b355345ef5
commit e1c0628bb9
7 changed files with 43 additions and 6 deletions

View file

@ -973,6 +973,8 @@ gst_dshowvideosink_change_state (GstElement * element, GstStateChange transition
return ret; return ret;
sink->graph_running = TRUE; sink->graph_running = TRUE;
break; break;
default:
break;
} }
ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
@ -997,6 +999,8 @@ gst_dshowvideosink_change_state (GstElement * element, GstStateChange transition
case GST_STATE_CHANGE_READY_TO_NULL: case GST_STATE_CHANGE_READY_TO_NULL:
gst_dshowvideosink_clear (sink); gst_dshowvideosink_clear (sink);
break; break;
default:
break;
} }
return ret; return ret;

View file

@ -0,0 +1,38 @@
dshowsinkwrapper_sources = [
'dshowvideofakesrc.cpp',
'dshowvideosink.cpp'
]
if not strmbase_dep.found()
message('strmbase not found, not building dshowsinkwrapper')
subdir_done()
endif
winmm_dep = cxx.find_library('winmm', required: get_option('directshow'))
if not winmm_dep.found()
message('winmm not found, not building dshowsinkwrapper')
subdir_done()
endif
mfuuid_dep = cxx.find_library('mfuuid', required: get_option('directshow'))
if not mfuuid_dep.found()
message('mfuuid not found, not building dshowsinkwrapper')
subdir_done()
endif
gstdshowsinkwrapper = library('gstdshowsinkwrapper',
dshowsinkwrapper_sources,
cpp_args : gst_plugins_bad_args,
include_directories : [configinc],
dependencies : [
gstvideo_dep,
strmbase_dep,
winmm_dep,
mfuuid_dep
],
install : true,
install_dir : plugins_install_dir,
override_options : ['cpp_std=none'])
pkgconfig.generate(gstdshowsinkwrapper, install_dir : plugins_pkgconfig_install_dir)
plugins += [gstdshowsinkwrapper]

View file

@ -1,5 +0,0 @@
To build this, you'll require the DirectShow base classes. These are supplied
in the Windows SDK, but under Samples\Multimedia\DirectShow\BaseClasses
Once you've built that, you should be able to figure out the rest...

View file

@ -23,4 +23,4 @@ endif
subdir('strmbase') subdir('strmbase')
subdir('dshowdecwrapper') subdir('dshowdecwrapper')
subdir('dshowsrcwrapper') subdir('dshowsrcwrapper')
#subdir('dshowvideosink') subdir('dshowsinkwrapper')