Add meson build definitions
authorThibault Saunier <thibault.saunier@osg.samsung.com>
Mon, 21 Aug 2017 18:20:47 +0000 (15:20 -0300)
committerThibault Saunier <thibault.saunier@osg.samsung.com>
Wed, 30 Aug 2017 01:20:46 +0000 (22:20 -0300)
gacutil_install.py [new file with mode: 0644]
generate_code.py [new file with mode: 0644]
meson.build [new file with mode: 0644]
samples/meson.build [new file with mode: 0644]
sources/generated/meson.build [new file with mode: 0644]
sources/meson.build [new file with mode: 0644]
subprojects/gtk-sharp.wrap [new file with mode: 0644]

diff --git a/gacutil_install.py b/gacutil_install.py
new file mode 100644 (file)
index 0000000..48ef320
--- /dev/null
@@ -0,0 +1,15 @@
+#!/usr/bin/env python3
+
+import os
+import sys
+import subprocess
+
+outdir = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], 'lib')
+builddir = os.environ['MESON_BUILD_ROOT']
+
+for i in range(1, len(sys.argv), 2):
+    assembly_name, fname = sys.argv[i], os.path.join(builddir, sys.argv[i + 1])
+
+    cmd = ['gacutil', '/i', fname, '/f', '/package', assembly_name, '/root', outdir]
+    print('(%s) Running %s' % (os.path.abspath(os.path.curdir), ' '.join(cmd)))
+    subprocess.check_call(cmd)
diff --git a/generate_code.py b/generate_code.py
new file mode 100644 (file)
index 0000000..34bfb91
--- /dev/null
@@ -0,0 +1,88 @@
+#!/usr/bin/env python3
+
+import argparse
+import glob
+import os
+import re
+import shutil
+import subprocess
+
+
+if __name__ == "__main__":
+    parser = argparse.ArgumentParser()
+    parser.add_argument("--api-raw")
+    parser.add_argument("--gapi-fixup")
+    parser.add_argument("--metadata")
+    parser.add_argument("--gapi-codegen")
+    parser.add_argument("--glue-file")
+    parser.add_argument("--glue-includes")
+    parser.add_argument("--glue-libname")
+    parser.add_argument("--assembly-name")
+    parser.add_argument("--extra-includes", action='append', default=[])
+    parser.add_argument("--out")
+    parser.add_argument("--files")
+    parser.add_argument("--symbols")
+    parser.add_argument("--schema")
+    parser.add_argument("--fakeglue", action='store_true')
+
+    opts = parser.parse_args()
+    if opts.fakeglue:
+        exit(0)
+
+    if not opts.glue_libname:
+        opts.glue_libname = opts.assembly_name + 'sharpglue-3'
+
+    api_xml = os.path.join(opts.out, os.path.basename(
+        opts.api_raw).replace('.raw', '.xml'))
+
+    shutil.copyfile(opts.api_raw, api_xml)
+
+    cmd = [opts.gapi_fixup, "--api=" + api_xml,
+                           "--metadata=" + opts.metadata]
+    if opts.symbols:
+        cmd.extend(['--symbols=' + opts.symbols])
+    subprocess.check_call(cmd)
+
+    cmd = [
+        opts.gapi_codegen, '--generate', api_xml,
+        '--outdir=' + opts.out,
+        '--glue-filename=' + opts.glue_file,
+        '--gluelib-name=' + opts.glue_libname,
+        '--glue-includes=' + opts.glue_includes,
+        '--assembly-name=' + opts.assembly_name,]
+
+    if opts.schema:
+        cmd += ['--schema=' + opts.schema]
+
+    for flag in opts.extra_includes:
+        flags = flag.split()
+        for flag in flags:
+            if not flag.startswith('-I'):
+                flag = '-I' + flag
+            cmd.append(flag)
+
+    print(' '.join(cmd))
+    subprocess.check_call(cmd)
+
+    # WORKAROUND: Moving files into the out directory with special names
+    # as meson doesn't like path separator in output names.
+    regex = re.compile('_')
+    dirs = set()
+    for _f in opts.files.split(';'):
+        fpath = os.path.join(opts.out, regex.sub("/", _f, 1))
+        dirs.add(os.path.dirname(fpath))
+        _f = os.path.join(opts.out, _f)
+        shutil.move(fpath, _f)
+
+    missing_files = []
+    for _dir in dirs:
+        missing_files.extend(glob.glob(os.path.join(_dir, '*.cs')))
+
+    if missing_files:
+        print("Following files were generated but not listed:\n    %s" %
+              '\n    '.join(["'%s_%s'," % (m.split(os.path.sep)[-2], m.split(os.path.sep)[-1])
+             for m in missing_files]))
+        exit(1)
+
+    for _dir in dirs:
+        shutil.rmtree(_dir)
diff --git a/meson.build b/meson.build
new file mode 100644 (file)
index 0000000..64f88a1
--- /dev/null
@@ -0,0 +1,95 @@
+project('gstreamer-sharp', ['cs', 'c'], version: '1.12.0',
+    meson_version: '>0.42')
+
+
+if host_machine.system() == 'osx'
+  lib_prefix=''
+  lib_suffix='.dylib'
+else
+  lib_prefix='.so'
+  lib_suffix=''
+endif
+
+gtk_sharp_required_version = '>=3.22.6'
+
+glib_sharp_dep = dependency('glib-sharp-3.0',
+    version: gtk_sharp_required_version,
+    fallback: ['gtk-sharp', 'glib_sharp_dep'])
+
+gio_sharp_dep = dependency('gio-sharp-3.0',
+    version: gtk_sharp_required_version,
+    fallback: ['gtk-sharp', 'gio_sharp_dep'])
+
+if glib_sharp_dep.type_name() == 'internal'
+  gtk_sharp = subproject('gtk-sharp')
+  gapi_fixup = gtk_sharp.get_variable('gapi_fixup')
+  gapi_codegen = gtk_sharp.get_variable('gapi_codegen')
+  glib_api_includes = gtk_sharp.get_variable('glib_api_includes')
+  gio_api_includes = gtk_sharp.get_variable('gio_api_includes')
+  has_gtk = gtk_sharp.get_variable('has_gtk')
+  if has_gtk
+    gtk_sharp_dep = [gtk_sharp.get_variable('gtk_sharp_dep'),
+      gtk_sharp.get_variable('atk_sharp_dep')]
+  else
+    gtk_sharp_dep = dependency('gtk-sharp-3.0', version: gtk_sharp_required_version,
+        required: false)
+  endif
+  codegen_dependencies = [gapi_codegen, gapi_fixup]
+  gapi_fixup = gapi_fixup.full_path()
+  gapi_codegen = gapi_codegen.full_path()
+else
+  gtk_sharp_dep = dependency('gtk-sharp-3.0', version: gtk_sharp_required_version,
+      required: false)
+  has_gtk = gtk_sharp_dep.found()
+
+  gapi_fixup = find_program('gapi3-fixup')
+  gapi_codegen = find_program('gapi3-codegen')
+  pkgconfig = find_program('pkg-config')
+  glib_api_includes = run_command(pkgconfig, '--cflags', 'glib-sharp-3.0').stdout()
+  gio_api_includes = run_command(pkgconfig, '--cflags', 'gio-sharp-3.0').stdout()
+  codegen_dependencies = []
+endif
+
+gacutil = find_program('gacutil')
+generate_api = find_program('generate_code.py')
+gacutil_install = join_paths(meson.current_source_dir(), 'gacutil_install.py')
+
+# TODO Handle monodoc
+
+apiversion = '1.0'
+gst_required_version = '>=@0@'.format(meson.project_version())
+gst_deps = []
+
+foreach dep: [
+  ['gstreamer', ['gstreamer', 'gst_dep']],
+  ['gstreamer-app', ['gst-plugins-base', 'app_dep']],
+  ['gstreamer-audio', ['gst-plugins-base', 'audio_dep']],
+  ['gstreamer-base', ['gst-plugins-base', 'audio_dep']],
+  ['gstreamer-controller', ['gstreamer', 'gst_controller_dep']],
+  ['gstreamer-fft', ['gst-plugins-base', 'fft_dep']],
+  ['gstreamer-net', ['gstreamer', 'gst_net_dep']],
+  ['gstreamer-pbutils', ['gst-plugins-base', 'pbutils_dep']],
+  ['gstreamer-riff', ['gst-plugins-base', 'riff_dep']],
+  ['gstreamer-rtp', ['gst-plugins-base', 'rtp_dep']],
+  ['gstreamer-rtsp', ['gst-plugins-base', 'rtsp_dep']],
+  ['gstreamer-sdp', ['gst-plugins-base', 'sdp_dep']],
+  ['gstreamer-tag', ['gst-plugins-base', 'tag_dep']],
+  ['gstreamer-video', ['gst-plugins-base', 'video_dep']],]
+
+  gst_deps += [dependency(dep.get(0) + '-' + apiversion, version: gst_required_version,
+    fallback: dep.get(1))]
+endforeach
+
+subdir('sources')
+subdir('samples')
+
+bindinate = find_program('bindinate', required: false)
+
+if bindinate.found()
+  run_target('update-bindings',
+    command: [bindinate,
+      '--name=gstreamer', '--regenerate=true',
+      '--merge-with=GstApp-1.0,GstAudio-1.0,GstBase-1.0,GstController-1.0,GstFft-1.0,GstNet-1.0,GstPbutils-1.0,GstRiff-1.0,GstRtp-1.0,GstRtsp-1.0,GstSdp-1.0,GstTag-1.0,GstVideo-1.0',
+      '--gir=Gst-1.0']
+    )
+endif
diff --git a/samples/meson.build b/samples/meson.build
new file mode 100644 (file)
index 0000000..8cf2b5b
--- /dev/null
@@ -0,0 +1,35 @@
+examples = [
+    ['playback', 'Playback.cs'],
+    ['video-overlay' , 'VideoOverlay.cs', has_gtk, gtk_sharp_dep],
+    ['basic-tutorial-1' , 'BasicTutorial1.cs',],
+    ['basic-tutorial-2' , 'BasicTutorial2.cs',],
+    ['basic-tutorial-3' , 'BasicTutorial3.cs',],
+    ['basic-tutorial-4' , 'BasicTutorial4.cs',],
+    ['basic-tutorial-5' , 'BasicTutorial5.cs', has_gtk, gtk_sharp_dep],
+    ['basic-tutorial-6' , 'BasicTutorial6.cs',],
+    ['basic-tutorial-7' , 'BasicTutorial7.cs',],
+    ['basic-tutorial-8' , 'BasicTutorial8.cs',],
+    ['basic-tutorial-9' , 'BasicTutorial9.cs',],
+    ['basic-tutorial-12' , 'BasicTutorial12.cs',],
+    ['basic-tutorial-13' , 'BasicTutorial13.cs',],
+    ['example-volume' , 'ExampleVolume.cs',],
+    ['playback-tutorial-1' , 'PlaybackTutorial1.cs',],
+    ['playback-tutorial-2' , 'PlaybackTutorial2.cs',],
+    ['playback-tutorial-3' , 'PlaybackTutorial3.cs',],
+    ['playback-tutorial-4' , 'PlaybackTutorial4.cs',],
+    ['playback-tutorial-5' , 'PlaybackTutorial5.cs',],
+    ['playback-tutorial-6' , 'PlaybackTutorial6.cs',],
+    ['playback-tutorial-7' , 'PlaybackTutorial7.cs',],
+]
+
+foreach example: examples
+    deps = [gst_sharp_dep]
+    if example.length() == 2 or example.get(2)
+        if example.length() > 2
+            deps += example.get(3)
+        endif
+
+        executable(example.get(0), example.get(1),
+                cs_args: ['-unsafe'], dependencies: deps)
+    endif
+endforeach
diff --git a/sources/generated/meson.build b/sources/generated/meson.build
new file mode 100644 (file)
index 0000000..6216cec
--- /dev/null
@@ -0,0 +1,736 @@
+generated_sources = [
+    'Gst.Sdp_MIKEYMacAlg.cs',
+    'Gst.Sdp_MIKEYPRFFunc.cs',
+    'Gst.Sdp_SDPResult.cs',
+    'Gst.Sdp_MIKEYTSType.cs',
+    'Gst.Sdp_Global.cs',
+    'Gst.Sdp_MIKEYDecryptInfo.cs',
+    'Gst.Sdp_MIKEYPayload.cs',
+    'Gst.Sdp_SDPMessage.cs',
+    'Gst.Sdp_SDPKey.cs',
+    'Gst.Sdp_SDPZone.cs',
+    'Gst.Sdp_MIKEYCacheType.cs',
+    'Gst.Sdp_MIKEYPayloadPKE.cs',
+    'Gst.Sdp_MIKEYMapType.cs',
+    'Gst.Sdp_MIKEYKeyDataType.cs',
+    'Gst.Sdp_MIKEYPayloadSP.cs',
+    'Gst.Sdp_SDPAttribute.cs',
+    'Gst.Sdp_SDPOrigin.cs',
+    'Gst.Sdp_MIKEYPayloadT.cs',
+    'Gst.Sdp_MIKEYMapSRTP.cs',
+    'Gst.Sdp_MIKEYKVType.cs',
+    'Gst.Sdp_MIKEYPayloadSPParam.cs',
+    'Gst.Sdp_SDPBandwidth.cs',
+    'Gst.Sdp_MIKEYSecSRTP.cs',
+    'Gst.Sdp_MIKEYPayloadType.cs',
+    'Gst.Sdp_MIKEYSecProto.cs',
+    'Gst.Sdp_MIKEYPayloadKEMAC.cs',
+    'Gst.Sdp_MIKEYMessage.cs',
+    'Gst.Sdp_MIKEYEncAlg.cs',
+    'Gst.Sdp_MIKEYEncryptInfo.cs',
+    'Gst.Sdp_SDPTime.cs',
+    'Gst.Sdp_MIKEYPayloadRAND.cs',
+    'Gst.Sdp_MIKEYPayloadKeyData.cs',
+    'Gst.Sdp_SDPMedia.cs',
+    'Gst.Sdp_MIKEYType.cs',
+    'Gst.Sdp_SDPConnection.cs',
+    'Gst.Sdp_Constants.cs',
+    'Gst.Rtsp_RTSPAuthMethod.cs',
+    'Gst.Rtsp_Global.cs',
+    'Gst.Rtsp_RTSPTime2.cs',
+    'Gst.Rtsp_RTSPEvent.cs',
+    'Gst.Rtsp_RTSPRangeUnit.cs',
+    'Gst.Rtsp_RTSPWatch.cs',
+    'Gst.Rtsp_RTSPVersion.cs',
+    'Gst.Rtsp_RTSPMessage.cs',
+    'Gst.Rtsp_RTSPResult.cs',
+    'Gst.Rtsp_RTSPUrl.cs',
+    'Gst.Rtsp_RTSPConnection.cs',
+    'Gst.Rtsp_RTSPHeaderField.cs',
+    'Gst.Rtsp_SendEventHandler.cs',
+    'Gst.Rtsp_RTSPLowerTrans.cs',
+    'Gst.Rtsp_RTSPState.cs',
+    'Gst.Rtsp_RTSPMsgType.cs',
+    'Gst.Rtsp_RTSPWatchFuncs.cs',
+    'Gst.Rtsp_RTSPTransMode.cs',
+    'Gst.Rtsp_RTSPAuthCredential.cs',
+    'Gst.Rtsp_RTSPTimeRange.cs',
+    'Gst.Rtsp_IRTSPExtension.cs',
+    'Gst.Rtsp_RTSPTimeType.cs',
+    'Gst.Rtsp_RTSPMethod.cs',
+    'Gst.Rtsp_RTSPFamily.cs',
+    'Gst.Rtsp_RTSPTransport.cs',
+    'Gst.Rtsp_RTSPExtensionAdapter.cs',
+    'Gst.Rtsp_RTSPRange.cs',
+    'Gst.Rtsp_RTSPProfile.cs',
+    'Gst.Rtsp_RTSPStatusCode.cs',
+    'Gst.Rtsp_Constants.cs',
+    'Gst.Rtsp_RTSPAuthParam.cs',
+    'Gst.Rtsp_RTSPTime.cs',
+    'Gst.Base_Gst.BaseSharp.CollectPadsFunctionNative.cs',
+    'Gst.Base_CollectPadsCompareFunction.cs',
+    'Gst.Base_Gst.BaseSharp.CollectPadsCompareFunctionNative.cs',
+    'Gst.Base_Gst.BaseSharp.TypeFindHelperGetRangeFunctionNative.cs',
+    'Gst.Base_Gst.BaseSharp.DataQueueCheckFullFunctionNative.cs',
+    'Gst.Base_Global.cs',
+    'Gst.Base_CollectPadsFunction.cs',
+    'Gst.Base_DataQueueEmptyCallback.cs',
+    'Gst.Base_BaseSrc.cs',
+    'Gst.Base_Gst.BaseSharp.CollectDataDestroyNotifyNative.cs',
+    'Gst.Base_CollectPadsClipFunction.cs',
+    'Gst.Base_PushSrc.cs',
+    'Gst.Base_TypeFindHelperGetRangeFunction.cs',
+    'Gst.Base_Adapter.cs',
+    'Gst.Base_Gst.BaseSharp.CollectPadsEventFunctionNative.cs',
+    'Gst.Base_BaseParseFrame.cs',
+    'Gst.Base_DataQueue.cs',
+    'Gst.Base_CollectDataDestroyNotify.cs',
+    'Gst.Base_FlowCombiner.cs',
+    'Gst.Base_Gst.BaseSharp.CollectPadsClipFunctionNative.cs',
+    'Gst.Base_BaseParseFrameFlags.cs',
+    'Gst.Base_Gst.BaseSharp.DataQueueFullCallbackNative.cs',
+    'Gst.Base_DataQueueSize.cs',
+    'Gst.Base_Gst.BaseSharp.CollectPadsFlushFunctionNative.cs',
+    'Gst.Base_CollectPadsQueryFunction.cs',
+    'Gst.Base_Gst.BaseSharp.CollectPadsBufferFunctionNative.cs',
+    'Gst.Base_CollectPadsStateFlags.cs',
+    'Gst.Base_BaseTransform.cs',
+    'Gst.Base_ByteReader.cs',
+    'Gst.Base_CollectPads.cs',
+    'Gst.Base_DataQueueFullCallback.cs',
+    'Gst.Base_BitReader.cs',
+    'Gst.Base_Gst.BaseSharp.DataQueueEmptyCallbackNative.cs',
+    'Gst.Base_ByteWriter.cs',
+    'Gst.Base_Gst.BaseSharp.CollectPadsQueryFunctionNative.cs',
+    'Gst.Base_QueueArray.cs',
+    'Gst.Base_DataQueueCheckFullFunction.cs',
+    'Gst.Base_BaseParse.cs',
+    'Gst.Base_CollectPadsFlushFunction.cs',
+    'Gst.Base_CollectData.cs',
+    'Gst.Base_Constants.cs',
+    'Gst.Base_CollectPadsEventFunction.cs',
+    'Gst.Base_BaseSink.cs',
+    'Gst.Base_CollectPadsBufferFunction.cs',
+    'Gst.Base_BaseSrcFlags.cs',
+    'Gst.Base_DataQueueItem.cs',
+    'Gst.PbUtils_EncodingTarget.cs',
+    'Gst.PbUtils_EncodingAudioProfile.cs',
+    'Gst.PbUtils_EncodingContainerProfile.cs',
+    'Gst.PbUtils_SourceSetupHandler.cs',
+    'Gst.PbUtils_Global.cs',
+    'Gst.PbUtils_DiscovererVideoInfo.cs',
+    'Gst.PbUtils_Gst.PbUtilsSharp.AudioVisualizerShaderFuncNative.cs',
+    'Gst.PbUtils_InstallPluginsResultFunc.cs',
+    'Gst.PbUtils_EncodingProfile.cs',
+    'Gst.PbUtils_DiscovererContainerInfo.cs',
+    'Gst.PbUtils_InstallPluginsContext.cs',
+    'Gst.PbUtils_DiscovererResult.cs',
+    'Gst.PbUtils_DiscoveredHandler.cs',
+    'Gst.PbUtils_InstallPluginsReturn.cs',
+    'Gst.PbUtils_DiscovererStreamInfo.cs',
+    'Gst.PbUtils_AudioVisualizerShaderFunc.cs',
+    'Gst.PbUtils_AudioVisualizer.cs',
+    'Gst.PbUtils_Constants.cs',
+    'Gst.PbUtils_Discoverer.cs',
+    'Gst.PbUtils_DiscovererSubtitleInfo.cs',
+    'Gst.PbUtils_DiscovererSerializeFlags.cs',
+    'Gst.PbUtils_DiscovererAudioInfo.cs',
+    'Gst.PbUtils_AudioVisualizerShader.cs',
+    'Gst.PbUtils_DiscovererInfo.cs',
+    'Gst.PbUtils_EncodingVideoProfile.cs',
+    'Gst.PbUtils_Gst.PbUtilsSharp.InstallPluginsResultFuncNative.cs',
+    'Gst_StaticCaps.cs',
+    'Gst_MessageType.cs',
+    'Gst_GstSharp.PadUnlinkFunctionNative.cs',
+    'Gst_Int64Range.cs',
+    'Gst_IPreset.cs',
+    'Gst_MetaInfo.cs',
+    'Gst_GstSharp.IteratorForeachFunctionNative.cs',
+    'Gst_StreamFlags.cs',
+    'Gst_TypeFindFunction.cs',
+    'Gst_QueryType.cs',
+    'Gst_GstSharp.TypeFindFunctionNative.cs',
+    'Gst_ClockType.cs',
+    'Gst_DeviceProvider.cs',
+    'Gst_MiniObjectCopyFunction.cs',
+    'Gst_GstSharp.PadForwardFunctionNative.cs',
+    'Gst_GstSharp.ValueDeserializeFuncNative.cs',
+    'Gst_SyncMessageHandler.cs',
+    'Gst_TagMergeFunc.cs',
+    'Gst_TimedValue.cs',
+    'Gst_PadFlags.cs',
+    'Gst_IteratorFoldFunction.cs',
+    'Gst_TocLoopType.cs',
+    'Gst_PadForwardFunction.cs',
+    'Gst_GstSharp.CapsFilterMapFuncNative.cs',
+    'Gst_ValueSerializeFunc.cs',
+    'Gst_MetaInitFunction.cs',
+    'Gst_GstSharp.MetaTransformFunctionNative.cs',
+    'Gst_AllocatorFlags.cs',
+    'Gst_PluginDesc.cs',
+    'Gst_GstSharp.TaskFunctionNative.cs',
+    'Gst_ElementCallAsyncFunc.cs',
+    'Gst_ValueTable.cs',
+    'Gst_Object.cs',
+    'Gst_ParamSpecArray.cs',
+    'Gst_GstSharp.MetaFreeFunctionNative.cs',
+    'Gst_ElementRemovedHandler.cs',
+    'Gst_GstSharp.MemoryShareFunctionNative.cs',
+    'Gst_MemoryMapFunction.cs',
+    'Gst_URIHandlerAdapter.cs',
+    'Gst_ClockFlags.cs',
+    'Gst_GstSharp.PadGetRangeFunctionNative.cs',
+    'Gst_Tracer.cs',
+    'Gst_Stream.cs',
+    'Gst_PadTemplateFlags.cs',
+    'Gst_GstSharp.IteratorItemFunctionNative.cs',
+    'Gst_ChildRemovedEventHandler.cs',
+    'Gst_ControlBinding.cs',
+    'Gst_PluginFlags.cs',
+    'Gst_Global.cs',
+    'Gst_IteratorResult.cs',
+    'Gst_BufferPoolAcquireParams.cs',
+    'Gst_Pipeline.cs',
+    'Gst_GstSharp.LogFunctionNative.cs',
+    'Gst_UnlinkedHandler.cs',
+    'Gst_SystemClock.cs',
+    'Gst_StreamType.cs',
+    'Gst_PadProbeInfo.cs',
+    'Gst_DeepElementAddedHandler.cs',
+    'Gst_ParamSpecFraction.cs',
+    'Gst_CapsMapFunc.cs',
+    'Gst_GstSharp.IteratorNextFunctionNative.cs',
+    'Gst_PadLinkFunction.cs',
+    'Gst_PresetAdapter.cs',
+    'Gst_GstSharp.CapsForeachFuncNative.cs',
+    'Gst_GstSharp.MemoryMapFunctionNative.cs',
+    'Gst_MetaFlags.cs',
+    'Gst_PadIterIntLinkFunction.cs',
+    'Gst_ProxyPad.cs',
+    'Gst_TracerValueScope.cs',
+    'Gst_Bitmask.cs',
+    'Gst_IteratorForeachFunction.cs',
+    'Gst_PluginDependencyFlags.cs',
+    'Gst_PluginInitFullFunc.cs',
+    'Gst_Caps.cs',
+    'Gst_SeekFlags.cs',
+    'Gst_DeepNotifyHandler.cs',
+    'Gst_GstSharp.MiniObjectFreeFunctionNative.cs',
+    'Gst_GstSharp.ElementCallAsyncFuncNative.cs',
+    'Gst_PadRemovedHandler.cs',
+    'Gst_BusFunc.cs',
+    'Gst_MiniObject.cs',
+    'Gst_AllocationParams.cs',
+    'Gst_MiniObjectFreeFunction.cs',
+    'Gst_QOSType.cs',
+    'Gst_StreamNotifyHandler.cs',
+    'Gst_GstSharp.CapsMapFuncNative.cs',
+    'Gst_PadAddedHandler.cs',
+    'Gst_PadLinkCheck.cs',
+    'Gst_GstSharp.PadLinkFunctionNative.cs',
+    'Gst_GstSharp.MiniObjectNotifyNative.cs',
+    'Gst_FlowReturn.cs',
+    'Gst_IteratorCopyFunction.cs',
+    'Gst_LibraryError.cs',
+    'Gst_IteratorNextFunction.cs',
+    'Gst_Memory.cs',
+    'Gst_GstSharp.TagMergeFuncNative.cs',
+    'Gst_TypeFind.cs',
+    'Gst_GstSharp.BusFuncNative.cs',
+    'Gst_GstSharp.TagForeachFuncNative.cs',
+    'Gst_PadProbeReturn.cs',
+    'Gst_GstSharp.MemoryUnmapFullFunctionNative.cs',
+    'Gst_Meta.cs',
+    'Gst_BufferCopyFlags.cs',
+    'Gst_TaskThreadFunc.cs',
+    'Gst_Toc.cs',
+    'Gst_ValueCompareFunc.cs',
+    'Gst_Clock.cs',
+    'Gst_TracerValueFlags.cs',
+    'Gst_Uri.cs',
+    'Gst_URIError.cs',
+    'Gst_TaskFunction.cs',
+    'Gst_GstSharp.ValueSerializeFuncNative.cs',
+    'Gst_Structure.cs',
+    'Gst_Buffer.cs',
+    'Gst_StreamCollection.cs',
+    'Gst_Application.cs',
+    'Gst_PadProbeCallback.cs',
+    'Gst_GstSharp.PadActivateModeFunctionNative.cs',
+    'Gst_GstSharp.BufferListFuncNative.cs',
+    'Gst_GstSharp.IteratorResyncFunctionNative.cs',
+    'Gst_MemoryFlags.cs',
+    'Gst_MiniObjectDisposeFunction.cs',
+    'Gst_GstSharp.PadProbeCallbackNative.cs',
+    'Gst_MiniObjectFlags.cs',
+    'Gst_GstSharp.IteratorCopyFunctionNative.cs',
+    'Gst_IteratorItem.cs',
+    'Gst_PadProbeType.cs',
+    'Gst_ParseFlags.cs',
+    'Gst_ValueList.cs',
+    'Gst_DebugLevel.cs',
+    'Gst_StaticPadTemplate.cs',
+    'Gst_GstSharp.PadQueryFunctionNative.cs',
+    'Gst_ClockEntry.cs',
+    'Gst_BufferList.cs',
+    'Gst_GstSharp.StructureMapFuncNative.cs',
+    'Gst_MapFlags.cs',
+    'Gst_DebugMessage.cs',
+    'Gst_ControlSourceGetValueArray.cs',
+    'Gst_PluginFeatureFilter.cs',
+    'Gst_ITagSetter.cs',
+    'Gst_ElementFactory.cs',
+    'Gst_DateTime.cs',
+    'Gst_PadGetRangeFunction.cs',
+    'Gst_ProgressType.cs',
+    'Gst_MetaTransformCopy.cs',
+    'Gst_ProviderUnhiddenHandler.cs',
+    'Gst_GstSharp.DebugFuncPtrNative.cs',
+    'Gst_DebugColorFlags.cs',
+    'Gst_MiniObjectNotify.cs',
+    'Gst_AtomicQueue.cs',
+    'Gst_MetaFreeFunction.cs',
+    'Gst_DynamicTypeFactory.cs',
+    'Gst_MemoryUnmapFullFunction.cs',
+    'Gst_BufferFlags.cs',
+    'Gst_GstSharp.MemoryIsSpanFunctionNative.cs',
+    'Gst_ParentBufferMeta.cs',
+    'Gst_GstSharp.PadChainListFunctionNative.cs',
+    'Gst_TagFlag.cs',
+    'Gst_CapsFlags.cs',
+    'Gst_Pad.cs',
+    'Gst_PluginFilter.cs',
+    'Gst_PadChainFunction.cs',
+    'Gst_ValueDeserializeFunc.cs',
+    'Gst_StructureMapFunc.cs',
+    'Gst_Value.cs',
+    'Gst_IteratorResyncFunction.cs',
+    'Gst_ClockCallback.cs',
+    'Gst_SchedulingFlags.cs',
+    'Gst_ControlBindingConvert.cs',
+    'Gst_Allocator.cs',
+    'Gst_BufferingMode.cs',
+    'Gst_FlagSet.cs',
+    'Gst_Element.cs',
+    'Gst_GstSharp.IteratorFoldFunctionNative.cs',
+    'Gst_PluginFeature.cs',
+    'Gst_ChildAddedEventHandler.cs',
+    'Gst_GstSharp.MemoryUnmapFunctionNative.cs',
+    'Gst_MemoryCopyFunction.cs',
+    'Gst_PluginInitFunc.cs',
+    'Gst_DebugCategory.cs',
+    'Gst_DeviceMonitor.cs',
+    'Gst_TocSetterAdapter.cs',
+    'Gst_PluginError.cs',
+    'Gst_DeepElementRemovedHandler.cs',
+    'Gst_GhostPad.cs',
+    'Gst_StructureChangeType.cs',
+    'Gst_TagForeachFunc.cs',
+    'Gst_BufferPoolAcquireFlags.cs',
+    'Gst_GstSharp.ControlBindingConvertNative.cs',
+    'Gst_GstSharp.MiniObjectDisposeFunctionNative.cs',
+    'Gst_Debug.cs',
+    'Gst_DeviceProviderFactory.cs',
+    'Gst_PadQueryFunction.cs',
+    'Gst_TocScope.cs',
+    'Gst_PadUnlinkFunction.cs',
+    'Gst_GstSharp.ControlSourceGetValueNative.cs',
+    'Gst_QueryTypeFlags.cs',
+    'Gst_CoreError.cs',
+    'Gst_GstSharp.ControlSourceGetValueArrayNative.cs',
+    'Gst_Sample.cs',
+    'Gst_Device.cs',
+    'Gst_TagMergeMode.cs',
+    'Gst_ProtectionMeta.cs',
+    'Gst_ElementFlags.cs',
+    'Gst_TagScope.cs',
+    'Gst_PadActivateFunction.cs',
+    'Gst_GstSharp.StructureFilterMapFuncNative.cs',
+    'Gst_Event.cs',
+    'Gst_GstSharp.PadEventFullFunctionNative.cs',
+    'Gst_GstSharp.PadActivateFunctionNative.cs',
+    'Gst_ClockReturn.cs',
+    'Gst_MemoryMapFullFunction.cs',
+    'Gst_GstSharp.PluginFilterNative.cs',
+    'Gst_ParseContext.cs',
+    'Gst_LockFlags.cs',
+    'Gst_StackTraceFlags.cs',
+    'Gst_GstSharp.TaskPoolFunctionNative.cs',
+    'Gst_Task.cs',
+    'Gst_GstSharp.ClockCallbackNative.cs',
+    'Gst_Registry.cs',
+    'Gst_TracerRecord.cs',
+    'Gst_Query.cs',
+    'Gst_PadEventFunction.cs',
+    'Gst_GstSharp.IteratorFreeFunctionNative.cs',
+    'Gst_TocEntryType.cs',
+    'Gst_Poll.cs',
+    'Gst_MemoryShareFunction.cs',
+    'Gst_ResourceError.cs',
+    'Gst_Tag.cs',
+    'Gst_BinFlags.cs',
+    'Gst_PadLinkReturn.cs',
+    'Gst_Bus.cs',
+    'Gst_GstSharp.PadIterIntLinkFunctionNative.cs',
+    'Gst_Segment.cs',
+    'Gst_GstSharp.PadChainFunctionNative.cs',
+    'Gst_CapsIntersectMode.cs',
+    'Gst_TaskPool.cs',
+    'Gst_CapsForeachFunc.cs',
+    'Gst_TypeFindFactory.cs',
+    'Gst_State.cs',
+    'Gst_Message.cs',
+    'Gst_Context.cs',
+    'Gst_LogFunction.cs',
+    'Gst_TagSetterAdapter.cs',
+    'Gst_GstSharp.PluginInitFullFuncNative.cs',
+    'Gst_ParseError.cs',
+    'Gst_IURIHandler.cs',
+    'Gst_PadChainListFunction.cs',
+    'Gst_MemoryUnmapFunction.cs',
+    'Gst_StateChangeReturn.cs',
+    'Gst_PadTemplate.cs',
+    'Gst_StreamError.cs',
+    'Gst_ObjectFlags.cs',
+    'Gst_GstSharp.PadStickyEventsForeachFunctionNative.cs',
+    'Gst_BusFlags.cs',
+    'Gst_ParamArray.cs',
+    'Gst_MessageHandler.cs',
+    'Gst_BusSyncHandler.cs',
+    'Gst_ClockEntryType.cs',
+    'Gst_StreamStatusType.cs',
+    'Gst_CapsFeatures.cs',
+    'Gst_PadMode.cs',
+    'Gst_Parse.cs',
+    'Gst_GstSharp.PadEventFunctionNative.cs',
+    'Gst_TaskState.cs',
+    'Gst_DebugFuncPtr.cs',
+    'Gst_Iterator.cs',
+    'Gst_Rank.cs',
+    'Gst_MapInfo.cs',
+    'Gst_GstSharp.ValueCompareFuncNative.cs',
+    'Gst_FeatureAddedHandler.cs',
+    'Gst_ControlSourceGetValue.cs',
+    'Gst_BufferPool.cs',
+    'Gst_Format.cs',
+    'Gst_Plugin.cs',
+    'Gst_PadActivateModeFunction.cs',
+    'Gst_PadDirection.cs',
+    'Gst_GstSharp.BufferForeachMetaFuncNative.cs',
+    'Gst_GstSharp.StructureForeachFuncNative.cs',
+    'Gst_DebugColorMode.cs',
+    'Gst_GstSharp.BusSyncHandlerNative.cs',
+    'Gst_SyncedHandler.cs',
+    'Gst_DoLatencyHandler.cs',
+    'Gst_BusSyncReply.cs',
+    'Gst_PadPresence.cs',
+    'Gst_ControlSource.cs',
+    'Gst_GstSharp.PluginInitFuncNative.cs',
+    'Gst_PadEventFullFunction.cs',
+    'Gst_SearchMode.cs',
+    'Gst_ChildProxyAdapter.cs',
+    'Gst_IChildProxy.cs',
+    'Gst_PadStickyEventsForeachFunction.cs',
+    'Gst_SeekType.cs',
+    'Gst_GstSharp.MemoryMapFullFunctionNative.cs',
+    'Gst_GstSharp.MiniObjectCopyFunctionNative.cs',
+    'Gst_BufferListFunc.cs',
+    'Gst_MemoryIsSpanFunction.cs',
+    'Gst_ITocSetter.cs',
+    'Gst_MetaTransformFunction.cs',
+    'Gst_Constants.cs',
+    'Gst_PadCreatedEventHandler.cs',
+    'Gst_ProviderHiddenHandler.cs',
+    'Gst_StructureFilterMapFunc.cs',
+    'Gst_PluginAddedHandler.cs',
+    'Gst_ValueArray.cs',
+    'Gst_DebugGraphDetails.cs',
+    'Gst_IteratorItemFunction.cs',
+    'Gst_StructureForeachFunc.cs',
+    'Gst_EventType.cs',
+    'Gst_ElementAddedHandler.cs',
+    'Gst_Util.cs',
+    'Gst_CapsFilterMapFunc.cs',
+    'Gst_GstSharp.TaskThreadFuncNative.cs',
+    'Gst_PipelineFlags.cs',
+    'Gst_FormatDefinition.cs',
+    'Gst_URIType.cs',
+    'Gst_ParamFraction.cs',
+    'Gst_TracerFactory.cs',
+    'Gst_GstSharp.MetaInitFunctionNative.cs',
+    'Gst_TypeFindProbability.cs',
+    'Gst_Bin.cs',
+    'Gst_GstSharp.MemoryCopyFunctionNative.cs',
+    'Gst_StateChange.cs',
+    'Gst_LinkedHandler.cs',
+    'Gst_GstSharp.PluginFeatureFilterNative.cs',
+    'Gst_TocEntry.cs',
+    'Gst_EventTypeFlags.cs',
+    'Gst_IteratorFreeFunction.cs',
+    'Gst_TagList.cs',
+    'Gst_TaskPoolFunction.cs',
+    'Gst_BufferForeachMetaFunc.cs',
+    'Gst_SegmentFlags.cs',
+    'Gst_PollFD.cs',
+    'Gst.Tags_TagXmpWriterAdapter.cs',
+    'Gst.Tags_Global.cs',
+    'Gst.Tags_TagMux.cs',
+    'Gst.Tags_TagDemux.cs',
+    'Gst.Tags_ITagXmpWriter.cs',
+    'Gst.Tags_TagImageType.cs',
+    'Gst.Tags_TagLicenseFlags.cs',
+    'Gst.Tags_TagDemuxResult.cs',
+    'Gst.Tags_Constants.cs',
+    'Gst.FFT_FFTS16.cs',
+    'Gst.FFT_Global.cs',
+    'Gst.FFT_FFTF64.cs',
+    'Gst.FFT_FFTF64Complex.cs',
+    'Gst.FFT_FFTS32.cs',
+    'Gst.FFT_FFTWindow.cs',
+    'Gst.FFT_FFTF32.cs',
+    'Gst.FFT_FFTF32Complex.cs',
+    'Gst.FFT_FFTS16Complex.cs',
+    'Gst.FFT_FFTS32Complex.cs',
+    'Gst.FFT_Constants.cs',
+    'Gst.App_NewSampleHandler.cs',
+    'Gst.App_AppSrc.cs',
+    'Gst.App_SeekDataHandler.cs',
+    'Gst.App_TryPullPrerollEventHandler.cs',
+    'Gst.App_Global.cs',
+    'Gst.App_NeedDataHandler.cs',
+    'Gst.App_AppSink.cs',
+    'Gst.App_NewPrerollHandler.cs',
+    'Gst.App_TryPullSampleEventHandler.cs',
+    'Gst.App_AppStreamType.cs',
+    'Gst.App_AppSrcCallbacks.cs',
+    'Gst.App_AppSinkCallbacks.cs',
+    'Gst.App_PushSampleEventHandler.cs',
+    'Gst.App_PushBufferEventHandler.cs',
+    'Gst.App_Constants.cs',
+    'Gst.App_EndOfStreamEventHandler.cs',
+    'Gst.Video_VideoDitherFlags.cs',
+    'Gst.Video_VideoCodecFrameFlags.cs',
+    'Gst.Video_VideoInterlaceMode.cs',
+    'Gst.Video_VideoGammaMode.cs',
+    'Gst.Video_VideoMultiviewMode.cs',
+    'Gst.Video_VideoMultiviewFramePacking.cs',
+    'Gst.Video_VideoFormatPack.cs',
+    'Gst.Video_VideoAlignment.cs',
+    'Gst.Video_VideoDither.cs',
+    'Gst.Video_NavigationQueryType.cs',
+    'Gst.Video_Gst.VideoSharp.VideoGLTextureUploadNative.cs',
+    'Gst.Video_NavigationEventType.cs',
+    'Gst.Video_VideoFormat.cs',
+    'Gst.Video_IVideoDirection.cs',
+    'Gst.Video_VideoTimeCode.cs',
+    'Gst.Video_NavigationAdapter.cs',
+    'Gst.Video_Global.cs',
+    'Gst.Video_VideoResamplerFlags.cs',
+    'Gst.Video_VideoInfo.cs',
+    'Gst.Video_ColorBalanceType.cs',
+    'Gst.Video_VideoScaler.cs',
+    'Gst.Video_VideoDecoder.cs',
+    'Gst.Video_VideoMetaTransform.cs',
+    'Gst.Video_VideoAffineTransformationMeta.cs',
+    'Gst.Video_IVideoOverlay.cs',
+    'Gst.Video_VideoFlags.cs',
+    'Gst.Video_IColorBalance.cs',
+    'Gst.Video_VideoChromaResample.cs',
+    'Gst.Video_VideoTimeCodeInterval.cs',
+    'Gst.Video_VideoSink.cs',
+    'Gst.Video_VideoPackFlags.cs',
+    'Gst.Video_VideoResampler.cs',
+    'Gst.Video_VideoColorRange.cs',
+    'Gst.Video_VideoOrientationMethod.cs',
+    'Gst.Video_Gst.VideoSharp.VideoFormatPackNative.cs',
+    'Gst.Video_VideoColorPrimariesInfo.cs',
+    'Gst.Video_VideoFilter.cs',
+    'Gst.Video_VideoChromaMode.cs',
+    'Gst.Video_VideoDirectionAdapter.cs',
+    'Gst.Video_VideoColorMatrix.cs',
+    'Gst.Video_VideoGLTextureUpload.cs',
+    'Gst.Video_INavigation.cs',
+    'Gst.Video_VideoGLTextureOrientation.cs',
+    'Gst.Video_VideoFormatFlags.cs',
+    'Gst.Video_VideoFrameFlags.cs',
+    'Gst.Video_VideoOverlayCompositionMeta.cs',
+    'Gst.Video_VideoOverlayRectangle.cs',
+    'Gst.Video_VideoTileType.cs',
+    'Gst.Video_Gst.VideoSharp.VideoAffineTransformationGetMatrixNative.cs',
+    'Gst.Video_VideoGLTextureUploadMeta.cs',
+    'Gst.Video_VideoFormatInfo.cs',
+    'Gst.Video_VideoFormatUnpack.cs',
+    'Gst.Video_VideoTimeCodeConfig.cs',
+    'Gst.Video_VideoTransferFunction.cs',
+    'Gst.Video_Gst.VideoSharp.VideoConvertSampleCallbackNative.cs',
+    'Gst.Video_VideoChromaSite.cs',
+    'Gst.Video_VideoColorimetry.cs',
+    'Gst.Video_ValueChangedEventHandler.cs',
+    'Gst.Video_VideoScalerFlags.cs',
+    'Gst.Video_VideoAlphaMode.cs',
+    'Gst.Video_VideoResamplerMethod.cs',
+    'Gst.Video_VideoCodecFrame.cs',
+    'Gst.Video_Gst.VideoSharp.VideoFormatUnpackNative.cs',
+    'Gst.Video_ValueChangedHandler.cs',
+    'Gst.Video_VideoRectangle.cs',
+    'Gst.Video_VideoConvertSampleCallback.cs',
+    'Gst.Video_NavigationMessageType.cs',
+    'Gst.Video_VideoEncoder.cs',
+    'Gst.Video_VideoTimeCodeMeta.cs',
+    'Gst.Video_VideoOverlayComposition.cs',
+    'Gst.Video_VideoColorPrimaries.cs',
+    'Gst.Video_VideoTimeCodeFlags.cs',
+    'Gst.Video_VideoBufferPool.cs',
+    'Gst.Video_VideoOrientationAdapter.cs',
+    'Gst.Video_VideoChromaMethod.cs',
+    'Gst.Video_IVideoOrientation.cs',
+    'Gst.Video_VideoFrameMapFlags.cs',
+    'Gst.Video_VideoCropMeta.cs',
+    'Gst.Video_VideoBufferFlags.cs',
+    'Gst.Video_VideoFrame.cs',
+    'Gst.Video_VideoMeta.cs',
+    'Gst.Video_VideoConverter.cs',
+    'Gst.Video_ColorBalanceAdapter.cs',
+    'Gst.Video_VideoChromaFlags.cs',
+    'Gst.Video_VideoCodecState.cs',
+    'Gst.Video_VideoGLTextureType.cs',
+    'Gst.Video_Constants.cs',
+    'Gst.Video_ColorBalanceChannel.cs',
+    'Gst.Video_VideoOverlayFormatFlags.cs',
+    'Gst.Video_VideoMultiviewFlagsSet.cs',
+    'Gst.Video_NavigationCommand.cs',
+    'Gst.Video_VideoDitherMethod.cs',
+    'Gst.Video_VideoOverlayAdapter.cs',
+    'Gst.Video_VideoRegionOfInterestMeta.cs',
+    'Gst.Video_VideoPrimariesMode.cs',
+    'Gst.Video_VideoFieldOrder.cs',
+    'Gst.Video_VideoAffineTransformationGetMatrix.cs',
+    'Gst.Video_VideoMatrixMode.cs',
+    'Gst.Video_VideoTileMode.cs',
+    'Gst.Video_VideoMultiviewFlags.cs',
+    'GtkSharp_ObjectManager.cs',
+    'Gst.Controller_InterpolationControlSource.cs',
+    'Gst.Controller_ValueAddedHandler.cs',
+    'Gst.Controller_Global.cs',
+    'Gst.Controller_TimedValueControlSource.cs',
+    'Gst.Controller_LFOControlSource.cs',
+    'Gst.Controller_LFOWaveform.cs',
+    'Gst.Controller_ProxyControlBinding.cs',
+    'Gst.Controller_ARGBControlBinding.cs',
+    'Gst.Controller_ValueRemovedHandler.cs',
+    'Gst.Controller_Gst.ControllerSharp.DirectControlBindingConvertGValueNative.cs',
+    'Gst.Controller_ValueChangedHandler.cs',
+    'Gst.Controller_ControlPoint.cs',
+    'Gst.Controller_DirectControlBinding.cs',
+    'Gst.Controller_TriggerControlSource.cs',
+    'Gst.Controller_InterpolationMode.cs',
+    'Gst.Controller_DirectControlBindingConvertGValue.cs',
+    'Gst.Controller_Constants.cs',
+    'Gst.Controller_Gst.ControllerSharp.DirectControlBindingConvertValueNative.cs',
+    'Gst.Controller_DirectControlBindingConvertValue.cs',
+    'Gst.Audio_Gst.AudioSharp.AudioRingBufferCallbackNative.cs',
+    'Gst.Audio_AudioRingBufferCallback.cs',
+    'Gst.Audio_AudioCdSrcTrack.cs',
+    'Gst.Audio_AudioFormatPack.cs',
+    'Gst.Audio_Global.cs',
+    'Gst.Audio_AudioCdSrcMode.cs',
+    'Gst.Audio_AudioClockGetTimeFunc.cs',
+    'Gst.Audio_AudioResamplerMethod.cs',
+    'Gst.Audio_Gst.AudioSharp.AudioFormatPackNative.cs',
+    'Gst.Audio_AudioFormatInfo.cs',
+    'Gst.Audio_AudioDownmixMeta.cs',
+    'Gst.Audio_AudioConverterFlags.cs',
+    'Gst.Audio_AudioClippingMeta.cs',
+    'Gst.Audio_AudioResampler.cs',
+    'Gst.Audio_Gst.AudioSharp.AudioFormatUnpackNative.cs',
+    'Gst.Audio_AudioSrc.cs',
+    'Gst.Audio_AudioRingBufferFormatType.cs',
+    'Gst.Audio_AudioSink.cs',
+    'Gst.Audio_StreamVolumeFormat.cs',
+    'Gst.Audio_AudioBaseSrcSlaveMethod.cs',
+    'Gst.Audio_AudioQuantizeFlags.cs',
+    'Gst.Audio_AudioRingBuffer.cs',
+    'Gst.Audio_AudioFormatUnpack.cs',
+    'Gst.Audio_AudioEncoder.cs',
+    'Gst.Audio_AudioBaseSinkDiscontReason.cs',
+    'Gst.Audio_Gst.AudioSharp.AudioBaseSinkCustomSlavingCallbackNative.cs',
+    'Gst.Audio_AudioNoiseShapingMethod.cs',
+    'Gst.Audio_AudioFormat.cs',
+    'Gst.Audio_AudioRingBufferState.cs',
+    'Gst.Audio_AudioChannelMixer.cs',
+    'Gst.Audio_AudioDecoder.cs',
+    'Gst.Audio_AudioCdSrc.cs',
+    'Gst.Audio_AudioFlags.cs',
+    'Gst.Audio_AudioResamplerFlags.cs',
+    'Gst.Audio_AudioFilter.cs',
+    'Gst.Audio_AudioClock.cs',
+    'Gst.Audio_AudioLayout.cs',
+    'Gst.Audio_AudioBaseSink.cs',
+    'Gst.Audio_AudioQuantize.cs',
+    'Gst.Audio_AudioPackFlags.cs',
+    'Gst.Audio_Gst.AudioSharp.AudioClockGetTimeFuncNative.cs',
+    'Gst.Audio_IStreamVolume.cs',
+    'Gst.Audio_AudioRingBufferSpec.cs',
+    'Gst.Audio_AudioFormatFlags.cs',
+    'Gst.Audio_AudioDitherMethod.cs',
+    'Gst.Audio_AudioBaseSrc.cs',
+    'Gst.Audio_AudioChannelMixerFlags.cs',
+    'Gst.Audio_Constants.cs',
+    'Gst.Audio_AudioInfo.cs',
+    'Gst.Audio_AudioBaseSinkSlaveMethod.cs',
+    'Gst.Audio_AudioBaseSinkCustomSlavingCallback.cs',
+    'Gst.Audio_StreamVolumeAdapter.cs',
+    'Gst.Audio_AudioConverter.cs',
+    'Gst.Audio_AudioResamplerFilterMode.cs',
+    'Gst.Audio_AudioChannelPosition.cs',
+    'Gst.Audio_AudioResamplerFilterInterpolation.cs',
+    'Gst.Net_NetClientClock.cs',
+    'Gst.Net_Global.cs',
+    'Gst.Net_PtpClock.cs',
+    'Gst.Net_Gst.NetSharp.PtpStatisticsCallbackNative.cs',
+    'Gst.Net_NetControlMessageMeta.cs',
+    'Gst.Net_NtpClock.cs',
+    'Gst.Net_NetAddressMeta.cs',
+    'Gst.Net_NetTimePacket.cs',
+    'Gst.Net_Constants.cs',
+    'Gst.Net_PtpStatisticsCallback.cs',
+    'Gst.Net_NetTimeProvider.cs',
+    'Gst.Rtp_RTCPPacket.cs',
+    'Gst.Rtp_RTPPayload.cs',
+    'Gst.Rtp_Global.cs',
+    'Gst.Rtp_RTCPBuffer.cs',
+    'Gst.Rtp_RTCPFBType.cs',
+    'Gst.Rtp_RTCPType.cs',
+    'Gst.Rtp_RTCPSDESType.cs',
+    'Gst.Rtp_RTPProfile.cs',
+    'Gst.Rtp_RTPBufferFlags.cs',
+    'Gst.Rtp_RTPBaseDepayload.cs',
+    'Gst.Rtp_RTPPayloadInfo.cs',
+    'Gst.Rtp_RTPBasePayload.cs',
+    'Gst.Rtp_RTPBufferMapFlags.cs',
+    'Gst.Rtp_Constants.cs',
+    'Gst.Rtp_RTPBuffer.cs',
+    'Gst.Rtp_RTPBaseAudioPayload.cs'
+]
+
+source_gen = custom_target('gst_codegen',
+    input: raw_api_fname,
+    output: generated_sources,
+    command: [
+        generate_api,
+        '--api-raw', '@INPUT@',
+        '--gapi-fixup', gapi_fixup,
+        '--metadata', metadata_fname,
+        '--gapi-codegen', gapi_codegen,
+        '--extra-includes=' + glib_api_includes,
+        '--extra-includes=' + gio_api_includes,
+        '--glue-file', gluefile,
+        '--glue-includes', glueincludes,
+        '--out', meson.current_build_dir(),
+        '--files', ';'.join(generated_sources),
+        '--assembly-name', meson.project_name(),
+        '--glue-libname', 'libgstreamersharpglue-1.0.0.dll',
+    ],
+    depend_files: [raw_api_fname],
+    depends: codegen_dependencies)
+
diff --git a/sources/meson.build b/sources/meson.build
new file mode 100644 (file)
index 0000000..d6b10e0
--- /dev/null
@@ -0,0 +1,59 @@
+raw_api_fname = join_paths(meson.current_source_dir(), meson.project_name() + '-api.raw')
+metadata_fname = join_paths(meson.current_source_dir(), meson.project_name() + '.metadata')
+snk = join_paths(meson.current_source_dir(), '../', meson.project_name() + '.snk')
+
+glueincludes = 'gst/gst.h,gst/app/app.h,gst/audio/audio.h,gst/base/base.h,gst/controller/controller.h,gst/fft/fft.h,gst/net/net.h,gst/pbutils/gstaudiovisualizer.h,gst/pbutils/pbutils.h,gst/rtp/rtp.h,gst/rtsp/rtsp.h,gst/sdp/sdp.h,gst/tag/tag.h,gst/video/video.h'
+gluefile = join_paths(meson.current_build_dir(), 'generate.c')
+
+sources = [
+    'custom/Adapter.cs',
+    'custom/Application.cs',
+    'custom/AppSink.cs',
+    'custom/AppSrc.cs',
+    'custom/AudioFilter.cs',
+    'custom/Bin.cs',
+    'custom/Buffer.cs',
+    'custom/Bus.cs',
+    'custom/Caps.cs',
+    'custom/DeviceProvider.cs',
+    'custom/DynamicSignal.cs',
+    'custom/Element.cs',
+    'custom/FFTF32.cs',
+    'custom/Iterator.cs',
+    'custom/MapInfo.cs',
+    'custom/Message.cs',
+    'custom/MiniObject.cs',
+    'custom/NavigationAdapter.cs',
+    'custom/Object.cs',
+    'custom/Pad.cs',
+    'custom/Pipeline.cs',
+    'custom/TagList.cs',
+    'custom/Value.cs',
+    'custom/Version.cs',
+    'custom/VideoGLUploadMeta.cs'
+]
+
+subdir('generated')
+
+# Install with gacutil_install.py from gtk-sharp.
+gst_sharp = library('gstreamer-sharp', source_gen, sources,
+        cs_args: ['-nowarn:169', '-nowarn:108', '-nowarn:114', '-unsafe',
+            '-keyfile:' + snk],
+        dependencies: [glib_sharp_dep, gio_sharp_dep])
+
+gluegen = custom_target('gluegen',
+        input: raw_api_fname,
+        output: 'generate.c',
+        command: [generate_api, '--fakeglue'],
+        depends: [source_gen])
+
+library('gstreamersharpglue-1.0.0', gluegen, 'glue/gobject.c', dependencies: gst_deps)
+
+gst_sharp_dep = declare_dependency(dependencies: [glib_sharp_dep, gio_sharp_dep],
+        link_with: gst_sharp)
+meson.add_install_script(gacutil_install, meson.project_name(), gst_sharp.full_path())
+
+configure_file(
+    input: '../out/gstreamer-sharp.dll.config',
+    output: 'gstreamer-sharp.dll.config',
+    configuration: configuration_data())
diff --git a/subprojects/gtk-sharp.wrap b/subprojects/gtk-sharp.wrap
new file mode 100644 (file)
index 0000000..79226f6
--- /dev/null
@@ -0,0 +1,4 @@
+[wrap-git]
+directory=gtk-sharp
+url=https://github.com/openmedicus/gtk-sharp.git
+revision=master