gstreamer/subprojects/gst-plugins-good/meson_options.txt
Nirbheek Chauhan 93be699ab2 meson: Add more qt options and eliminate all automagic
The qt5 and qt6 plugins will now correctly error out if you enable the
option, and you can also now explicitly ensure that wayland, x11,
eglfs support is actually functional by enabling the options. It was
too easy to build non-functional support for these.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4537>
2023-05-09 13:18:38 +00:00

130 lines
9 KiB
Meson

# Feature options for plugins without external deps
option('alpha', type : 'feature', value : 'auto')
option('apetag', type : 'feature', value : 'auto')
option('audiofx', type : 'feature', value : 'auto')
option('audioparsers', type : 'feature', value : 'auto')
option('auparse', type : 'feature', value : 'auto')
option('autodetect', type : 'feature', value : 'auto')
option('avi', type : 'feature', value : 'auto')
option('cutter', type : 'feature', value : 'auto')
option('debugutils', type : 'feature', value : 'auto')
option('deinterlace', type : 'feature', value : 'auto')
option('dtmf', type : 'feature', value : 'auto')
option('effectv', type : 'feature', value : 'auto')
option('equalizer', type : 'feature', value : 'auto')
option('flv', type : 'feature', value : 'auto')
option('flx', type : 'feature', value : 'auto')
option('goom', type : 'feature', value : 'auto')
option('goom2k1', type : 'feature', value : 'auto')
option('icydemux', type : 'feature', value : 'auto')
option('id3demux', type : 'feature', value : 'auto')
option('imagefreeze', type : 'feature', value : 'auto')
option('interleave', type : 'feature', value : 'auto')
option('isomp4', type : 'feature', value : 'auto')
option('law', type : 'feature', value : 'auto')
option('level', type : 'feature', value : 'auto')
option('matroska', type : 'feature', value : 'auto')
option('monoscope', type : 'feature', value : 'auto')
option('multifile', type : 'feature', value : 'auto')
option('multipart', type : 'feature', value : 'auto')
option('replaygain', type : 'feature', value : 'auto')
option('rtp', type : 'feature', value : 'auto')
option('rtpmanager', type : 'feature', value : 'auto')
option('rtsp', type : 'feature', value : 'auto')
option('shapewipe', type : 'feature', value : 'auto')
option('smpte', type : 'feature', value : 'auto')
option('spectrum', type : 'feature', value : 'auto')
option('udp', type : 'feature', value : 'auto')
option('videobox', type : 'feature', value : 'auto')
option('videocrop', type : 'feature', value : 'auto')
option('videofilter', type : 'feature', value : 'auto')
option('videomixer', type : 'feature', value : 'auto')
option('wavenc', type : 'feature', value : 'auto')
option('wavparse', type : 'feature', value : 'auto')
option('xingmux', type : 'feature', value : 'auto')
option('y4m', type : 'feature', value : 'auto')
# Feature options for plugins with external deps
option('adaptivedemux2', type : 'feature', value : 'auto', description : '2nd generation adaptive demuxer plugin')
option('aalib', type : 'feature', value : 'auto', description : 'aalib text console video sink plugin')
option('amrnb', type : 'feature', value : 'auto', description : 'Adaptive Multi-Rate Narrow-Band audio codec plugin')
option('amrwbdec', type : 'feature', value : 'auto', description : 'Adaptive Multi-Rate Wide-Band audio decoder plugin')
option('bz2', type : 'feature', value : 'auto', description : 'libbz2 support in the matroska plugin')
option('cairo', type : 'feature', value : 'auto', description : 'Cairo overlay plugin')
option('directsound', type : 'feature', value : 'auto', description : 'Directsound audio source/sink plugin')
option('dv', type : 'feature', value : 'auto', description : 'Digital video decoder and demuxer plugin')
option('dv1394', type : 'feature', value : 'auto', description : 'Digital IEEE1394 interface video source plugin')
option('flac', type : 'feature', value : 'auto', description : 'FLAC audio codec plugin')
option('gdk-pixbuf', type : 'feature', value : 'auto', description : 'gdk-pixbuf image decoder, overlay, and sink plugin')
option('gtk3', type : 'feature', value : 'auto', description : 'GTK+ video sink plugin')
option('jack', type : 'feature', value : 'auto', description : 'JACK audio source/sink plugin')
option('jpeg', type : 'feature', value : 'auto', description : 'JPEG image codec plugin')
option('lame', type : 'feature', value : 'auto', description : 'LAME mp3 audio encoder plugin')
option('libcaca', type : 'feature', value : 'auto', description : 'libcaca text console video sink plugin')
option('mpg123', type : 'feature', value : 'auto', description : 'mpg123 mp3 audio decoder plugin')
option('oss', type : 'feature', value : 'auto', description : 'OSS audio source/sink plugin')
option('oss4', type : 'feature', value : 'auto', description : 'OSSv4 audio source/sink plugin')
option('osxaudio', type : 'feature', value : 'auto', description : 'macOS/iOS CoreAudio source/sink plugin')
option('osxvideo', type : 'feature', value : 'auto', description : 'macOS Cocoa video sink plugin')
option('png', type : 'feature', value : 'auto', description : 'PNG image codec plugin')
option('pulse', type : 'feature', value : 'auto', description : 'Pulseaudio audio source/sink plugin')
option('shout2', type : 'feature', value : 'auto', description : 'Shout-casting network sink plugin based on libshout2')
option('soup', type : 'feature', value : 'auto', description : 'libsoup HTTP client source/sink plugin')
option('speex', type : 'feature', value : 'auto', description : 'Speex audio codec plugin')
option('taglib', type : 'feature', value : 'auto', description : 'Tag-writing plugin based on taglib')
option('twolame', type : 'feature', value : 'auto', description : 'twolame mp2 audio encoder plugin')
option('vpx', type : 'feature', value : 'auto', description : 'VP8 and VP9 video codec plugin')
option('waveform', type : 'feature', value : 'auto', description : 'Windows waveform audio sink plugin')
option('wavpack', type : 'feature', value : 'auto', description : 'Wavpack audio codec plugin')
# HLS plugin options
option('hls-crypto', type : 'combo', value : 'auto', choices : ['auto', 'nettle', 'libgcrypt', 'openssl'],
description: 'Crypto library to use for HLS plugin')
# rpicamsrc plugin options
option('rpicamsrc', type : 'feature', value : 'auto', description : 'Raspberry Pi camera module plugin')
option('rpi-header-dir', type : 'string', value : '/opt/vc/include', description : 'Directory where VideoCore/MMAL headers and bcm_host.h can be found')
option('rpi-lib-dir', type : 'string', value : '/opt/vc/lib', description : 'Directory where VideoCore/MMAL libraries can be found')
# Qt plugin options
option('qt-method', type: 'combo', value: 'auto', choices: ['auto', 'pkg-config', 'qmake'],
description: 'Method to use to find Qt')
option('qt-egl', type: 'feature', value: 'auto', description: 'EGLFS support in the Qt plugins')
option('qt-wayland', type: 'feature', value: 'auto', description: 'Wayland support in the Qt plugins')
option('qt-x11', type: 'feature', value: 'auto', description: 'Wayland support in the Qt plugins')
option('qt5', type : 'feature', value : 'auto', yield : true, description : 'Qt5 QML video sink plugin')
option('qt6', type : 'feature', value : 'auto', yield : true, description : 'Qt6 QML video sink plugin')
# ximagesrc plugin options
option('ximagesrc', type : 'feature', value : 'auto', description : 'X11 ximagesrc plugin')
option('ximagesrc-xshm', type : 'feature', value : 'auto', description : 'X11 ximagesrc plugin (XSHM support)')
option('ximagesrc-xfixes', type : 'feature', value : 'auto', description : 'X11 ximagesrc plugin (XFixes support)')
option('ximagesrc-xdamage', type : 'feature', value : 'auto', description : 'X11 ximagesrc plugin (XDamage support)')
# v4l2 plugin options
option('v4l2', type : 'feature', value : 'auto', description : 'Build video4linux2 source/sink plugin')
option('v4l2-probe', type : 'boolean', value : true, description : 'Probe v4l2 devices when the v4l2 plugin is loaded')
option('v4l2-libv4l2', type : 'feature', value : 'auto', description : 'Use libv4l2 for some obscure format conversions')
option('v4l2-gudev', type : 'feature', value : 'auto', description : 'Use libgudev for probing v4l2 devices')
# Common feature options
option('examples', type : 'feature', value : 'auto', yield : true)
option('tests', type : 'feature', value : 'auto', yield : true)
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('asm', type : 'feature', value : 'auto', yield : true)
# 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.')