mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-27 02:30:35 +00:00
4f846540cb
Windows supports various IPC methods but that's completely different form that of *nix from implementation point of view. So, instead of adding shared memory functionality to existing shm plugin, new WIN32 shared memory source/sink elements are implemented in this commit. Each videosink (server) and videosrc (client) pair will communicate using WIN32 named pipe and thus user should configure unique/proper pipe name to them (e.g., \\.\pipe\MyPipeName). Once connection is established, videosink will create named shared memory object per frame and client will be able to consume the object (i.e., memory mapped file handle) without additional copy operation. Note that implementations under "protocol" directory are almost pure C/C++ with WIN32 APIs except for a few defines and debug functions. So, applications can take only the protocol part so that the application can send/receive shared-memory object from/to the other end even if it's not an actual GStreamer element. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3441>
229 lines
18 KiB
Meson
229 lines
18 KiB
Meson
option('gst_play_tests', type: 'boolean', value: false,
|
|
description: 'Enable GstPlay tests that need network access')
|
|
|
|
# Feature options for plugins without external deps
|
|
option('accurip', type : 'feature', value : 'auto')
|
|
option('adpcmdec', type : 'feature', value : 'auto')
|
|
option('adpcmenc', type : 'feature', value : 'auto')
|
|
option('aiff', type : 'feature', value : 'auto')
|
|
option('asfmux', type : 'feature', value : 'auto')
|
|
option('audiobuffersplit', type : 'feature', value : 'auto')
|
|
option('audiofxbad', type : 'feature', value : 'auto')
|
|
option('audiolatency', type : 'feature', value : 'auto')
|
|
option('audiomixmatrix', type : 'feature', value : 'auto')
|
|
option('audiovisualizers', type : 'feature', value : 'auto')
|
|
option('autoconvert', type : 'feature', value : 'auto')
|
|
option('bayer', type : 'feature', value : 'auto')
|
|
option('camerabin2', type : 'feature', value : 'auto')
|
|
option('codecalpha', type : 'feature', value : 'auto')
|
|
option('codectimestamper', type : 'feature', value : 'auto')
|
|
option('coloreffects', type : 'feature', value : 'auto')
|
|
option('debugutils', type : 'feature', value : 'auto')
|
|
option('dvbsubenc', type : 'feature', value : 'auto')
|
|
option('dvbsuboverlay', type : 'feature', value : 'auto')
|
|
option('dvdspu', type : 'feature', value : 'auto')
|
|
option('faceoverlay', type : 'feature', value : 'auto')
|
|
option('festival', type : 'feature', value : 'auto')
|
|
option('fieldanalysis', type : 'feature', value : 'auto')
|
|
option('freeverb', type : 'feature', value : 'auto')
|
|
option('frei0r', type : 'feature', value : 'auto')
|
|
option('gaudieffects', type : 'feature', value : 'auto')
|
|
option('gdp', type : 'feature', value : 'auto')
|
|
option('geometrictransform', type : 'feature', value : 'auto')
|
|
option('id3tag', type : 'feature', value : 'auto')
|
|
option('inter', type : 'feature', value : 'auto')
|
|
option('interlace', type : 'feature', value : 'auto')
|
|
option('ivfparse', type : 'feature', value : 'auto')
|
|
option('ivtc', type : 'feature', value : 'auto')
|
|
option('jp2kdecimator', type : 'feature', value : 'auto')
|
|
option('jpegformat', type : 'feature', value : 'auto')
|
|
option('librfb', type : 'feature', value : 'auto')
|
|
option('midi', type : 'feature', value : 'auto')
|
|
option('mpegdemux', type : 'feature', value : 'auto')
|
|
option('mpegpsmux', type : 'feature', value : 'auto')
|
|
option('mpegtsdemux', type : 'feature', value : 'auto')
|
|
option('mpegtsmux', type : 'feature', value : 'auto')
|
|
option('mxf', type : 'feature', value : 'auto')
|
|
option('netsim', type : 'feature', value : 'auto')
|
|
option('onvif', type : 'feature', value : 'auto')
|
|
option('pcapparse', type : 'feature', value : 'auto')
|
|
option('pnm', type : 'feature', value : 'auto')
|
|
option('proxy', type : 'feature', value : 'auto')
|
|
option('rawparse', type : 'feature', value : 'auto')
|
|
option('removesilence', type : 'feature', value : 'auto')
|
|
option('rist', type : 'feature', value : 'auto')
|
|
option('rtmp2', type : 'feature', value : 'auto')
|
|
option('rtp', type : 'feature', value : 'auto')
|
|
option('sdp', type : 'feature', value : 'auto')
|
|
option('segmentclip', type : 'feature', value : 'auto')
|
|
option('siren', type : 'feature', value : 'auto')
|
|
option('smooth', type : 'feature', value : 'auto')
|
|
option('speed', type : 'feature', value : 'auto')
|
|
option('subenc', type : 'feature', value : 'auto')
|
|
option('switchbin', type : 'feature', value : 'auto')
|
|
option('timecode', type : 'feature', value : 'auto')
|
|
option('videofilters', type : 'feature', value : 'auto')
|
|
option('videoframe_audiolevel', type : 'feature', value : 'auto')
|
|
option('videoparsers', type : 'feature', value : 'auto')
|
|
option('videosignal', type : 'feature', value : 'auto')
|
|
option('vmnc', type : 'feature', value : 'auto')
|
|
option('y4m', type : 'feature', value : 'auto')
|
|
|
|
# Feature options for libraries that need external deps
|
|
option('opencv', type : 'feature', value : 'auto', description : 'OpenCV computer vision library support')
|
|
|
|
# Feature options for optional deps in plugins
|
|
option('wayland', type : 'feature', value : 'auto', description : 'Wayland plugin/library, support in the Vulkan plugin')
|
|
option('x11', type : 'feature', value : 'auto', description : 'X11 support in Vulkan, GL and rfb plugins')
|
|
|
|
# Feature options for plugins that need external deps
|
|
option('aes', type : 'feature', value : 'auto', description : 'AES encryption/decryption plugin')
|
|
option('aom', type : 'feature', value : 'auto', description : 'AOM AV1 video codec plugin')
|
|
option('avtp', type : 'feature', value : 'auto', description : 'Audio/Video Transport Protocol (AVTP) plugin')
|
|
option('amfcodec', type : 'feature', value : 'auto', description : 'AMD AMF codec plugin')
|
|
option('androidmedia', type : 'feature', value : 'auto', description : 'Video capture and codec plugins for Android')
|
|
option('applemedia', type : 'feature', value : 'auto', description : 'Video capture and codec access plugins for macOS and iOS')
|
|
option('asio', type : 'feature', value : 'auto', description : 'Steinberg Audio Streaming Input Output (ASIO) plugin')
|
|
option('asio-sdk-path', type : 'string', value : '', description : 'Full path to Steinberg Audio Streaming Input Output (ASIO) SDK')
|
|
option('assrender', type : 'feature', value : 'auto', description : 'ASS/SSA subtitle renderer plugin')
|
|
option('bluez', type : 'feature', value : 'auto', description : 'Bluetooth audio A2DP/AVDTP sink, AVDTP source plugin')
|
|
option('bs2b', type : 'feature', value : 'auto', description : 'Bauer stereophonic-to-binaural audio plugin')
|
|
option('bz2', type : 'feature', value : 'auto', description : 'bz2 stream encoder and decoder plugin')
|
|
option('chromaprint', type : 'feature', value : 'auto', description : 'Chromaprint fingerprint audio plugin')
|
|
option('closedcaption', type : 'feature', value : 'auto', description : 'Closed caption extractor, decoder, and overlay plugin')
|
|
option('colormanagement', type : 'feature', value : 'auto', description : 'Color management correction plugin')
|
|
option('curl', type : 'feature', value : 'auto', description : 'cURL network source and sink plugin')
|
|
option('curl-ssh2', type : 'feature', value : 'auto', description : 'cURL network source and sink plugin libssh2 support')
|
|
option('d3dvideosink', type : 'feature', value : 'auto', description : 'Direct3D video sink plugin')
|
|
option('d3d11', type : 'feature', value : 'auto', description : 'Direct3D11 plugin')
|
|
option('dash', type : 'feature', value : 'auto', description : 'DASH demuxer plugin')
|
|
option('dc1394', type : 'feature', value : 'auto', description : 'libdc1394 IIDC camera source plugin')
|
|
option('decklink', type : 'feature', value : 'auto', description : 'DeckLink audio/video source/sink plugin')
|
|
option('directfb', type : 'feature', value : 'auto', description : 'DirectFB video sink plugin')
|
|
option('directsound', type : 'feature', value : 'auto', description : 'Directsound audio source plugin')
|
|
option('directshow', type : 'feature', value : 'auto', description : 'Directshow audio/video plugins')
|
|
option('dtls', type : 'feature', value : 'auto', description : 'DTLS encoder and decoder plugin')
|
|
option('dts', type : 'feature', value : 'auto', description : 'DTS audio decoder plugin (GPL - only built if gpl option is also enabled!)')
|
|
option('dvb', type : 'feature', value : 'auto', description : 'DVB video bin and source plugin')
|
|
option('faac', type : 'feature', value : 'auto', description : 'Free AAC audio encoder plugin')
|
|
option('faad', type : 'feature', value : 'auto', description : 'Free AAC audio decoder plugin (GPL - only built if gpl option is also enabled!)')
|
|
option('fbdev', type : 'feature', value : 'auto', description : 'Framebuffer video sink plugin')
|
|
option('fdkaac', type : 'feature', value : 'auto', description : 'Fraunhofer AAC audio codec plugin')
|
|
option('flite', type : 'feature', value : 'auto', description : 'Flite speech synthesizer source plugin')
|
|
option('fluidsynth', type : 'feature', value : 'auto', description : 'Fluidsynth MIDI decoder plugin')
|
|
option('gl', type : 'feature', value : 'auto', description : 'GStreamer OpenGL integration support (used by various plugins)')
|
|
option('gme', type : 'feature', value : 'auto', description : 'libgme gaming console music file decoder plugin')
|
|
option('gs', type : 'feature', value : 'auto', description : 'Google Cloud Storage source and sink plugin')
|
|
option('gsm', type : 'feature', value : 'auto', description : 'GSM encoder/decoder plugin')
|
|
option('gtk3', type : 'feature', value : 'auto', description : 'GTK+ video sink plugin')
|
|
option('ipcpipeline', type : 'feature', value : 'auto', description : 'Inter-process communication plugin')
|
|
option('iqa', type : 'feature', value : 'auto', description : 'Image quality assessment plugin (AGPL - only built if gpl option is also enabled!)')
|
|
option('kate', type : 'feature', value : 'auto', description : 'Kate subtitle parser, tagger, and codec plugin')
|
|
option('kms', type : 'feature', value : 'auto', description : 'KMS video sink plugin')
|
|
option('ladspa', type : 'feature', value : 'auto', description : 'LADSPA plugin bridge')
|
|
option('ldac', type : 'feature', value : 'auto', description : 'LDAC bluetooth audio codec plugin')
|
|
option('libde265', type : 'feature', value : 'auto', description : 'HEVC/H.265 video decoder plugin')
|
|
option('openaptx', type : 'feature', value : 'auto', description : 'Open Source implementation of Audio Processing Technology codec (aptX) plugin')
|
|
option('lv2', type : 'feature', value : 'auto', description : 'LV2 audio plugin bridge')
|
|
option('mediafoundation', type : 'feature', value : 'auto', description : 'Microsoft Media Foundation plugin')
|
|
option('microdns', type : 'feature', value : 'auto', description : 'libmicrodns-based device provider')
|
|
option('modplug', type : 'feature', value : 'auto', description : 'ModPlug audio decoder plugin')
|
|
option('mpeg2enc', type : 'feature', value : 'auto', description : 'mpeg2enc video encoder plugin (GPL - only built if gpl option is also enabled!)')
|
|
option('mplex', type : 'feature', value : 'auto', description : 'mplex audio/video multiplexer plugin (GPL - only built if gpl option is also enabled!)')
|
|
option('msdk', type : 'feature', value : 'auto', description : 'Intel Media SDK video encoder/decoder plugin')
|
|
option('musepack', type : 'feature', value : 'auto', description : 'libmpcdec Musepack decoder plugin')
|
|
option('neon', type : 'feature', value : 'auto', description : 'NEON HTTP source plugin')
|
|
option('nvcodec', type : 'feature', value : 'auto', description : 'NVIDIA GPU codec plugin')
|
|
option('onnx', type : 'feature', value : 'auto', description : 'ONNX neural network plugin')
|
|
option('openal', type : 'feature', value : 'auto', description : 'OpenAL plugin')
|
|
option('openexr', type : 'feature', value : 'auto', description : 'OpenEXR plugin')
|
|
option('openh264', type : 'feature', value : 'auto', description : 'H.264 video codec plugin')
|
|
option('openjpeg', type : 'feature', value : 'auto', description : 'JPEG2000 image codec plugin')
|
|
option('openmpt', type : 'feature', value : 'auto', description : 'OpenMPT module music library plugin')
|
|
option('openni2', type : 'feature', value : 'auto', description : 'OpenNI2 library plugin')
|
|
option('opensles', type : 'feature', value : 'auto', description : 'OpenSL ES audio source/sink plugin')
|
|
option('opus', type : 'feature', value : 'auto', description : 'OPUS audio parser plugin')
|
|
option('qroverlay', type : 'feature', value : 'auto', description : 'Element to set random data on a qroverlay')
|
|
option('qsv', type : 'feature', value : 'auto', description : 'Intel Quick Sync Video plugin')
|
|
option('resindvd', type : 'feature', value : 'auto', description : 'Resin DVD playback plugin (GPL - only built if gpl option is also enabled!)')
|
|
option('rsvg', type : 'feature', value : 'auto', description : 'SVG overlayer and image decoder plugin')
|
|
option('rtmp', type : 'feature', value : 'auto', description : 'RTMP video network source and sink plugin')
|
|
option('sbc', type : 'feature', value : 'auto', description : 'SBC bluetooth audio codec plugin')
|
|
option('sctp', type : 'feature', value : 'auto', description : 'SCTP plugin')
|
|
option('shm', type : 'feature', value : 'auto', description : 'Shared memory source/sink plugin')
|
|
option('smoothstreaming', type : 'feature', value : 'auto', description : 'Microsoft Smooth Streaming demuxer plugin')
|
|
option('sndfile', type : 'feature', value : 'auto', description : 'libsndfile plugin')
|
|
option('soundtouch', type : 'feature', value : 'auto', description : 'Audio pitch controller & BPM detection plugin')
|
|
option('spandsp', type : 'feature', value : 'auto', description : 'Packet loss concealment audio plugin')
|
|
option('srt', type : 'feature', value : 'auto', description : 'Secure, Reliable, Transport client/server network source/sink plugin')
|
|
option('srtp', type : 'feature', value : 'auto', description : 'Secure RTP codec plugin')
|
|
option('svthevcenc', type : 'feature', value : 'auto', description : 'Scalable Video Technology for HEVC encoder plugin')
|
|
option('teletext', type : 'feature', value : 'auto', description : 'Teletext plugin')
|
|
option('tinyalsa', type : 'feature', value : 'auto', description : 'TinyALSA plugin')
|
|
option('transcode', type : 'feature', value : 'auto', description : 'Transcode plugin')
|
|
option('ttml', type : 'feature', value : 'auto', description : 'TTML subtitle parser and renderer plugin')
|
|
option('uvch264', type : 'feature', value : 'auto', description : 'UVC compliant H.264 camera source plugin')
|
|
option('va', type : 'feature', value : 'auto', description: 'VA-API new plugin')
|
|
option('voaacenc', type : 'feature', value : 'auto', description : 'AAC audio encoder plugin')
|
|
option('voamrwbenc', type : 'feature', value : 'auto', description : 'AMR-WB audio encoder plugin')
|
|
option('vulkan', type : 'feature', value : 'auto', description : 'Vulkan video sink plugin')
|
|
option('wasapi', type : 'feature', value : 'auto', description : 'Windows Audio Session API source/sink plugin')
|
|
option('wasapi2', type : 'feature', value : 'auto', description : 'Windows Audio Session API source/sink plugin with WinRT API')
|
|
option('webp', type : 'feature', value : 'auto', description : 'WebP image codec plugin')
|
|
option('webrtc', type : 'feature', value : 'auto', description : 'WebRTC audio/video network bin plugin')
|
|
option('webrtcdsp', type : 'feature', value : 'auto', description : 'Plugin with various audio filters provided by the WebRTC audio processing library')
|
|
option('wildmidi', type : 'feature', value : 'auto', description : 'WildMidi midi soft synth plugin')
|
|
option('wic', type : 'feature', value : 'auto', description : 'Windows Imaging Component plugin')
|
|
option('win32ipc', type : 'feature', value : 'auto', description : 'Windows IPC plugin')
|
|
option('winks', type : 'feature', value : 'auto', description : 'Windows Kernel Streaming video source plugin')
|
|
option('winscreencap', type : 'feature', value : 'auto', description : 'Windows Screen Capture video source plugin')
|
|
option('x265', type : 'feature', value : 'auto', description : 'HEVC/H.265 video encoder plugin (GPL - only built if gpl option is also enabled!)')
|
|
option('zbar', type : 'feature', value : 'auto', description : 'Barcode image scanner plugin using zbar library')
|
|
option('zxing', type : 'feature', value : 'auto', description : 'Barcode image scanner plugin using zxing-cpp library')
|
|
option('wpe', type : 'feature', value : 'auto', description : 'WPE Web browser plugin')
|
|
option('magicleap', type : 'feature', value : 'auto', description : 'Magic Leap platform support')
|
|
option('v4l2codecs', type : 'feature', value : 'auto', description : 'Video4Linux Stateless CODECs support')
|
|
option('isac', type : 'feature', value : 'auto', description : 'iSAC plugin')
|
|
|
|
# HLS plugin options
|
|
option('hls', type : 'feature', value : 'auto', description : 'HTTP Live Streaming plugin')
|
|
option('hls-crypto', type : 'combo', value : 'auto', choices : ['auto', 'nettle', 'libgcrypt', 'openssl'],
|
|
description: 'Crypto library to use for HLS plugin')
|
|
|
|
# SCTP plugin options
|
|
option('sctp-internal-usrsctp', type: 'feature', value : 'enabled',
|
|
description: 'Whether to use the bundled usrsctp library or the system one')
|
|
|
|
# MSDK plugin options
|
|
option('mfx_api', type : 'combo', choices : ['MSDK', 'oneVPL', 'auto'], value : 'auto',
|
|
description : 'Select MFX API to build against')
|
|
|
|
# QSV plugin options
|
|
option('mfx-modules-dir', type: 'string', value : '',
|
|
description : 'libmfx runtime module dir, linux only')
|
|
|
|
# License-related feature options
|
|
option('gpl', type: 'feature', value: 'disabled', yield: true,
|
|
description: 'Allow build plugins that have (A)GPL-licensed dependencies')
|
|
|
|
# Common feature options
|
|
option('examples', type : 'feature', value : 'auto', yield : true)
|
|
option('tests', type : 'feature', value : 'auto', yield : true)
|
|
option('introspection', type : 'feature', value : 'auto', yield : true, description : 'Generate gobject-introspection bindings')
|
|
option('nls', type : 'feature', value : 'auto', yield: true, description : 'Enable native language support (translations)')
|
|
option('orc', type : 'feature', value : 'auto', yield : true)
|
|
option('gobject-cast-checks', type : 'feature', value : 'auto', yield : true,
|
|
description: 'Enable run-time GObject cast checks (auto = enabled for development, disabled for stable releases)')
|
|
option('glib-asserts', type : 'feature', value : 'enabled', yield : true,
|
|
description: 'Enable GLib assertion (auto = enabled for development, disabled for stable releases)')
|
|
option('glib-checks', type : 'feature', value : 'enabled', yield : true,
|
|
description: 'Enable GLib checks such as API guards (auto = enabled for development, disabled for stable releases)')
|
|
option('extra-checks', type : 'feature', value : 'enabled', yield : true, description : 'Enable extra runtime checks')
|
|
|
|
# Common options
|
|
option('package-name', type : 'string', yield : true,
|
|
description : 'package name to use in plugins')
|
|
option('package-origin', type : 'string', value : 'Unknown package origin', yield : true,
|
|
description : 'package origin URL to use in plugins')
|
|
option('doc', type : 'feature', value : 'auto', yield: true,
|
|
description: 'Enable documentation.')
|