summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2016-08-12 21:21:45 +0530
committerTim-Philipp Müller <tim@centricular.com>2016-08-20 11:35:54 +0100
commit42af2d66d8e4aa73c38be07c8460397adf21ce30 (patch)
tree59b54f11f5aacc7ca331b913a6e2c30260865873
parent7e2b68fe2f22b4f12d876aa9385f594244a631b8 (diff)
Add support for Meson as alternative/parallel build system
https://github.com/mesonbuild/meson With contributions from: Tim-Philipp Müller <tim@centricular.com> Matej Knopp <matej.knopp@gmail.com> Jussi Pakkanen <jpakkane@gmail.com> (original port) Highlights of the features provided are: * Faster builds on Linux (~40-50% faster) * The ability to build with MSVC on Windows * Generate Visual Studio project files * Generate XCode project files * Much faster builds on Windows (on-par with Linux) * Seriously fast configure and building on embedded ... and many more. For more details see: http://blog.nirbheek.in/2016/05/gstreamer-and-meson-new-hope.html http://blog.nirbheek.in/2016/07/building-and-developing-gstreamer-using.html Building with Meson should work on both Linux and Windows, but may need a few more tweaks on other operating systems.
-rw-r--r--.gitignore4
-rw-r--r--config.h.meson699
-rw-r--r--ext/assrender/meson.build13
-rw-r--r--ext/bz2/meson.build18
-rw-r--r--ext/chromaprint/meson.build12
-rw-r--r--ext/curl/meson.build24
-rw-r--r--ext/dash/meson.build20
-rw-r--r--ext/directfb/meson.build12
-rw-r--r--ext/dtls/meson.build25
-rw-r--r--ext/dts/meson.build17
-rw-r--r--ext/faac/meson.build12
-rw-r--r--ext/faad/meson.build21
-rw-r--r--ext/flite/meson.build30
-rw-r--r--ext/fluidsynth/meson.build12
-rw-r--r--ext/hls/meson.build38
-rw-r--r--ext/kate/meson.build24
-rw-r--r--ext/libde265/meson.build17
-rw-r--r--ext/libmms/meson.build13
-rw-r--r--ext/meson.build72
-rw-r--r--ext/mpg123/meson.build16
-rw-r--r--ext/openh264/meson.build20
-rw-r--r--ext/openjpeg/meson.build33
-rw-r--r--ext/opus/meson.build20
-rw-r--r--ext/resindvd/meson.build27
-rw-r--r--ext/rsvg/meson.build18
-rw-r--r--ext/rtmp/meson.build18
-rw-r--r--ext/sbc/meson.build18
-rw-r--r--ext/schroedinger/meson.build20
-rw-r--r--ext/smoothstreaming/meson.build20
-rw-r--r--ext/soundtouch/meson.build32
-rw-r--r--ext/spandsp/meson.build22
-rw-r--r--ext/srtp/meson.build34
-rwxr-xr-xext/srtp/srtp_mkenum.py55
-rw-r--r--ext/voaacenc/meson.build15
-rw-r--r--ext/webp/meson.build18
-rw-r--r--ext/x265/meson.build11
-rw-r--r--ext/zbar/meson.build11
-rw-r--r--gst-libs/gst/adaptivedemux/meson.build14
-rw-r--r--gst-libs/gst/audio/meson.build19
-rw-r--r--gst-libs/gst/base/meson.build18
-rw-r--r--gst-libs/gst/basecamerabinsrc/meson.build26
-rw-r--r--gst-libs/gst/codecparsers/meson.build54
-rw-r--r--gst-libs/gst/gl/gstglconfig.h.meson40
-rw-r--r--gst-libs/gst/gl/meson.build92
-rw-r--r--gst-libs/gst/insertbin/meson.build19
-rwxr-xr-xgst-libs/gst/interfaces/build_mkenum.py55
-rw-r--r--gst-libs/gst/interfaces/meson.build33
-rw-r--r--gst-libs/gst/meson.build21
-rw-r--r--gst-libs/gst/mpegts/meson.build49
-rwxr-xr-xgst-libs/gst/mpegts/mpegts_enum.py57
-rw-r--r--gst-libs/gst/player/meson.build41
-rw-r--r--gst-libs/gst/uridownloader/meson.build25
-rw-r--r--gst-libs/gst/video/meson.build24
-rw-r--r--gst-libs/meson.build1
-rw-r--r--gst/accurip/meson.build12
-rw-r--r--gst/adpcmdec/meson.build12
-rw-r--r--gst/adpcmenc/meson.build12
-rw-r--r--gst/aiff/meson.build12
-rw-r--r--gst/asfmux/meson.build16
-rw-r--r--gst/audiobuffer/meson.build12
-rw-r--r--gst/audiofxbad/meson.build13
-rw-r--r--gst/audiomixer/meson.build33
-rw-r--r--gst/audiovisualizers/meson.build16
-rw-r--r--gst/autoconvert/meson.build14
-rw-r--r--gst/bayer/meson.build33
-rw-r--r--gst/camerabin2/meson.build18
-rw-r--r--gst/cdxaparse/meson.build13
-rw-r--r--gst/coloreffects/meson.build14
-rw-r--r--gst/compositor/meson.build33
-rw-r--r--gst/dataurisrc/meson.build12
-rw-r--r--gst/dccp/meson.build17
-rw-r--r--gst/debugutils/meson.build27
-rw-r--r--gst/dvbsuboverlay/meson.build13
-rw-r--r--gst/dvdspu/meson.build16
-rw-r--r--gst/faceoverlay/meson.build12
-rw-r--r--gst/festival/meson.build12
-rw-r--r--gst/fieldanalysis/meson.build31
-rw-r--r--gst/freeverb/meson.build12
-rw-r--r--gst/frei0r/meson.build15
-rw-r--r--gst/games/meson.build13
-rw-r--r--gst/gaudieffects/meson.build38
-rw-r--r--gst/gdp/meson.build15
-rw-r--r--gst/geometrictransform/meson.build31
-rw-r--r--gst/hdvparse/meson.build12
-rw-r--r--gst/id3tag/meson.build13
-rw-r--r--gst/inter/meson.build19
-rw-r--r--gst/interlace/meson.build12
-rw-r--r--gst/ivfparse/meson.build12
-rw-r--r--gst/ivtc/meson.build13
-rw-r--r--gst/jp2kdecimator/meson.build13
-rw-r--r--gst/jpegformat/meson.build14
-rw-r--r--gst/librfb/meson.build16
-rw-r--r--gst/meson.build94
-rw-r--r--gst/midi/meson.build13
-rw-r--r--gst/mixmatrix/meson.build12
-rw-r--r--gst/mpeg1sys/meson.build14
-rw-r--r--gst/mpegdemux/meson.build14
-rw-r--r--gst/mpegpsmux/meson.build16
-rw-r--r--gst/mpegtsdemux/meson.build18
-rw-r--r--gst/mpegtsmux/meson.build18
-rw-r--r--gst/mve/meson.build20
-rw-r--r--gst/mxf/meson.build28
-rw-r--r--gst/nuvdemux/meson.build12
-rw-r--r--gst/onvif/meson.build14
-rw-r--r--gst/overlay/meson.build12
-rw-r--r--gst/patchdetect/meson.build12
-rw-r--r--gst/pcapparse/meson.build14
-rw-r--r--gst/pnm/meson.build15
-rw-r--r--gst/rawparse/meson.build19
-rw-r--r--gst/real/meson.build14
-rw-r--r--gst/removesilence/meson.build13
-rw-r--r--gst/rtjpeg/meson.build15
-rw-r--r--gst/sdi/meson.build13
-rw-r--r--gst/sdp/meson.build15
-rw-r--r--gst/segmentclip/meson.build15
-rw-r--r--gst/siren/meson.build20
-rw-r--r--gst/smooth/meson.build12
-rw-r--r--gst/speed/meson.build12
-rw-r--r--gst/stereo/meson.build12
-rw-r--r--gst/subenc/meson.build14
-rw-r--r--gst/tta/meson.build14
-rw-r--r--gst/vbidec/meson.build14
-rw-r--r--gst/videofilters/meson.build15
-rw-r--r--gst/videoframe_audiolevel/meson.build12
-rw-r--r--gst/videomeasure/meson.build14
-rw-r--r--gst/videoparsers/meson.build23
-rw-r--r--gst/videosignal/meson.build15
-rw-r--r--gst/vmnc/meson.build12
-rw-r--r--gst/y4m/meson.build12
-rw-r--r--gst/yadif/meson.build14
-rw-r--r--meson.build350
-rw-r--r--meson_options.txt1
-rw-r--r--pkgconfig/meson.build33
-rw-r--r--sys/bluez/meson.build33
-rw-r--r--sys/d3dvideosink/meson.build16
-rw-r--r--sys/directsound/meson.build16
-rw-r--r--sys/dvb/meson.build38
-rw-r--r--sys/meson.build30
-rw-r--r--sys/wasapi/meson.build18
-rw-r--r--sys/winks/meson.build23
-rw-r--r--sys/winscreencap/meson.build18
141 files changed, 3951 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 40ca6dfe7..ea7dc5008 100644
--- a/.gitignore
+++ b/.gitignore
@@ -85,3 +85,7 @@ Build
/sys/bluez/bluez.c
/sys/bluez/bluez.h
+
+# Meson
+/build
+/subprojects
diff --git a/config.h.meson b/config.h.meson
new file mode 100644
index 000000000..551e4315c
--- /dev/null
+++ b/config.h.meson
@@ -0,0 +1,699 @@
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define if building universal (internal helper macro) */
+#mesondefine AC_APPLE_UNIVERSAL_BUILD
+
+/* Default audio sink */
+#mesondefine DEFAULT_AUDIOSINK
+
+/* Default audio source */
+#mesondefine DEFAULT_AUDIOSRC
+
+/* Default video sink */
+#mesondefine DEFAULT_VIDEOSINK
+
+/* Default video source */
+#mesondefine DEFAULT_VIDEOSRC
+
+/* Default visualizer */
+#mesondefine DEFAULT_VISUALIZER
+
+/* Disable Orc */
+#mesondefine DISABLE_ORC
+
+/* Define if an old libdts is used */
+#mesondefine DTS_OLD
+
+/* Define to 1 if translation of program messages to the user's native
+ language is requested. */
+#mesondefine ENABLE_NLS
+
+/* The x in 2.x */
+#mesondefine FAAD2_MINOR_VERSION
+
+/* Define if AAC is using new api prefix */
+#mesondefine FAAD_IS_NEAAC
+
+/* gettext package name */
+#mesondefine GETTEXT_PACKAGE
+
+/* The GIO library directory. */
+#mesondefine GIO_LIBDIR
+
+/* The GIO modules directory. */
+#mesondefine GIO_MODULE_DIR
+
+/* Define if GSM header in gsm/ subdir */
+#mesondefine GSM_HEADER_IN_SUBDIR
+
+/* GStreamer API Version */
+#mesondefine GST_API_VERSION
+
+/* Extra platform specific plugin suffix */
+#mesondefine GST_EXTRA_MODULE_SUFFIX
+
+/* Defined if gcov is enabled to force a rebuild due to config.h changing */
+#mesondefine GST_GCOV_ENABLED
+
+/* EGL module name */
+#mesondefine GST_GL_LIBEGL_MODULE_NAME
+
+/* GLES2 module name */
+#mesondefine GST_GL_LIBGLESV2_MODULE_NAME
+
+/* OpenGL module name */
+#mesondefine GST_GL_LIBGL_MODULE_NAME
+
+/* Defined when registry scanning through fork is unsafe */
+#mesondefine GST_HAVE_UNSAFE_FORK
+
+/* Default errorlevel to use */
+#mesondefine GST_LEVEL_DEFAULT
+
+/* GStreamer license */
+#mesondefine GST_LICENSE
+
+/* mjpegtools API evolution */
+#mesondefine GST_MJPEGTOOLS_API
+
+/* package name in plugins */
+#mesondefine GST_PACKAGE_NAME
+
+/* package origin */
+#mesondefine GST_PACKAGE_ORIGIN
+
+/* GStreamer package release date/time for plugins as YYYY-MM-DD */
+#mesondefine GST_PACKAGE_RELEASE_DATETIME
+
+/* Define if static plugins should be built */
+#mesondefine GST_PLUGIN_BUILD_STATIC
+
+/* Define to enable Windows ACM library (used by acm). */
+#mesondefine HAVE_ACM
+
+/* Define to enable Android Media (used by androidmedia). */
+#mesondefine HAVE_ANDROID_MEDIA
+
+/* Define to enable AirPort Express Wireless sink (used by apexsink). */
+#mesondefine HAVE_APEXSINK
+
+/* Define to enable Apple video (used by applemedia). */
+#mesondefine HAVE_APPLE_MEDIA
+
+/* Define to enable ASS/SSA renderer (used by assrender). */
+#mesondefine HAVE_ASSRENDER
+
+/* Define to enable AVC Video Services (used by avcsrc). */
+#mesondefine HAVE_AVC
+
+/* Define if building with AVFoundation */
+#mesondefine HAVE_AVFOUNDATION
+
+/* Define to enable Bluez (used by bluez). */
+#mesondefine HAVE_BLUEZ
+
+/* Define to enable bz2 library (used by bz2). */
+#mesondefine HAVE_BZ2
+
+/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
+ CoreFoundation framework. */
+#mesondefine HAVE_CFLOCALECOPYCURRENT
+
+/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
+ the CoreFoundation framework. */
+#mesondefine HAVE_CFPREFERENCESCOPYAPPVALUE
+
+/* Define to enable chromaprint (used by chromaprint). */
+#mesondefine HAVE_CHROMAPRINT
+
+/* Define if the target CPU is an Alpha */
+#mesondefine HAVE_CPU_ALPHA
+
+/* Define if the target CPU is an ARM */
+#mesondefine HAVE_CPU_ARM
+
+/* Define if the target CPU is a CRIS */
+#mesondefine HAVE_CPU_CRIS
+
+/* Define if the target CPU is a CRISv32 */
+#mesondefine HAVE_CPU_CRISV32
+
+/* Define if the target CPU is a HPPA */
+#mesondefine HAVE_CPU_HPPA
+
+/* Define if the target CPU is an x86 */
+#mesondefine HAVE_CPU_I386
+
+/* Define if the target CPU is a IA64 */
+#mesondefine HAVE_CPU_IA64
+
+/* Define if the target CPU is a M68K */
+#mesondefine HAVE_CPU_M68K
+
+/* Define if the target CPU is a MIPS */
+#mesondefine HAVE_CPU_MIPS
+
+/* Define if the target CPU is a PowerPC */
+#mesondefine HAVE_CPU_PPC
+
+/* Define if the target CPU is a 64 bit PowerPC */
+#mesondefine HAVE_CPU_PPC64
+
+/* Define if the target CPU is a S390 */
+#mesondefine HAVE_CPU_S390
+
+/* Define if the target CPU is a SPARC */
+#mesondefine HAVE_CPU_SPARC
+
+/* Define if the target CPU is a x86_64 */
+#mesondefine HAVE_CPU_X86_64
+
+/* Define to enable Curl plugin (used by curl). */
+#mesondefine HAVE_CURL
+
+/* Define to enable daala (used by daala). */
+#mesondefine HAVE_DAALA
+
+/* Define to enable DASH plug-in (used by dash). */
+#mesondefine HAVE_DASH
+
+/* Define to enable libdc1394 (used by dc1394). */
+#mesondefine HAVE_DC1394
+
+/* Define if the GNU dcgettext() function is already present or preinstalled.
+ */
+#mesondefine HAVE_DCGETTEXT
+
+/* Define to enable decklink (used by decklink). */
+#mesondefine HAVE_DECKLINK
+
+/* Define to enable Direct3D plug-in (used by direct3dsink). */
+#mesondefine HAVE_DIRECT3D
+
+/* Define to enable DirectDraw plug-in (used by directdrawsink). */
+#mesondefine HAVE_DIRECTDRAW
+
+/* Define to enable directfb (used by dfbvideosink ). */
+#mesondefine HAVE_DIRECTFB
+
+/* Define to enable DirectSound (used by directsoundsrc). */
+#mesondefine HAVE_DIRECTSOUND
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#mesondefine HAVE_DLFCN_H
+
+/* define for working do while(0) macros */
+#mesondefine HAVE_DOWHILE_MACROS
+
+/* Define to enable dts library (used by dtsdec). */
+#mesondefine HAVE_DTS
+
+/* Define to enable DVB Source (used by dvb). */
+#mesondefine HAVE_DVB
+
+/* Define to enable building of experimental plug-ins. */
+#mesondefine HAVE_EXPERIMENTAL
+
+/* Define to enable building of plug-ins with external deps. */
+#mesondefine HAVE_EXTERNAL
+
+/* Define to enable AAC encoder plug-in (used by faac). */
+#mesondefine HAVE_FAAC
+
+/* Define to enable AAC decoder plug-in (used by faad). */
+#mesondefine HAVE_FAAD
+
+/* Define to enable linux framebuffer (used by fbdevsink). */
+#mesondefine HAVE_FBDEV
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#mesondefine HAVE_FCNTL_H
+
+/* FIONREAD ioctl found in sys/filio.h */
+#mesondefine HAVE_FIONREAD_IN_SYS_FILIO
+
+/* FIONREAD ioctl found in sys/ioclt.h */
+#mesondefine HAVE_FIONREAD_IN_SYS_IOCTL
+
+/* Define to enable Flite plugin (used by flite). */
+#mesondefine HAVE_FLITE
+
+/* Define to enable fluidsynth (used by fluidsynth). */
+#mesondefine HAVE_FLUIDSYNTH
+
+/* Define to 1 if you have the `getpagesize' function. */
+#mesondefine HAVE_GETPAGESIZE
+
+/* Define if the GNU gettext() function is already present or preinstalled. */
+#mesondefine HAVE_GETTEXT
+
+/* Define to enable gl elements (used by gl). */
+#mesondefine HAVE_GL
+
+/* Define to 1 if the system has the type `GLchar'. */
+#mesondefine HAVE_GLCHAR
+
+/* Define to 1 if the system has the type `GLeglImageOES'. */
+#mesondefine HAVE_GLEGLIMAGEOES
+
+/* Define to 1 if the system has the type `GLintptr'. */
+#mesondefine HAVE_GLINTPTR
+
+/* Define to 1 if the system has the type `GLsizeiptr'. */
+#mesondefine HAVE_GLSIZEIPTR
+
+/* Define to enable gme decoder (used by gme). */
+#mesondefine HAVE_GME
+
+/* Define to 1 if you have the `gmtime_r' function. */
+#mesondefine HAVE_GMTIME_R
+
+/* Use graphene */
+#mesondefine HAVE_GRAPHENE
+
+/* Define to enable GSettings plugin (used by gsettings). */
+#mesondefine HAVE_GSETTINGS
+
+/* Define to enable GSM library (used by gsmenc gsmdec). */
+#mesondefine HAVE_GSM
+
+/* Define if gudev is installed */
+#mesondefine HAVE_GUDEV
+
+/* Define to 1 if you have the <highgui.h> header file. */
+#mesondefine HAVE_HIGHGUI_H
+
+/* Define to enable http live streaming plugin (used by hls). */
+#mesondefine HAVE_HLS
+
+/* Define if you have the iconv() function and it works. */
+#mesondefine HAVE_ICONV
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#mesondefine HAVE_INTTYPES_H
+
+/* Define if building for Apple iOS */
+#mesondefine HAVE_IOS
+
+/* Use libjpeg */
+#mesondefine HAVE_JPEG
+
+/* Define to enable Kate (used by kate). */
+#mesondefine HAVE_KATE
+
+/* Define to enable ladspa (used by ladspa). */
+#mesondefine HAVE_LADSPA
+
+/* Define if libgcrypt is available */
+#mesondefine HAVE_LIBGCRYPT
+
+/* Define if gme 0.5.6 or newer is available */
+#mesondefine HAVE_LIBGME_ACCURACY
+
+/* Define to enable mms protocol library (used by libmms). */
+#mesondefine HAVE_LIBMMS
+
+/* Define to 1 if you have the `nsl' library (-lnsl). */
+#mesondefine HAVE_LIBNSL
+
+/* Define to 1 if you have the `socket' library (-lsocket). */
+#mesondefine HAVE_LIBSOCKET
+
+/* Define if libusb 1.x is installed */
+#mesondefine HAVE_LIBUSB
+
+/* Define to enable libvisual visualization library (used by libvisual). */
+#mesondefine HAVE_LIBVISUAL
+
+/* Define to enable Linear Systems SDI plugin (used by linsys). */
+#mesondefine HAVE_LINSYS
+
+/* Define if we have liblrdf */
+#mesondefine HAVE_LRDF
+
+/* Define to enable lv2 (used by lv2). */
+#mesondefine HAVE_LV2
+
+/* Define to 1 if you have the <memory.h> header file. */
+#mesondefine HAVE_MEMORY_H
+
+/* Define to enable libmimic library (used by mimic). */
+#mesondefine HAVE_MIMIC
+
+/* Define to 1 if you have a working `mmap' system call. */
+#mesondefine HAVE_MMAP
+
+/* Define to enable modplug (used by modplug). */
+#mesondefine HAVE_MODPLUG
+
+/* Define to enable mpeg2enc (used by mpeg2enc). */
+#mesondefine HAVE_MPEG2ENC
+
+/* Define to enable mpg123 audio decoder (used by mpg123). */
+#mesondefine HAVE_MPG123
+
+/* Define to enable mplex (used by mplex). */
+#mesondefine HAVE_MPLEX
+
+/* Define to 1 if you have the <msacm.h> header file. */
+#mesondefine HAVE_MSACM_H
+
+/* Define to enable musepackdec (used by musepack). */
+#mesondefine HAVE_MUSEPACK
+
+/* Define to enable MythTV client plugins (used by mythtvsrc). */
+#mesondefine HAVE_MYTHTV
+
+/* Define to enable nas plug-in (used by nassink). */
+#mesondefine HAVE_NAS
+
+/* Define to enable neon http client plugins (used by neonhttpsrc). */
+#mesondefine HAVE_NEON
+
+/* Define to 1 if you have the <netinet/in.h> header file. */
+#mesondefine HAVE_NETINET_IN_H
+
+/* Define to 1 if you have the <netinet/ip.h> header file. */
+#mesondefine HAVE_NETINET_IP_H
+
+/* Define to 1 if you have the <netinet/tcp.h> header file. */
+#mesondefine HAVE_NETINET_TCP_H
+
+/* Define if nettle is available */
+#mesondefine HAVE_NETTLE
+
+/* Define to enable ofa plugins (used by ofa). */
+#mesondefine HAVE_OFA
+
+/* Define to enable OpenAL plugin (used by openal). */
+#mesondefine HAVE_OPENAL
+
+/* Define to enable opencv plugins (used by opencv). */
+#mesondefine HAVE_OPENCV
+
+/* Define to 1 if you have the <opencv2/highgui/highgui_c.h> header file. */
+#mesondefine HAVE_OPENCV2_HIGHGUI_HIGHGUI_C_H
+
+/* Define to enable openexr library (used by openexr). */
+#mesondefine HAVE_OPENEXR
+
+/* Define to enable openjpeg library (used by openjpeg). */
+#mesondefine HAVE_OPENJPEG
+
+/* Define if OpenJPEG 1 is used */
+#mesondefine HAVE_OPENJPEG_1
+
+/* Define to enable openni2 library (used by openni2). */
+#mesondefine HAVE_OPENNI2
+
+/* Define to enable OpenSL ES (used by opensl). */
+#mesondefine HAVE_OPENSLES
+
+/* Define to enable opus (used by opus). */
+#mesondefine HAVE_OPUS
+
+/* Use Orc */
+#mesondefine HAVE_ORC
+
+/* Apple Mac OS X operating system detected */
+#mesondefine HAVE_OSX
+
+/* Define to enable OSX video (used by osxvideosrc). */
+#mesondefine HAVE_OSX_VIDEO
+
+/* Use libpng */
+#mesondefine HAVE_PNG
+
+/* Define to 1 if you have the <pthread.h> header file. */
+#mesondefine HAVE_PTHREAD_H
+
+/* Define to enable pvrvideosink (used by pvr). */
+#mesondefine HAVE_PVR
+
+/* Define to enable QuickTime wrapper (used by qtwrapper). */
+#mesondefine HAVE_QUICKTIME
+
+/* Define if RDTSC is available */
+#mesondefine HAVE_RDTSC
+
+/* Define to enable resindvd plugin (used by resindvd). */
+#mesondefine HAVE_RESINDVD
+
+/* Define to enable rsvg decoder (used by rsvg). */
+#mesondefine HAVE_RSVG
+
+/* Have RSVG 2.36.2 or newer */
+#mesondefine HAVE_RSVG_2_36_2
+
+/* Define to enable rtmp library (used by rtmp). */
+#mesondefine HAVE_RTMP
+
+/* Define to enable SBC bluetooth audio codec (used by sbc). */
+#mesondefine HAVE_SBC
+
+/* Define to enable Schroedinger video codec (used by schro). */
+#mesondefine HAVE_SCHRO
+
+/* Define to enable SDL plug-in (used by sdlvideosink sdlaudiosink). */
+#mesondefine HAVE_SDL
+
+/* Define to enable POSIX shared memory source and sink (used by shm). */
+#mesondefine HAVE_SHM
+
+/* Define to enable Smooth Streaming plug-in (used by smoothstreaming). */
+#mesondefine HAVE_SMOOTHSTREAMING
+
+/* Define to enable sndfile plug-in (used by sfdec sfenc). */
+#mesondefine HAVE_SNDFILE
+
+/* Define to enable sndio audio (used by sndio). */
+#mesondefine HAVE_SNDIO
+
+/* Define to enable soundtouch plug-in (used by soundtouch). */
+#mesondefine HAVE_SOUNDTOUCH
+
+/* Defined if the available libSoundTouch is >= 1.4 */
+#mesondefine HAVE_SOUNDTOUCH_1_4
+
+/* Define to enable Spandsp (used by spandsp). */
+#mesondefine HAVE_SPANDSP
+
+/* Define to enable spc decoder (used by spc). */
+#mesondefine HAVE_SPC
+
+/* Define to enable srtp library (used by srtp). */
+#mesondefine HAVE_SRTP
+
+/* Define if libssh2 is available */
+#mesondefine HAVE_SSH2
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#mesondefine HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#mesondefine HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#mesondefine HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#mesondefine HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#mesondefine HAVE_SYS_PARAM_H
+
+/* Define to 1 if you have the <sys/socket.h> header file. */
+#mesondefine HAVE_SYS_SOCKET_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#mesondefine HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#mesondefine HAVE_SYS_TIME_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#mesondefine HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <sys/utsname.h> header file. */
+#mesondefine HAVE_SYS_UTSNAME_H
+
+/* Define to enable Teletext decoder (used by teletextdec). */
+#mesondefine HAVE_TELETEXTDEC
+
+/* Define if libtiger is available */
+#mesondefine HAVE_TIGER
+
+/* Define to enable timidity midi soft synth plugin (used by timidity). */
+#mesondefine HAVE_TIMIDITY
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#mesondefine HAVE_UNISTD_H
+
+/* Define to enable UVC H264 (used by uvch264). */
+#mesondefine HAVE_UVCH264
+
+/* Define if valgrind should be used */
+#mesondefine HAVE_VALGRIND
+
+/* Define to enable Video CD (used by vcdsrc). */
+#mesondefine HAVE_VCD
+
+/* Define to enable VDPAU (used by vdpau). */
+#mesondefine HAVE_VDPAU
+
+/* Define if building with VideoToolbox */
+#mesondefine HAVE_VIDEOTOOLBOX
+
+/* Define if building with VideoToolbox >= 10.9.6 */
+#mesondefine HAVE_VIDEOTOOLBOX_10_9_6
+
+/* Define to enable vo-aacenc library (used by vo-aacenc). */
+#mesondefine HAVE_VOAACENC
+
+/* Define to enable vo-amrwbenc library (used by vo-amrwbenc). */
+#mesondefine HAVE_VOAMRWBENC
+
+/* Define to enable WASAPI plug-in (used by wasapi). */
+#mesondefine HAVE_WASAPI
+
+/* Define to enable wayland sink (used by wayland ). */
+#mesondefine HAVE_WAYLAND
+
+/* Define to enable WebP (used by webp ). */
+#mesondefine HAVE_WEBP
+
+/* Define to enable wildmidi midi soft synth plugin (used by wildmidi). */
+#mesondefine HAVE_WILDMIDI
+
+/* Have WildMidi 0.2.2 or earlier library */
+#mesondefine HAVE_WILDMIDI_0_2_2
+
+/* Defined if compiling for Windows */
+#mesondefine HAVE_WIN32
+
+/* Define to 1 if you have the <windows.h> header file. */
+#mesondefine HAVE_WINDOWS_H
+
+/* Define to enable Windows internet library (used by wininet). */
+#mesondefine HAVE_WININET
+
+/* Define to 1 if you have the <wininet.h> header file. */
+#mesondefine HAVE_WININET_H
+
+/* Define to enable Winks plug-in (used by winks). */
+#mesondefine HAVE_WINKS
+
+/* Define to enable winscreencap plug-in (used by winscreencap). */
+#mesondefine HAVE_WINSCREENCAP
+
+/* Define to 1 if you have the <winsock2.h> header file. */
+#mesondefine HAVE_WINSOCK2_H
+
+/* Define to 1 if you have the <ws2tcpip.h> header file. */
+#mesondefine HAVE_WS2TCPIP_H
+
+/* Define if you have X11 library */
+#mesondefine HAVE_X11
+
+/* Define to enable xvid plugins (used by xvid). */
+#mesondefine HAVE_XVID
+
+/* Define to enable ZBar barcode detector (used by zbar). */
+#mesondefine HAVE_ZBAR
+
+/* the host CPU */
+#mesondefine HOST_CPU
+
+/* library dir */
+#mesondefine LIBDIR
+
+/* directory in which the detected libvisual's plugins are located */
+#mesondefine LIBVISUAL_PLUGINSBASEDIR
+
+/* gettext locale dir */
+#mesondefine LOCALEDIR
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#mesondefine LT_OBJDIR
+
+/* Define if the old MusePack API is used */
+#mesondefine MPC_IS_OLD_API
+
+/* opencv install prefix */
+#mesondefine OPENCV_PREFIX
+
+/* Name of package */
+#mesondefine PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#mesondefine PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#mesondefine PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#mesondefine PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#mesondefine PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#mesondefine PACKAGE_URL
+
+/* Define to the version of this package. */
+#mesondefine PACKAGE_VERSION
+
+/* directory where plugins are located */
+#mesondefine PLUGINDIR
+
+/* The size of `char', as computed by sizeof. */
+#mesondefine SIZEOF_CHAR
+
+/* The size of `int', as computed by sizeof. */
+#mesondefine SIZEOF_INT
+
+/* The size of `long', as computed by sizeof. */
+#mesondefine SIZEOF_LONG
+
+/* The size of `short', as computed by sizeof. */
+#mesondefine SIZEOF_SHORT
+
+/* The size of `void*', as computed by sizeof. */
+#mesondefine SIZEOF_VOIDP
+
+/* Define to 1 if you have the ANSI C header files. */
+#mesondefine STDC_HEADERS
+
+/* the target CPU */
+#mesondefine TARGET_CPU
+
+/* Define location of timidity.cfg */
+#mesondefine TIMIDITY_CFG
+
+/* Use Mali FB EGL platform */
+#mesondefine USE_EGL_MALI_FB
+
+/* Use RPi platform */
+#mesondefine USE_EGL_RPI
+
+/* Version number of package */
+#mesondefine VERSION
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+ significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+# define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+# undef WORDS_BIGENDIAN
+# endif
+#endif
+
+/* Define to 1 if the X Window System is missing or not being used. */
+#mesondefine X_DISPLAY_MISSING
+
+/* We need at least WinXP SP2 for __stat64 */
+#mesondefine __MSVCRT_VERSION__
diff --git a/ext/assrender/meson.build b/ext/assrender/meson.build
new file mode 100644
index 000000000..7db70adf5
--- /dev/null
+++ b/ext/assrender/meson.build
@@ -0,0 +1,13 @@
+ass_dep = dependency('libass', version : '>= 0.10.2', required : false)
+
+if ass_dep.found()
+ gstassrender = library('gstassrender',
+ 'gstassrender.c',
+ c_args : gst_plugins_bad_args,
+ link_args : noseh_link_args,
+ include_directories : [configinc],
+ dependencies : [gstvideo_dep, ass_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/bz2/meson.build b/ext/bz2/meson.build
new file mode 100644
index 000000000..f80d787e5
--- /dev/null
+++ b/ext/bz2/meson.build
@@ -0,0 +1,18 @@
+bz2_sources = [
+ 'gstbz2.c',
+ 'gstbz2dec.c',
+ 'gstbz2enc.c',
+]
+
+bz2_dep = cc.find_library('bz2', required : false)
+
+if bz2_dep.found() and cc.has_header_symbol('bzlib.h', 'BZ2_bzlibVersion')
+ gstbz2 = library('gstbz2',
+ bz2_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstvideo_dep, bz2_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/chromaprint/meson.build b/ext/chromaprint/meson.build
new file mode 100644
index 000000000..265f4a630
--- /dev/null
+++ b/ext/chromaprint/meson.build
@@ -0,0 +1,12 @@
+chromaprint_dep = dependency('libchromaprint', required : false)
+
+if chromaprint_dep.found()
+ gstchromaprint = library('gstchromaprint',
+ 'gstchromaprint.c',
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstaudio_dep, chromaprint_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/curl/meson.build b/ext/curl/meson.build
new file mode 100644
index 000000000..bf9eb7e8d
--- /dev/null
+++ b/ext/curl/meson.build
@@ -0,0 +1,24 @@
+curl_sources = [
+ 'gstcurlbasesink.c',
+ 'gstcurl.c',
+ 'gstcurlfilesink.c',
+ 'gstcurlftpsink.c',
+ 'gstcurlhttpsink.c',
+ 'gstcurlsftpsink.c',
+ 'gstcurlsmtpsink.c',
+ 'gstcurlsshsink.c',
+ 'gstcurltlssink.c',
+]
+
+curl_dep = dependency('libcurl', version : '>= 7.35.0', required : false)
+
+if curl_dep.found()
+ gstcurl = library('gstcurl',
+ curl_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, curl_dep] + winsock2,
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/dash/meson.build b/ext/dash/meson.build
new file mode 100644
index 000000000..8d31bc375
--- /dev/null
+++ b/ext/dash/meson.build
@@ -0,0 +1,20 @@
+dash_sources = [
+ 'gstdashdemux.c',
+ 'gstisoff.c',
+ 'gstmpdparser.c',
+ 'gstplugin.c',
+]
+
+xml2_dep = dependency('libxml-2.0', version : '>= 2.8', required : false)
+if xml2_dep.found()
+ gstsouphttpsrc = library('gstdashdemux',
+ dash_sources,
+ c_args : gst_plugins_bad_args + ['-DGST_USE_UNSTABLE_API'],
+ link_args : noseh_link_args,
+ include_directories : [configinc, libsinc],
+ dependencies : [gstadaptivedemux_dep, gsturidownloader_dep, gsttag_dep,
+ gstnet_dep, gstbase_dep, gio_dep, xml2_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/directfb/meson.build b/ext/directfb/meson.build
new file mode 100644
index 000000000..6f110207e
--- /dev/null
+++ b/ext/directfb/meson.build
@@ -0,0 +1,12 @@
+directfb_dep = dependency('directfb', version : '>= 0.9.24', required : false)
+
+if directfb_dep.found()
+ gstdirectfb = library('gstdirectfb',
+ 'dfbvideosink.c',
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstvideo_dep, directfb_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/dtls/meson.build b/ext/dtls/meson.build
new file mode 100644
index 000000000..1ce99dcbd
--- /dev/null
+++ b/ext/dtls/meson.build
@@ -0,0 +1,25 @@
+dtls_sources = [
+ 'gstdtlsagent.c',
+ 'gstdtlscertificate.c',
+ 'gstdtlsconnection.c',
+ 'gstdtlsdec.c',
+ 'gstdtlsenc.c',
+ 'gstdtlssrtpbin.c',
+ 'gstdtlssrtpdec.c',
+ 'gstdtlssrtpdemux.c',
+ 'gstdtlssrtpenc.c',
+ 'plugin.c',
+]
+
+libcrypto_dep = dependency('libcrypto', required : false)
+
+if openssl_dep.found() and libcrypto_dep.found()
+ gstdtls = library('gstdtls',
+ dtls_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gst_dep, libcrypto_dep, openssl_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/dts/meson.build b/ext/dts/meson.build
new file mode 100644
index 000000000..882a6aa89
--- /dev/null
+++ b/ext/dts/meson.build
@@ -0,0 +1,17 @@
+dca_dep = dependency('libdca', required : false)
+
+if not dca_dep.found() and cc.has_header_symbol('dca.h', 'dca_init')
+ dca_dep = cc.find_library('dca', required : false)
+endif
+
+if dca_dep.found()
+ gstdtsdec = library('gstdtsdec',
+ 'gstdtsdec.c',
+ c_args : gst_plugins_bad_args,
+ link_args : noseh_link_args,
+ include_directories : [configinc, libsinc],
+ dependencies : [gstaudio_dep, orc_dep, dca_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/faac/meson.build b/ext/faac/meson.build
new file mode 100644
index 000000000..f9f3cad64
--- /dev/null
+++ b/ext/faac/meson.build
@@ -0,0 +1,12 @@
+faac_dep = cc.find_library('faac', required : false)
+
+if faac_dep.found() and cc.has_header_symbol('faac.h', 'faacEncOpen')
+ gstfaac = library('gstfaac',
+ 'gstfaac.c',
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstaudio_dep, gstpbutils_dep, gsttag_dep, faac_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/faad/meson.build b/ext/faad/meson.build
new file mode 100644
index 000000000..2d3ff9ada
--- /dev/null
+++ b/ext/faad/meson.build
@@ -0,0 +1,21 @@
+faad_args = [ ]
+
+have_faad = cc.has_header_symbol('neaacdec.h', 'NeAACDecOpen')
+have_faad_2_7 = have_faad and cc.has_header_symbol('neaacdec.h', 'LATM')
+if have_faad and not have_faad_2_7
+ message('Found faad2, but too old (< v2.7.0)')
+endif
+
+faad_dep = cc.find_library('faad', required : false)
+
+if faad_dep.found() and have_faad_2_7
+ gstfaad = library('gstfaad',
+ 'gstfaad.c',
+ c_args : gst_plugins_bad_args + [ '-DFAAD2_MINOR_VERSION=7', '-DFAAD_IS_NEAAC' ],
+ link_args : noseh_link_args,
+ include_directories : [configinc],
+ dependencies : [gstaudio_dep, gstpbutils_dep, gsttag_dep, faad_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/flite/meson.build b/ext/flite/meson.build
new file mode 100644
index 000000000..6d1226f52
--- /dev/null
+++ b/ext/flite/meson.build
@@ -0,0 +1,30 @@
+flite_sources = [
+ 'gstflite.c',
+ 'gstflitetestsrc.c',
+]
+
+flite_libs = [
+ 'flite',
+ 'flite_cmu_us_kal',
+ 'flite_usenglish',
+ 'flite_cmulex'
+]
+
+flite_deps = [ ]
+foreach flite_lib : flite_libs
+ flite_lib_dep = cc.find_library(flite_lib, required : false)
+ if flite_lib_dep.found()
+ flite_deps += [flite_lib_dep]
+ endif
+endforeach
+
+if flite_deps.length() == flite_libs.length() and cc.has_header_symbol('flite/flite.h', 'flite_init')
+ gstflite = library('gstflite',
+ flite_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstaudio_dep] + flite_deps,
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/fluidsynth/meson.build b/ext/fluidsynth/meson.build
new file mode 100644
index 000000000..d732b93d1
--- /dev/null
+++ b/ext/fluidsynth/meson.build
@@ -0,0 +1,12 @@
+fluidsynth_dep = dependency('fluidsynth', version : '>= 1.0', required : false)
+
+if fluidsynth_dep.found()
+ gstfluidsynth = library('gstfluidsynth',
+ 'gstfluiddec.c',
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstaudio_dep, gst_dep, fluidsynth_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/hls/meson.build b/ext/hls/meson.build
new file mode 100644
index 000000000..081a0968a
--- /dev/null
+++ b/ext/hls/meson.build
@@ -0,0 +1,38 @@
+hls_sources = [
+ 'gsthlsdemux.c',
+ 'gsthlsdemux-util.c',
+ 'gsthlsplugin.c',
+ 'gsthlssink.c',
+ 'gstm3u8playlist.c',
+ 'm3u8.c',
+]
+
+hls_cargs = ['-DGST_USE_UNSTABLE_API']
+
+# FIXME: Add an option for selecting the library, and fail if it's not found
+hls_crypto_dep = dependency('nettle', required : false)
+if hls_crypto_dep.found()
+ hls_cargs += ['-DHAVE_NETTLE']
+else
+ hls_crypto_dep = cc.find_library('gcrypt', required : false)
+ if hls_crypto_dep.found()
+ hls_cargs += ['-DHAVE_LIBGCRYPT']
+ else
+ hls_crypto_dep = openssl_dep
+ if hls_crypto_dep.found()
+ hls_cargs += ['-DHAVE_OPENSSL']
+ endif
+ endif
+endif
+
+gsthls = library('gsthls',
+ hls_sources,
+ c_args : gst_plugins_bad_args + hls_cargs,
+ link_args : noseh_link_args,
+ include_directories : [configinc],
+ dependencies : [gstpbutils_dep, gsttag_dep, gstvideo_dep,
+ gstadaptivedemux_dep, gsturidownloader_dep,
+ hls_crypto_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/ext/kate/meson.build b/ext/kate/meson.build
new file mode 100644
index 000000000..ac055f2be
--- /dev/null
+++ b/ext/kate/meson.build
@@ -0,0 +1,24 @@
+kate_sources = [
+ 'gstkate.c',
+ 'gstkatedec.c',
+ 'gstkateenc.c',
+ 'gstkateparse.c',
+ 'gstkatetag.c',
+ 'gstkateutil.c',
+ 'gstkatespu.c',
+]
+
+kate_dep = dependency('kate', version : '>=0.1.7', required : false)
+# Not used
+#tiger_dep = dependency('tiger', version : '>=0.3.2', required : false)
+
+if kate_dep.found()
+ gstkate = library('gstkate',
+ kate_sources,
+ c_args : gst_plugins_bad_args,
+ link_args : noseh_link_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstvideo_dep, gsttag_dep, kate_dep],
+ install : true,
+ install_dir : plugins_install_dir)
+endif
diff --git a/ext/libde265/meson.build b/ext/libde265/meson.build
new file mode 100644
index 000000000..b8dd98110
--- /dev/null
+++ b/ext/libde265/meson.build
@@ -0,0 +1,17 @@
+de265_sources = [
+ 'gstlibde265.c',
+ 'libde265-dec.c',
+]
+
+de265_dep = dependency('libde265', version : '>= 0.9', required : false)
+
+if de265_dep.found()
+ gstde265 = library('gstde265',
+ de265_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstvideo_dep, de265_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/libmms/meson.build b/ext/libmms/meson.build
new file mode 100644
index 000000000..23b00b5c5
--- /dev/null
+++ b/ext/libmms/meson.build
@@ -0,0 +1,13 @@
+mms_dep = dependency('libmms', version : '>= 0.4', required : false)
+
+if mms_dep.found()
+ gstmms = library('gstmms',
+ 'gstmms.c',
+ c_args : gst_plugins_bad_args,
+ link_args : noseh_link_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, mms_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/meson.build b/ext/meson.build
new file mode 100644
index 000000000..1809645b9
--- /dev/null
+++ b/ext/meson.build
@@ -0,0 +1,72 @@
+#subdir('apexsink')
+subdir('assrender')
+#subdir('bs2b')
+subdir('bz2')
+subdir('chromaprint')
+subdir('curl')
+#subdir('daala')
+subdir('dash')
+#subdir('dc1394')
+subdir('directfb')
+subdir('dtls')
+subdir('dts')
+subdir('faac')
+subdir('faad')
+subdir('flite')
+subdir('fluidsynth')
+#subdir('gl')
+#subdir('gme')
+#subdir('gsm')
+#subdir('gtk')
+subdir('hls')
+subdir('kate')
+#subdir('ladspa')
+subdir('libde265')
+subdir('libmms')
+#subdir('libvisual')
+#subdir('lv2')
+#subdir('mimic')
+#subdir('modplug')
+#subdir('mpeg2enc')
+#subdir('mplex')
+#subdir('musepack')
+#subdir('nas')
+#subdir('neon')
+#subdir('ofa')
+#subdir('openal')
+#subdir('opencv')
+#subdir('openexr')
+subdir('openh264')
+subdir('openjpeg')
+#subdir('openni2')
+subdir('opus')
+#subdir('qt')
+subdir('resindvd')
+subdir('rsvg')
+subdir('rtmp')
+subdir('sbc')
+subdir('schroedinger')
+#subdir('sdl')
+subdir('smoothstreaming')
+#subdir('sndfile')
+#subdir('sndio')
+if cc.get_id() != 'msvc'
+ # soundtouch doesn't do exporting of symbols for DLLs and I'm not sure how to
+ # do that for C++ classes. -- Nirbheek
+ subdir('soundtouch')
+ # libspandsp has a bunch of portability issues in the headers
+ # If someone really wants to use this, it shouldn't be hard to port
+ subdir('spandsp')
+endif
+#subdir('spc')
+subdir('srtp')
+#subdir('teletextdec')
+#subdir('timidity')
+subdir('voaacenc')
+#subdir('voamrwbenc')
+#subdir('wayland')
+#subdir('webrtcdsp')
+subdir('webp')
+subdir('x265')
+#subdir('xvid')
+subdir('zbar')
diff --git a/ext/mpg123/meson.build b/ext/mpg123/meson.build
new file mode 100644
index 000000000..d4e16c9e7
--- /dev/null
+++ b/ext/mpg123/meson.build
@@ -0,0 +1,16 @@
+mpg123_sources = [
+ 'gstmpg123audiodec.c',
+]
+
+mpg123_dep = dependency('libmpg123', version : '>= 1.3', required : false)
+
+if mpg123_dep.found()
+ gstmpg123 = library('gstmpg123',
+ mpg123_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstaudio_dep, mpg123_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/openh264/meson.build b/ext/openh264/meson.build
new file mode 100644
index 000000000..666887afe
--- /dev/null
+++ b/ext/openh264/meson.build
@@ -0,0 +1,20 @@
+openh264_sources = [
+ 'gstopenh264dec.cpp',
+ 'gstopenh264enc.cpp',
+ 'gstopenh264plugin.c',
+]
+
+openh264_dep = dependency('openh264', version : '>= 1.3.0', required : false)
+
+# FIXME: check if C++ compiler is available via new add_languages() semantics in meson git (~v30)
+if openh264_dep.found()
+ gstopenh264 = library('gstopenh264',
+ openh264_sources,
+ c_args : gst_plugins_bad_args,
+ link_args : noseh_link_args,
+ include_directories : [configinc],
+ dependencies : [gstvideo_dep, openh264_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/openjpeg/meson.build b/ext/openjpeg/meson.build
new file mode 100644
index 000000000..d60974ce7
--- /dev/null
+++ b/ext/openjpeg/meson.build
@@ -0,0 +1,33 @@
+openjpeg_sources = [
+ 'gstopenjpeg.c',
+ 'gstopenjpegdec.c',
+ 'gstopenjpegenc.c',
+]
+
+openjpeg_cargs = []
+
+# Check for 2.1, then 2.0
+openjpeg_dep = dependency('libopenjp2', version : '>=2.1', required : false)
+if openjpeg_dep.found()
+ openjpeg_cargs += ['-DHAVE_OPENJPEG_2_1']
+else
+ openjpeg_dep = dependency('libopenjp2', required : false)
+ # Fallback to 1.5
+ if not openjpeg_dep.found()
+ openjpeg_dep = dependency('libopenjpeg1', required : false)
+ openjpeg_cargs += ['-DHAVE_OPENJPEG_1']
+ endif
+endif
+
+if openjpeg_dep.found()
+ gstopenjpeg = library('gstopenjpeg',
+ openjpeg_sources,
+ c_args : gst_plugins_bad_args + openjpeg_cargs,
+ link_args : noseh_link_args,
+ include_directories : [configinc],
+ dependencies : [gst_dep, gstvideo_dep, openjpeg_dep,
+ gstcodecparsers_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/opus/meson.build b/ext/opus/meson.build
new file mode 100644
index 000000000..22ee796e2
--- /dev/null
+++ b/ext/opus/meson.build
@@ -0,0 +1,20 @@
+opus_sources = [
+ 'gstopus.c',
+ 'gstopusheader.c',
+ 'gstopusparse.c',
+]
+
+opus_dep = dependency('opus', version : '>= 0.9.4', required : false)
+
+if opus_dep.found()
+ gstopus = library('gstopusparse',
+ opus_sources,
+ c_args : gst_plugins_bad_args,
+ link_args : noseh_link_args,
+ include_directories : [configinc],
+ dependencies : [gstrtp_dep, gstpbutils_dep, gstaudio_dep,
+ gsttag_dep, opus_dep, libm],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/resindvd/meson.build b/ext/resindvd/meson.build
new file mode 100644
index 000000000..7c5ef963f
--- /dev/null
+++ b/ext/resindvd/meson.build
@@ -0,0 +1,27 @@
+resindvd_sources = [
+ 'gstmpegdemux.c',
+ 'gstmpegdesc.c',
+ 'gstpesfilter.c',
+ 'plugin.c',
+ 'resindvdbin.c',
+ 'resindvdsrc.c',
+ 'rsndec.c',
+ 'rsninputselector.c',
+ 'rsnparsetter.c',
+]
+
+dvdnav_dep = dependency('dvdnav', version : '>= 4.1.2', required : false)
+dvdread_dep = dependency('dvdread', version : '>= 4.1.2', required : false)
+
+if dvdnav_dep.found() and dvdread_dep.found()
+ gstresindvd = library('gstresindvd',
+ resindvd_sources,
+ c_args : gst_plugins_bad_args,
+ link_args : noseh_link_args,
+ include_directories : [configinc, libsinc],
+ dependencies : [gstvideo_dep, gstpbutils_dep, gsttag_dep,
+ dvdnav_dep, dvdread_dep, gmodule_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/rsvg/meson.build b/ext/rsvg/meson.build
new file mode 100644
index 000000000..a78deb4ac
--- /dev/null
+++ b/ext/rsvg/meson.build
@@ -0,0 +1,18 @@
+rsvg_sources = [
+ 'gstrsvg.c',
+ 'gstrsvgdec.c',
+ 'gstrsvgoverlay.c',
+]
+
+rsvg_dep = dependency('librsvg-2.0', version : '>= 2.36.2', required : false)
+if rsvg_dep.found()
+ gstrsvg = library('gstrsvg',
+ rsvg_sources,
+ c_args : gst_plugins_bad_args,
+ link_args : noseh_link_args,
+ include_directories : [configinc],
+ dependencies : [gstvideo_dep, rsvg_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/rtmp/meson.build b/ext/rtmp/meson.build
new file mode 100644
index 000000000..2c7cce22a
--- /dev/null
+++ b/ext/rtmp/meson.build
@@ -0,0 +1,18 @@
+rtmp_sources = [
+ 'gstrtmp.c',
+ 'gstrtmpsink.c',
+ 'gstrtmpsrc.c',
+]
+
+rtmp_dep = dependency('librtmp', required : false)
+
+if rtmp_dep.found()
+ gstrtmp = library('gstrtmp',
+ rtmp_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, rtmp_dep] + winsock2,
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/sbc/meson.build b/ext/sbc/meson.build
new file mode 100644
index 000000000..e20d8ed5f
--- /dev/null
+++ b/ext/sbc/meson.build
@@ -0,0 +1,18 @@
+sbc_sources = [
+ 'sbc-plugin.c',
+ 'gstsbcdec.c',
+ 'gstsbcenc.c',
+]
+
+sbc_dep = dependency('sbc', version : '>= 1.0', required : false)
+
+if sbc_dep.found()
+ gstsbc = library('gstsbc',
+ sbc_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstaudio_dep, sbc_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/schroedinger/meson.build b/ext/schroedinger/meson.build
new file mode 100644
index 000000000..d37b70fd5
--- /dev/null
+++ b/ext/schroedinger/meson.build
@@ -0,0 +1,20 @@
+schro_sources = [
+ 'gstschro.c',
+ 'gstschrodec.c',
+ 'gstschroenc.c',
+ 'gstschroutils.c',
+]
+
+schro_dep = dependency('schroedinger-1.0', version : '>= 1.0.10', required : false)
+
+if schro_dep.found()
+ gstschro = library('gstschro',
+ schro_sources,
+ c_args : gst_plugins_bad_args,
+ link_args : noseh_link_args,
+ include_directories : [configinc],
+ dependencies : [gstvideo_dep, schro_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/smoothstreaming/meson.build b/ext/smoothstreaming/meson.build
new file mode 100644
index 000000000..00afda948
--- /dev/null
+++ b/ext/smoothstreaming/meson.build
@@ -0,0 +1,20 @@
+smoothstreaming_sources = [
+ 'gstmssdemux.c',
+ 'gstmssmanifest.c',
+ 'gstsmoothstreaming-plugin.c',
+]
+
+xml28_dep = dependency('libxml-2.0', version : '>= 2.8', required : false)
+
+if xml28_dep.found()
+ gstmss = library('gstsmoothstreaming',
+ smoothstreaming_sources,
+ c_args : gst_plugins_bad_args + ['-DGST_USE_UNSTABLE_API'],
+ link_args : noseh_link_args,
+ include_directories : [configinc, libsinc],
+ dependencies : [gst_dep, gstadaptivedemux_dep, gstcodecparsers_dep,
+ gsturidownloader_dep, xml28_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/soundtouch/meson.build b/ext/soundtouch/meson.build
new file mode 100644
index 000000000..e4143d8a4
--- /dev/null
+++ b/ext/soundtouch/meson.build
@@ -0,0 +1,32 @@
+soundtouch_sources = [
+ 'plugin.c',
+ 'gstpitch.cc',
+ 'gstbpmdetect.cc',
+]
+
+soundtouch_cargs = ['-DHAVE_SOUNDTOUCH']
+
+soundtouch_dep = dependency('soundtouch', required : false)
+if soundtouch_dep.found()
+ soundtouch_cargs += ['-DHAVE_SOUNDTOUCH_1_4']
+else
+ soundtouch_dep = dependency('soundtouch-1.4', required : false)
+ if soundtouch_dep.found()
+ soundtouch_cargs += ['-DHAVE_SOUNDTOUCH_1_4']
+ else
+ soundtouch_dep = dependency('soundtouch-1.0', required : false)
+ # NOTE: I removed the checks for libSoundTouch.pc and so on.
+ # Add them back once we know which distros use them.
+ endif
+endif
+
+if soundtouch_dep.found()
+ gstsoundtouch = library('gstsoundtouch',
+ soundtouch_sources,
+ c_args : gst_plugins_bad_args + soundtouch_cargs,
+ cpp_args : gst_plugins_bad_args + soundtouch_cargs,
+ include_directories : [configinc],
+ dependencies : [gstaudio_dep, soundtouch_dep],
+ install : true,
+ install_dir : plugins_install_dir)
+endif
diff --git a/ext/spandsp/meson.build b/ext/spandsp/meson.build
new file mode 100644
index 000000000..34c9bc841
--- /dev/null
+++ b/ext/spandsp/meson.build
@@ -0,0 +1,22 @@
+spandsp_sources = [
+ 'gstdtmfdetect.c',
+ 'gstdtmfdetect.h',
+ 'gstspandsp.c',
+ 'gstspanplc.c',
+ 'gstspanplc.h',
+ 'gsttonegeneratesrc.c',
+ 'gsttonegeneratesrc.h',
+]
+
+spandsp_dep = dependency('spandsp', version : '>= 0.0.6', required : false)
+
+if spandsp_dep.found()
+ gstspandsp = library('gstspandsp',
+ spandsp_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstvideo_dep, spandsp_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/srtp/meson.build b/ext/srtp/meson.build
new file mode 100644
index 000000000..09f511118
--- /dev/null
+++ b/ext/srtp/meson.build
@@ -0,0 +1,34 @@
+srtp_sources = [
+ 'gstsrtp.c',
+ 'gstsrtpdec.c',
+ 'gstsrtpenc.c',
+]
+
+srtp_dep = dependency('libsrtp', required : false)
+if not srtp_dep.found() and cc.has_header_symbol('srtp/srtp.h', 'srtp_init')
+ srtp_dep = cc.find_library('srtp', required : false)
+endif
+
+if srtp_dep.found()
+ mkenums = find_program('srtp_mkenum.py')
+ gstsrtp_h = custom_target('gstsrtpenum_h',
+ output : 'gstsrtp-enumtypes.h',
+ input : 'gstsrtp.h',
+ command : [mkenums, glib_mkenums, '@OUTPUT@', '@INPUT@'])
+
+ gstsrtp_c = custom_target('gstsrtpenum_c',
+ output : 'gstsrtp-enumtypes.c',
+ input : 'gstsrtp.h',
+ depends : [gstsrtp_h],
+ command : [mkenums, glib_mkenums, '@OUTPUT@', '@INPUT@'])
+
+ gstsrtp = library('gstsrtp',
+ srtp_sources, gstsrtp_c, gstsrtp_h,
+ c_args : gst_plugins_bad_args,
+ link_args : noseh_link_args,
+ include_directories : [configinc],
+ dependencies : [gstrtp_dep, gstvideo_dep, srtp_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/srtp/srtp_mkenum.py b/ext/srtp/srtp_mkenum.py
new file mode 100755
index 000000000..031c1b958
--- /dev/null
+++ b/ext/srtp/srtp_mkenum.py
@@ -0,0 +1,55 @@
+#!/usr/bin/env python3
+
+# This is in its own file rather than inside meson.build
+# because a) mixing the two is ugly and b) trying to
+# make special characters such as \n go through all
+# backends is a fool's errand.
+
+import sys, os, shutil, subprocess
+
+h_array = ['--fhead',
+ "#ifndef __GST_SRTP_ENUM_TYPES_H__\n#define __GST_SRTP_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n",
+ '--fprod',
+ "\n/* enumerations from \"@filename@\" */\n",
+ '--vhead',
+ 'GType @enum_name@_get_type (void);\n#define GST_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n',
+ '--ftail',
+ 'G_END_DECLS\n\n#endif /* __GST_SRTP_ENUM_TYPES_H__ */',
+ ]
+
+c_array = ['--fhead',
+ "#include \"gstsrtp-enumtypes.h\"\n\n#include \"gstsrtp.h\"",
+ '--fprod',
+ "\n/* enumerations from \"@filename@\" */",
+ '--vhead',
+ "GType\n@enum_name@_get_type (void)\n{\n static volatile gsize g_define_type_id__volatile = 0;\n if (g_once_init_enter (&g_define_type_id__volatile)) {\n static const G@Type@Value values[] = {",
+ '--vprod',
+ " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" },",
+ '--vtail',
+ " { 0, NULL, NULL }\n };\n GType g_define_type_id = g_@type@_register_static (\"@EnumName@\", values);\n g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);\n }\n return g_define_type_id__volatile;\n}\n",
+ ]
+
+cmd = []
+argn = 1
+# Find the full command needed to run glib-mkenums
+# On UNIX-like, this is just the full path to glib-mkenums
+# On Windows, this is the full path to interpreter + full path to glib-mkenums
+for arg in sys.argv[1:]:
+ cmd.append(arg)
+ argn += 1
+ if arg.endswith('glib-mkenums'):
+ break
+ofilename = sys.argv[argn]
+headers = sys.argv[argn + 1:]
+
+if ofilename.endswith('.h'):
+ arg_array = h_array
+else:
+ arg_array = c_array
+
+cmd_array = cmd + arg_array + headers
+pc = subprocess.Popen(cmd_array, stdout=subprocess.PIPE)
+(stdo, _) = pc.communicate()
+if pc.returncode != 0:
+ sys.exit(pc.returncode)
+open(ofilename, 'wb').write(stdo)
diff --git a/ext/voaacenc/meson.build b/ext/voaacenc/meson.build
new file mode 100644
index 000000000..0f2eec38c
--- /dev/null
+++ b/ext/voaacenc/meson.build
@@ -0,0 +1,15 @@
+voaac_sources = ['gstvoaac.c', 'gstvoaacenc.c']
+
+voaac_dep = dependency('vo-aacenc', required : false)
+
+if voaac_dep.found()
+ gstbz2 = library('gstvoaacenc',
+ voaac_sources,
+ c_args : gst_plugins_bad_args,
+ link_args : noseh_link_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstpbutils_dep, gstaudio_dep, voaac_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/webp/meson.build b/ext/webp/meson.build
new file mode 100644
index 000000000..a809e8826
--- /dev/null
+++ b/ext/webp/meson.build
@@ -0,0 +1,18 @@
+webp_sources = [
+ 'gstwebp.c',
+ 'gstwebpdec.c',
+ 'gstwebpenc.c',
+]
+
+webp_dep = dependency('libwebp', version : '>= 0.2.1', required : false)
+
+if webp_dep.found()
+ gstwebp = library('gstwebp',
+ webp_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstvideo_dep, webp_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/x265/meson.build b/ext/x265/meson.build
new file mode 100644
index 000000000..10740981f
--- /dev/null
+++ b/ext/x265/meson.build
@@ -0,0 +1,11 @@
+x265_dep = dependency('x265', required: false)
+if x265_dep.found()
+ gstx265 = library('gstx265',
+ 'gstx265enc.c',
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstpbutils_dep, gstvideo_dep, x265_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/ext/zbar/meson.build b/ext/zbar/meson.build
new file mode 100644
index 000000000..738e6d0e7
--- /dev/null
+++ b/ext/zbar/meson.build
@@ -0,0 +1,11 @@
+zbar_dep = dependency('zbar', version : '>= 0.9', required : false)
+if zbar_dep.found()
+ gstzbar = library('gstzbar',
+ 'gstzbar.c',
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [ gstvideo_dep, zbar_dep ],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/gst-libs/gst/adaptivedemux/meson.build b/gst-libs/gst/adaptivedemux/meson.build
new file mode 100644
index 000000000..dbc4da386
--- /dev/null
+++ b/gst-libs/gst/adaptivedemux/meson.build
@@ -0,0 +1,14 @@
+gstadaptivedemux = library('gstadaptivedemux-' + api_version,
+ 'gstadaptivedemux.c',
+ c_args : gst_plugins_bad_args + ['-DGST_USE_UNSTABLE_API'],
+ include_directories : [configinc, libsinc],
+ version : libversion,
+ soversion : soversion,
+ install : true,
+ dependencies : [gstbase_dep, gsturidownloader_dep],
+ vs_module_defs: vs_module_defs_dir + 'libgstadaptivedemux.def',
+)
+
+gstadaptivedemux_dep = declare_dependency(link_with : gstadaptivedemux,
+ include_directories : [libsinc],
+ dependencies : [gstbase_dep, gsturidownloader_dep])
diff --git a/gst-libs/gst/audio/meson.build b/gst-libs/gst/audio/meson.build
new file mode 100644
index 000000000..e04c2a10f
--- /dev/null
+++ b/gst-libs/gst/audio/meson.build
@@ -0,0 +1,19 @@
+badaudio_sources = ['gstaudioaggregator.c']
+badaudio_headers = ['gstaudioaggregator.h']
+install_headers(badaudio_headers, subdir : 'gstreamer-1.0/gst/audio')
+
+
+gstbadaudio = library('gstbadaudio-' + api_version,
+ badaudio_sources,
+ c_args : gst_plugins_bad_args + ['-DGST_USE_UNSTABLE_API'],
+ include_directories : [configinc, libsinc],
+ version : libversion,
+ soversion : soversion,
+ install : true,
+ dependencies : [gstbadbase_dep, gstaudio_dep],
+ vs_module_defs: vs_module_defs_dir + 'libgstbadaudio.def',
+)
+
+gstbadaudio_dep = declare_dependency(link_with : gstbadaudio,
+ include_directories : [libsinc],
+ dependencies : [gstbadbase_dep, gstaudio_dep])
diff --git a/gst-libs/gst/base/meson.build b/gst-libs/gst/base/meson.build
new file mode 100644
index 000000000..34203edf4
--- /dev/null
+++ b/gst-libs/gst/base/meson.build
@@ -0,0 +1,18 @@
+badbase_sources = ['gstaggregator.c']
+badbase_headers = ['gstaggregator.h']
+install_headers(badbase_headers, subdir : 'gstreamer-1.0/gst/base')
+
+gstbadbase = library('gstbadbase-' + api_version,
+ badbase_sources,
+ c_args : gst_plugins_bad_args + ['-DGST_USE_UNSTABLE_API'],
+ include_directories : [configinc, libsinc],
+ version : libversion,
+ soversion : soversion,
+ install : true,
+ dependencies : [gst_dep],
+ vs_module_defs: vs_module_defs_dir + 'libgstbadbase.def',
+)
+
+gstbadbase_dep = declare_dependency(link_with : gstbadbase,
+ include_directories : [libsinc],
+ dependencies : [gst_dep])
diff --git a/gst-libs/gst/basecamerabinsrc/meson.build b/gst-libs/gst/basecamerabinsrc/meson.build
new file mode 100644
index 000000000..4f7f16e65
--- /dev/null
+++ b/gst-libs/gst/basecamerabinsrc/meson.build
@@ -0,0 +1,26 @@
+camerabin_sources = [
+ 'gstcamerabin-enum.c',
+ 'gstcamerabinpreview.c',
+ 'gstbasecamerasrc.c',
+]
+camerabin_headers = [
+ 'gstcamerabin-enum.h',
+ 'gstcamerabinpreview.h',
+ 'gstbasecamerasrc.h',
+]
+install_headers(camerabin_headers, subdir : 'gstreamer-1.0/gst/basecamerabinsrc')
+
+gstbasecamerabin = library('gstbasecamerabinsrc-' + api_version,
+ camerabin_sources,
+ c_args : gst_plugins_bad_args + ['-DGST_USE_UNSTABLE_API'],
+ include_directories : [configinc, libsinc],
+ version : libversion,
+ soversion : soversion,
+ install : true,
+ dependencies : [gstapp_dep],
+ vs_module_defs: vs_module_defs_dir + 'libgstbasecamerabinsrc.def',
+)
+
+gstbasecamerabin_dep = declare_dependency(link_with : gstbasecamerabin,
+ include_directories : [libsinc],
+ dependencies : [gstapp_dep])
diff --git a/gst-libs/gst/codecparsers/meson.build b/gst-libs/gst/codecparsers/meson.build
new file mode 100644
index 000000000..f45e69710
--- /dev/null
+++ b/gst-libs/gst/codecparsers/meson.build
@@ -0,0 +1,54 @@
+codecparser_sources = [
+ 'gstjpeg2000sampling.c',
+ 'gstjpegparser.c',
+ 'gstmpegvideoparser.c',
+ 'gsth264parser.c',
+ 'gstvc1parser.c',
+ 'gstmpeg4parser.c',
+ 'gsth265parser.c',
+ 'gstvp8parser.c',
+ 'gstvp8rangedecoder.c',
+ 'gstvp9parser.c',
+ 'vp9utils.c',
+ 'parserutils.c',
+ 'nalutils.c',
+ 'dboolhuff.c',
+ 'vp8utils.c',
+ 'gstmpegvideometa.c',
+]
+codecparser_headers = [
+ 'gstmpegvideoparser.h',
+ 'gsth264parser.h',
+ 'gstvc1parser.h',
+ 'gstmpeg4parser.h',
+ 'gsth265parser.h',
+ 'gstvp8parser.h',
+ 'gstvp8rangedecoder.h',
+ 'gstjpeg2000sampling.h',
+ 'gstjpegparser.h',
+ 'gstmpegvideometa.h',
+ 'gstvp9parser.h',
+]
+install_headers(codecparser_headers, subdir : 'gstreamer-1.0/gst/codecparsers')
+
+cp_args = [
+ '-DGST_USE_UNSTABLE_API',
+ '-Dvp8_norm=gst_codecparsers_vp8_norm',
+ '-Dvp8dx_start_decode=gst_codecparsers_vp8dx_start_decode',
+ '-Dvp8dx_bool_decoder_fill=gst_codecparsers_vp8dx_bool_decoder_fill',
+]
+
+gstcodecparsers = library('gstcodecparsers-' + api_version,
+ codecparser_sources,
+ c_args : gst_plugins_bad_args + cp_args,
+ include_directories : [configinc, libsinc],
+ version : libversion,
+ soversion : soversion,
+ install : true,
+ dependencies : [gstbase_dep, libm],
+ vs_module_defs: vs_module_defs_dir + 'libgstcodecparsers.def',
+)
+
+gstcodecparsers_dep = declare_dependency(link_with : gstcodecparsers,
+ include_directories : [libsinc],
+ dependencies : [gstbase_dep])
diff --git a/gst-libs/gst/gl/gstglconfig.h.meson b/gst-libs/gst/gl/gstglconfig.h.meson
new file mode 100644
index 000000000..6726c8438
--- /dev/null
+++ b/gst-libs/gst/gl/gstglconfig.h.meson
@@ -0,0 +1,40 @@
+/* gstglconfig.h
+ *
+ * This is a generated file. Please modify `configure.ac'
+ */
+
+#ifndef __GST_GL_CONFIG_H__
+#define __GST_GL_CONFIG_H__
+
+#include <gst/gst.h>
+
+G_BEGIN_DECLS
+
+
+#mesondefine GST_GL_HAVE_OPENGL
+#mesondefine GST_GL_HAVE_GLES2
+#mesondefine GST_GL_HAVE_GLES3
+
+#mesondefine GST_GL_HAVE_WINDOW_X11
+#mesondefine GST_GL_HAVE_WINDOW_COCOA
+#mesondefine GST_GL_HAVE_WINDOW_WIN32
+#mesondefine GST_GL_HAVE_WINDOW_WAYLAND
+#mesondefine GST_GL_HAVE_WINDOW_ANDROID
+#mesondefine GST_GL_HAVE_WINDOW_DISPMANX
+#mesondefine GST_GL_HAVE_WINDOW_EAGL
+
+#mesondefine GST_GL_HAVE_PLATFORM_EGL
+#mesondefine GST_GL_HAVE_PLATFORM_GLX
+#mesondefine GST_GL_HAVE_PLATFORM_WGL
+#mesondefine GST_GL_HAVE_PLATFORM_CGL
+#mesondefine GST_GL_HAVE_PLATFORM_EAGL
+
+#mesondefine GST_GL_HAVE_GLEGLIMAGEOES
+#mesondefine GST_GL_HAVE_GLCHAR
+#mesondefine GST_GL_HAVE_GLSIZEIPTR
+#mesondefine GST_GL_HAVE_GLINTPTR
+
+
+G_END_DECLS
+
+#endif /* __GST_GL_CONFIG_H__ */
diff --git a/gst-libs/gst/gl/meson.build b/gst-libs/gst/gl/meson.build
new file mode 100644
index 000000000..6c210de26
--- /dev/null
+++ b/gst-libs/gst/gl/meson.build
@@ -0,0 +1,92 @@
+gl_sources = [
+ 'gstgldisplay.c',
+ 'gstglcontext.c',
+ 'gstglmemory.c',
+ 'gstglbufferpool.c',
+ 'gstglfilter.c',
+ 'gstglshader.c',
+ 'gstglshadervariables.c',
+ 'gstglcolorconvert.c',
+ 'gstgldownload.c',
+ 'gstglupload.c',
+ 'gstgluploadmeta.c',
+ 'gstglwindow.c',
+ 'gstglapi.c',
+ 'gstglfeature.c',
+ 'gstglutils.c',
+ 'gstglframebuffer.c',
+]
+
+gl_headers = [
+ 'gl.h',
+ 'gstgl_enums.h',
+ 'gstgl_fwd.h',
+ 'gstglapi.h',
+ 'gstglbasefilter.h',
+ 'gstglbasememory.h',
+ 'gstglbuffer.h',
+ 'gstglbufferpool.h',
+ 'gstglcolorconvert.h',
+ 'gstglcontext.h',
+ 'gstglcontrolbindingproxy.h',
+ 'gstgldebug.h',
+ 'gstgldisplay.h',
+ 'gstglfeature.h',
+ 'gstglfilter.h',
+ 'gstglformat.h',
+ 'gstglframebuffer.h',
+ 'gstglmemory.h',
+ 'gstglmemorypbo.h',
+ 'gstgloverlaycompositor.h',
+ 'gstglquery.h',
+ 'gstglshader.h',
+ 'gstglshaderstrings.h',
+ 'gstglsl.h',
+ 'gstglslstage.h',
+ 'gstglsyncmeta.h',
+ 'gstglupload.h',
+ 'gstglutils.h',
+ 'gstglviewconvert.h',
+ 'gstglwindow.h',
+]
+# FIXME: Install glprototypes
+install_headers(gl_headers, subdir : 'gstreamer-1.0/gst/gl')
+
+glconf = configuration_data()
+
+glconf.set10('GST_GL_HAVE_OPENGL', gl_dep.found())
+
+if x11_dep.found()
+ gl_sources += [
+ 'x11/gstgldisplay_x11.c',
+ 'x11/gstglwindow_x11.c',
+ 'x11/x11_event_source.c',
+ 'x11/gstglcontext_glx.c',
+]
+ glconf.set('GST_GL_HAVE_WINDOW_X11', 1)
+ glconf.set('GST_GL_HAVE_PLATFORM_GLX', 1)
+endif
+
+# Add rest of gl config here.
+
+configure_file(input : 'gstglconfig.h.meson',
+ output : 'gstglconfig.h',
+ install_dir : get_option('libdir') + '/gstreamer-1.0/include/gst/gl',
+ configuration : glconf)
+
+gstgl = library('gstgl-' + api_version,
+ gl_sources,
+ c_args : gst_plugins_bad_args + ['-DGST_USE_UNSTABLE_API'],
+ include_directories : [configinc, libsinc],
+ version : libversion,
+ soversion : soversion,
+ install : true,
+ dependencies : [gstbase_dep, gstvideo_dep],
+ # FIXME: This symbol list is generated on Linux, so this is wrong for Windows
+ vs_module_defs: vs_module_defs_dir + 'libgstgl.def',
+)
+# TODO: generate gir
+
+gstgl_dep = declare_dependency(link_with : gstgl,
+ include_directories : [libsinc],
+ dependencies : [gstbase_dep, gstvideo_dep])
diff --git a/gst-libs/gst/insertbin/meson.build b/gst-libs/gst/insertbin/meson.build
new file mode 100644
index 000000000..565be5f04
--- /dev/null
+++ b/gst-libs/gst/insertbin/meson.build
@@ -0,0 +1,19 @@
+insert_sources = ['gstinsertbin.c']
+insert_headers = ['gstinsertbin.h']
+install_headers(insert_headers, subdir : 'gstreamer-1.0/gst/insertbin')
+
+gstinsertbin = library('gstinsertbin-' + api_version,
+ insert_sources,
+ c_args : gst_plugins_bad_args + [ '-DGST_USE_UNSTABLE_API' ],
+ include_directories : [configinc, libsinc],
+ version : libversion,
+ soversion : soversion,
+ install : true,
+ dependencies : [gst_dep],
+ vs_module_defs: vs_module_defs_dir + 'libgstinsertbin.def',
+)
+# TODO: generate gir
+
+gstinsertbin_dep = declare_dependency(link_with : gstinsertbin,
+ include_directories : [libsinc],
+ dependencies : [gst_dep])
diff --git a/gst-libs/gst/interfaces/build_mkenum.py b/gst-libs/gst/interfaces/build_mkenum.py
new file mode 100755
index 000000000..cbbf06a56
--- /dev/null
+++ b/gst-libs/gst/interfaces/build_mkenum.py
@@ -0,0 +1,55 @@
+#!/usr/bin/env python3
+
+# This is in its own file rather than inside meson.build
+# because a) mixing the two is ugly and b) trying to
+# make special characters such as \n go through all
+# backends is a fool's errand.
+
+import sys, os, shutil, subprocess
+
+h_array = ['--fhead',
+ "#ifndef __GST_PHOTO_ENUM_TYPES_H__\n#define __GST_PHOTO_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n",
+ '--fprod',
+ "\n/* enumerations from \"@filename@\" */\n",
+ '--vhead',
+ "GType @enum_name@_get_type (void);\n#define GST_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n",
+ '--ftail',
+ "G_END_DECLS\n\n#endif /* __GST_PHOTO_ENUM_TYPES_H__ */"]
+
+c_array = [
+ '--fhead',
+ "#include \"photography-enumtypes.h\"\n#include\"photography.h\"\n#define C_ENUM(v) ((gint) v)\n#define C_FLAGS(v) ((guint) v)\n",
+ '--fprod',
+ "\n/* enumerations from \"@filename@\" */",
+ '--vhead',
+ "GType\n@enum_name@_get_type (void)\n{\n static gsize id = 0;\n static const G@Type@Value values[] = {",
+ '--vprod',
+ " { C_@TYPE@(@VALUENAME@), \"@VALUENAME@\", \"@valuenick@\" },",
+ '--vtail',
+ " { 0, NULL, NULL }\n };\n\n if (g_once_init_enter (&id)) {\n GType tmp = g_@type@_register_static (\"@EnumName@\", values);\n g_once_init_leave (&id, tmp);\n }\n\n return (GType) id;\n}"
+ ]
+
+cmd = []
+argn = 1
+# Find the full command needed to run glib-mkenums
+# On UNIX-like, this is just the full path to glib-mkenums
+# On Windows, this is the full path to interpreter + full path to glib-mkenums
+for arg in sys.argv[1:]:
+ cmd.append(arg)
+ argn += 1
+ if arg.endswith('glib-mkenums'):
+ break
+ofilename = sys.argv[argn]
+headers = sys.argv[argn + 1:]
+
+if ofilename.endswith('.h'):
+ arg_array = h_array
+else:
+ arg_array = c_array
+
+cmd_array = cmd + arg_array + headers
+pc = subprocess.Popen(cmd_array, stdout=subprocess.PIPE)
+(stdo, _) = pc.communicate()
+if pc.returncode != 0:
+ sys.exit(pc.returncode)
+open(ofilename, 'wb').write(stdo)
diff --git a/gst-libs/gst/interfaces/meson.build b/gst-libs/gst/interfaces/meson.build
new file mode 100644
index 000000000..2349349be
--- /dev/null
+++ b/gst-libs/gst/interfaces/meson.build
@@ -0,0 +1,33 @@
+photography_sources = ['photography.c']
+photo_headers = ['photography.h']
+install_headers(photo_headers, subdir : 'gstreamer-1.0/gst/interfaces')
+
+mkenums = find_program('build_mkenum.py')
+
+photoenum_h = custom_target('photoenum_h',
+ output : 'photography-enumtypes.h',
+ input : photo_headers,
+ install : true,
+ install_dir : 'include/gstreamer-1.0/gst/interfaces',
+ command : [mkenums, glib_mkenums, '@OUTPUT@', '@INPUT@'])
+
+photoenum_c = custom_target('photoenum_c',
+ output : 'photography-enumtypes.c',
+ input : photo_headers,
+ command : [mkenums, glib_mkenums, '@OUTPUT@', '@INPUT@'])
+
+gstphotography = library('gstphotography-' + api_version,
+ photography_sources, photoenum_h, photoenum_c,
+ c_args : gst_plugins_bad_args + ['-DGST_USE_UNSTABLE_API'],
+ include_directories : [configinc, libsinc],
+ version : libversion,
+ soversion : soversion,
+ install : true,
+ dependencies : [gst_dep],
+ vs_module_defs: vs_module_defs_dir + 'libgstphotography.def',
+)
+
+gstphotography_dep = declare_dependency(link_with : gstphotography,
+ include_directories : [libsinc],
+ dependencies : [gst_dep],
+ sources : [photoenum_h])
diff --git a/gst-libs/gst/meson.build b/gst-libs/gst/meson.build
new file mode 100644
index 000000000..89aa92fc1
--- /dev/null
+++ b/gst-libs/gst/meson.build
@@ -0,0 +1,21 @@
+subdir('base')
+subdir('uridownloader')
+
+subdir('adaptivedemux')
+subdir('audio')
+subdir('basecamerabinsrc')
+subdir('codecparsers')
+subdir('insertbin')
+subdir('interfaces')
+subdir('mpegts')
+subdir('player')
+subdir('video')
+
+# FIXME: port configure.ac logic
+#subdir('wayland')
+
+# FIXME: broken and incomplete
+#gl_dep = dependency('gl', required : false)
+#if gl_dep.found()
+# subdir('gl')
+#endif
diff --git a/gst-libs/gst/mpegts/meson.build b/gst-libs/gst/mpegts/meson.build
new file mode 100644
index 000000000..b189e693a
--- /dev/null
+++ b/gst-libs/gst/mpegts/meson.build
@@ -0,0 +1,49 @@
+mpegts_sources = [
+ 'gstmpegtssection.c',
+ 'gstmpegtsdescriptor.c',
+ 'gst-dvb-descriptor.c',
+ 'gst-dvb-section.c',
+ 'gst-atsc-section.c',
+]
+
+mpegts_headers = [
+ 'gstmpegtssection.h',
+ 'gst-atsc-section.h',
+ 'gst-dvb-section.h',
+ 'gst-scte-section.h',
+ 'gstmpegtsdescriptor.h',
+ 'gst-dvb-descriptor.h',
+ 'mpegts.h',
+]
+install_headers(mpegts_headers, subdir : 'gstreamer-1.0/gst/mpegts')
+
+mkenums = find_program('mpegts_enum.py')
+
+mpegts_h = custom_target('mpegtsenum_h',
+ output : 'gstmpegts-enumtypes.h',
+ input : mpegts_headers,
+ install : true,
+ install_dir : 'include/gstreamer-1.0/gst/mpegts',
+ command : [mkenums, glib_mkenums, '@OUTPUT@', '@INPUT@'])
+
+mpegts_c = custom_target('mpegtsenum_c',
+ output : 'gstmpegts-enumtypes.c',
+ input : mpegts_headers,
+ command : [mkenums, glib_mkenums, '@OUTPUT@', '@INPUT@'])
+
+gstmpegts = library('gstmpegts-' + api_version,
+ mpegts_sources, mpegts_h, mpegts_c,
+ c_args : gst_plugins_bad_args + ['-DGST_USE_UNSTABLE_API'],
+ include_directories : [configinc, libsinc],
+ version : libversion,
+ soversion : soversion,
+ install : true,
+ dependencies : [gst_dep],
+ vs_module_defs: vs_module_defs_dir + 'libgstmpegts.def',
+)
+# TODO: generate gir
+
+gstmpegts_dep = declare_dependency(link_with : gstmpegts,
+ include_directories : [libsinc],
+ dependencies : [gst_dep],
+ sources : [mpegts_h])
diff --git a/gst-libs/gst/mpegts/mpegts_enum.py b/gst-libs/gst/mpegts/mpegts_enum.py
new file mode 100755
index 000000000..05efedbc4
--- /dev/null
+++ b/gst-libs/gst/mpegts/mpegts_enum.py
@@ -0,0 +1,57 @@
+#!/usr/bin/env python3
+
+# This is in its own file rather than inside meson.build
+# because a) mixing the two is ugly and b) trying to
+# make special characters such as \n go through all
+# backends is a fool's errand.
+
+import sys, os, shutil, subprocess
+
+cmd = []
+argn = 1
+# Find the full command needed to run glib-mkenums
+# On UNIX-like, this is just the full path to glib-mkenums
+# On Windows, this is the full path to interpreter + full path to glib-mkenums
+for arg in sys.argv[1:]:
+ cmd.append(arg)
+ argn += 1
+ if arg.endswith('glib-mkenums'):
+ break
+ofilename = sys.argv[argn]
+headers = sys.argv[argn + 1:]
+
+inc = '\n'.join(['#include"%s"' % i for i in headers])
+
+h_array = ['--fhead',
+ "#ifndef __GST_MPEGTS_ENUM_TYPES_H__\n#define __GST_MPEGTS_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n",
+ '--fprod',
+ "\n/* enumerations from \"@filename@\" */\n",
+ '--vhead',
+ "GType @enum_name@_get_type (void);\n#define GST_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n",
+ '--ftail',
+ "G_END_DECLS\n\n#endif /* __GST_MPEGTS_ENUM_TYPES_H__ */"]
+
+c_array = [
+ '--fhead',
+ "#include \"gstmpegts-enumtypes.h\"\n%s\n#define C_ENUM(v) ((gint) v)\n#define C_FLAGS(v) ((guint) v)\n" % inc,
+ '--fprod',
+ "\n/* enumerations from \"@filename@\" */",
+ '--vhead',
+ "GType\n@enum_name@_get_type (void)\n{\n static gsize id = 0;\n static const G@Type@Value values[] = {",
+ '--vprod',
+ " { C_@TYPE@(@VALUENAME@), \"@VALUENAME@\", \"@valuenick@\" },",
+ '--vtail',
+ " { 0, NULL, NULL }\n };\n\n if (g_once_init_enter (&id)) {\n GType tmp = g_@type@_register_static (\"@EnumName@\", values);\n g_once_init_leave (&id, tmp);\n }\n\n return (GType) id;\n}"
+ ]
+
+if ofilename.endswith('.h'):
+ arg_array = h_array
+else:
+ arg_array = c_array
+
+cmd_array = cmd + arg_array + headers
+pc = subprocess.Popen(cmd_array, stdout=subprocess.PIPE)
+(stdo, _) = pc.communicate()
+if pc.returncode != 0:
+ sys.exit(pc.returncode)
+open(ofilename, 'wb').write(stdo)
diff --git a/gst-libs/gst/player/meson.build b/gst-libs/gst/player/meson.build
new file mode 100644
index 000000000..d881d54c1
--- /dev/null
+++ b/gst-libs/gst/player/meson.build
@@ -0,0 +1,41 @@
+gstplayer_sources = [
+ 'gstplayer.c',
+ 'gstplayer-signal-dispatcher.c',
+ 'gstplayer-video-renderer.c',
+ 'gstplayer-media-info.c',
+ 'gstplayer-g-main-context-signal-dispatcher.c',
+ 'gstplayer-video-overlay-video-renderer.c',
+ 'gstplayer-visualization.c',
+]
+
+gstplayer_headers = [
+ 'player.h',
+ 'gstplayer.h',
+ 'gstplayer-types.h',
+ 'gstplayer-signal-dispatcher.h',
+ 'gstplayer-video-renderer.h',
+ 'gstplayer-media-info.h',
+ 'gstplayer-g-main-context-signal-dispatcher.h',
+ 'gstplayer-video-overlay-video-renderer.h',
+ 'gstplayer-visualization.h',
+]
+
+install_headers(gstplayer_headers, subdir : 'gstreamer-' + api_version + '/gst/player/')
+
+gstplayer = library('gstplayer-' + api_version,
+ gstplayer_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc, libsinc],
+ version : libversion,
+ soversion : soversion,
+ install : true,
+ dependencies : [gstbase_dep, gstvideo_dep, gstaudio_dep,
+ gsttag_dep, gstpbutils_dep],
+ vs_module_defs: vs_module_defs_dir + 'libgstplayer.def',
+)
+# TODO: gir
+
+gstplayer_dep = declare_dependency(link_with : gstplayer,
+ include_directories : [libsinc],
+ dependencies : [gstbase_dep, gstvideo_dep, gstaudio_dep,
+ gsttag_dep, gstpbutils_dep])
diff --git a/gst-libs/gst/uridownloader/meson.build b/gst-libs/gst/uridownloader/meson.build
new file mode 100644
index 000000000..23da6720f
--- /dev/null
+++ b/gst-libs/gst/uridownloader/meson.build
@@ -0,0 +1,25 @@
+urid_sources = [
+ 'gstfragment.c',
+ 'gsturidownloader.c',
+]
+urid_headers = [
+ 'gstfragment.h',
+ 'gsturidownloader.h',
+ 'gsturidownloader_debug.h',
+]
+install_headers(urid_headers, subdir : 'gstreamer-1.0/gst/uridownloader')
+
+gsturidownloader = library('gsturidownloader-' + api_version,
+ urid_sources,
+ c_args : gst_plugins_bad_args + [ '-DGST_USE_UNSTABLE_API' ],
+ include_directories : [configinc, libsinc],
+ version : libversion,
+ soversion : soversion,
+ install : true,
+ dependencies : [gstbase_dep],
+ vs_module_defs: vs_module_defs_dir + 'libgsturidownloader.def',
+)
+
+gsturidownloader_dep = declare_dependency(link_with : gsturidownloader,
+ include_directories : [libsinc],
+ dependencies : [gstbase_dep])
diff --git a/gst-libs/gst/video/meson.build b/gst-libs/gst/video/meson.build
new file mode 100644
index 000000000..b5941a6dc
--- /dev/null
+++ b/gst-libs/gst/video/meson.build
@@ -0,0 +1,24 @@
+badvideo_sources = [
+ 'gstvideoaggregator.c',
+]
+badvideo_headers = [
+ 'gstvideoaggregatorpad.h',
+ 'gstvideoaggregator.h'
+]
+install_headers(badvideo_headers, subdir : 'gstreamer-1.0/gst/video')
+
+
+gstbadvideo = library('gstbadvideo-' + api_version,
+ badvideo_sources,
+ c_args : gst_plugins_bad_args + ['-DGST_USE_UNSTABLE_API'],
+ include_directories : [configinc, libsinc],
+ version : libversion,
+ soversion : soversion,
+ install : true,
+ dependencies : [gstvideo_dep, gstbadbase_dep],
+ vs_module_defs: vs_module_defs_dir + 'libgstbadvideo.def',
+)
+
+gstbadvideo_dep = declare_dependency(link_with : gstbadvideo,
+ include_directories : [libsinc],
+ dependencies : [gstvideo_dep, gstbadbase_dep])
diff --git a/gst-libs/meson.build b/gst-libs/meson.build
new file mode 100644
index 000000000..668dcbaaf
--- /dev/null
+++ b/gst-libs/meson.build
@@ -0,0 +1 @@
+subdir('gst')
diff --git a/gst/accurip/meson.build b/gst/accurip/meson.build
new file mode 100644
index 000000000..ba2291430
--- /dev/null
+++ b/gst/accurip/meson.build
@@ -0,0 +1,12 @@
+accurip_sources = [
+ 'gstaccurip.c',
+]
+
+gstaccurip = library('gstaccurip',
+ accurip_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstaudio_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/adpcmdec/meson.build b/gst/adpcmdec/meson.build
new file mode 100644
index 000000000..64aa8df13
--- /dev/null
+++ b/gst/adpcmdec/meson.build
@@ -0,0 +1,12 @@
+adpcmdec_sources = [
+ 'adpcmdec.c'
+]
+
+gstadpcmdec = library('gstadpcmdec',
+ adpcmdec_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstaudio_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/adpcmenc/meson.build b/gst/adpcmenc/meson.build
new file mode 100644
index 000000000..8c29699b7
--- /dev/null
+++ b/gst/adpcmenc/meson.build
@@ -0,0 +1,12 @@
+gstadpcmenc_sources = [
+ 'adpcmenc.c'
+]
+
+gstadpcmenc = library('gstadpcmenc',
+ gstadpcmenc_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstaudio_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/aiff/meson.build b/gst/aiff/meson.build
new file mode 100644
index 000000000..20bb8305c
--- /dev/null
+++ b/gst/aiff/meson.build
@@ -0,0 +1,12 @@
+aiff_sources = [
+ 'aiff.c', 'aiffmux.c', 'aiffparse.c',
+]
+
+gstaiff = library('gstaiff',
+ aiff_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc, libsinc],
+ dependencies : [gstbase_dep, gsttag_dep, gstaudio_dep, gstpbutils_dep, libm],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/asfmux/meson.build b/gst/asfmux/meson.build
new file mode 100644
index 000000000..80fec5504
--- /dev/null
+++ b/gst/asfmux/meson.build
@@ -0,0 +1,16 @@
+asfmux_sources = [
+ 'gstasfmux.c',
+ 'gstasfobjects.c',
+ 'gstasfparse.c',
+ 'gstrtpasfpay.c',
+ 'gstasf.c',
+]
+
+gstasfmux = library('gstasfmux',
+ asfmux_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc, libsinc],
+ dependencies : [gstbase_dep, gstrtp_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/audiobuffer/meson.build b/gst/audiobuffer/meson.build
new file mode 100644
index 000000000..0edbbde82
--- /dev/null
+++ b/gst/audiobuffer/meson.build
@@ -0,0 +1,12 @@
+audiobuffer_sources = [
+ 'gstaudioringbuffer.c',
+]
+
+gstaudiobuffer = library('gstaudiobuffer',
+ audiobuffer_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc, libsinc],
+ dependencies : [gstbase_dep, gstaudio_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/audiofxbad/meson.build b/gst/audiofxbad/meson.build
new file mode 100644
index 000000000..b7c95318f
--- /dev/null
+++ b/gst/audiofxbad/meson.build
@@ -0,0 +1,13 @@
+audiofxbad_sources = [
+ 'gstaudiofxbad.c',
+ 'gstaudiochannelmix.c',
+]
+
+gstaudiofxbad = library('gstaudiofxbad',
+ audiofxbad_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstaudio_dep, libm],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/audiomixer/meson.build b/gst/audiomixer/meson.build
new file mode 100644
index 000000000..e635ee62d
--- /dev/null
+++ b/gst/audiomixer/meson.build
@@ -0,0 +1,33 @@
+audiomixer_sources = [
+ 'gstaudiomixer.c',
+ 'gstaudiointerleave.c',
+]
+
+orcsrc = 'gstaudiomixerorc'
+if have_orcc
+ orc_h = custom_target(orcsrc + '.h',
+ input : orcsrc + '.orc',
+ output : orcsrc + '.h',
+ command : orcc_args + ['--header', '-o', '@OUTPUT@', '@INPUT@'])
+ orc_c = custom_target(orcsrc + '.c',
+ input : orcsrc + '.orc',
+ output : orcsrc + '.c',
+ command : orcc_args + ['--implementation', '-o', '@OUTPUT@', '@INPUT@'])
+else
+ orc_h = configure_file(input : orcsrc + '-dist.h',
+ output : orcsrc + '.h',
+ configuration : configuration_data())
+ orc_c = configure_file(input : orcsrc + '-dist.c',
+ output : orcsrc + '.c',
+ configuration : configuration_data())
+endif
+
+gstaudiomixer = library('gstaudiomixer',
+ audiomixer_sources, orc_c, orc_h,
+ c_args : gst_plugins_bad_args + [ '-DGST_USE_UNSTABLE_API' ],
+ include_directories : [configinc],
+ dependencies : [gstbadaudio_dep, gstbadbase_dep, gstaudio_dep, gstbase_dep,
+ orc_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/audiovisualizers/meson.build b/gst/audiovisualizers/meson.build
new file mode 100644
index 000000000..f35e1a8f2
--- /dev/null
+++ b/gst/audiovisualizers/meson.build
@@ -0,0 +1,16 @@
+audiovis_sources = [
+ 'plugin.c',
+ 'gstspacescope.c',
+ 'gstspectrascope.c',
+ 'gstsynaescope.c',
+ 'gstwavescope.c',
+]
+
+gstaudiovisualizers = library('gstaudiovisualizers',
+ audiovis_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstpbutils_dep, gstaudio_dep, gstvideo_dep, gstfft_dep, libm],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/autoconvert/meson.build b/gst/autoconvert/meson.build
new file mode 100644
index 000000000..41edcd822
--- /dev/null
+++ b/gst/autoconvert/meson.build
@@ -0,0 +1,14 @@
+autocon_sources = [
+ 'gstautoconvert.c',
+ 'gstautovideoconvert.c',
+ 'plugin.c',
+]
+
+gstautoconvert = library('gstautoconvert',
+ autocon_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/bayer/meson.build b/gst/bayer/meson.build
new file mode 100644
index 000000000..512299300
--- /dev/null
+++ b/gst/bayer/meson.build
@@ -0,0 +1,33 @@
+bayer_sources = [
+ 'gstbayer.c',
+ 'gstbayer2rgb.c',
+ 'gstrgb2bayer.c',
+]
+
+orcsrc = 'gstbayerorc'
+if have_orcc
+ orc_h = custom_target(orcsrc + '.h',
+ input : orcsrc + '.orc',
+ output : orcsrc + '.h',
+ command : orcc_args + ['--header', '-o', '@OUTPUT@', '@INPUT@'])
+ orc_c = custom_target(orcsrc + '.c',
+ input : orcsrc + '.orc',
+ output : orcsrc + '.c',
+ command : orcc_args + ['--implementation', '-o', '@OUTPUT@', '@INPUT@'])
+else
+ orc_h = configure_file(input : orcsrc + '-dist.h',
+ output : orcsrc + '.h',
+ configuration : configuration_data())
+ orc_c = configure_file(input : orcsrc + '-dist.c',
+ output : orcsrc + '.c',
+ configuration : configuration_data())
+endif
+
+gstbayer = library('gstbayer',
+ bayer_sources, orc_c, orc_h,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc, libsinc],
+ dependencies : [gstbase_dep, gstvideo_dep, orc_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/camerabin2/meson.build b/gst/camerabin2/meson.build
new file mode 100644
index 000000000..b9c043aff
--- /dev/null
+++ b/gst/camerabin2/meson.build
@@ -0,0 +1,18 @@
+camerabin2_sources = [
+ 'gstdigitalzoom.c',
+ 'gstviewfinderbin.c',
+ 'camerabingeneral.c',
+ 'gstwrappercamerabinsrc.c',
+ 'gstcamerabin2.c',
+ 'gstplugin.c',
+]
+
+gstcamerabin2 = library('gstcamerabin2',
+ camerabin2_sources,
+ c_args : gst_plugins_bad_args + ['-DGST_USE_UNSTABLE_API'],
+ include_directories : [configinc, libsinc],
+ link_with : gstbasecamerabin,
+ dependencies : [gstbasecamerabin_dep, gstphotography_dep, gsttag_dep, gstapp_dep, gstpbutils_dep, gstbase_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/cdxaparse/meson.build b/gst/cdxaparse/meson.build
new file mode 100644
index 000000000..34ef664f0
--- /dev/null
+++ b/gst/cdxaparse/meson.build
@@ -0,0 +1,13 @@
+cdxaparse_sources = [
+ 'gstcdxaparse.c',
+ 'gstvcdparse.c',
+]
+
+gstcdxaparse = library('gstcdxaparse',
+ cdxaparse_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstriff_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/coloreffects/meson.build b/gst/coloreffects/meson.build
new file mode 100644
index 000000000..c45ed32eb
--- /dev/null
+++ b/gst/coloreffects/meson.build
@@ -0,0 +1,14 @@
+coloreffects_sources = [
+ 'gstplugin.c',
+ 'gstcoloreffects.c',
+ 'gstchromahold.c',
+]
+
+gstcoloreffects = library('gstcoloreffects',
+ coloreffects_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstvideo_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/compositor/meson.build b/gst/compositor/meson.build
new file mode 100644
index 000000000..2e948fcb0
--- /dev/null
+++ b/gst/compositor/meson.build
@@ -0,0 +1,33 @@
+compositor_sources = [
+ 'blend.c',
+ 'compositor.c',
+]
+
+orcsrc = 'compositororc'
+if have_orcc
+ orc_h = custom_target(orcsrc + '.h',
+ input : orcsrc + '.orc',
+ output : orcsrc + '.h',
+ command : orcc_args + ['--header', '-o', '@OUTPUT@', '@INPUT@'])
+ orc_c = custom_target(orcsrc + '.c',
+ input : orcsrc + '.orc',
+ output : orcsrc + '.c',
+ command : orcc_args + ['--implementation', '-o', '@OUTPUT@', '@INPUT@'])
+else
+ orc_h = configure_file(input : orcsrc + '-dist.h',
+ output : orcsrc + '.h',
+ configuration : configuration_data())
+ orc_c = configure_file(input : orcsrc + '-dist.c',
+ output : orcsrc + '.c',
+ configuration : configuration_data())
+endif
+
+gstcompositor = library('gstcompositor',
+ compositor_sources, orc_c, orc_h,
+ c_args : gst_plugins_bad_args + ['-DGST_USE_UNSTABLE_API'],
+ include_directories : [configinc],
+ dependencies : [gstbadvideo_dep, gstbadbase_dep, gstvideo_dep, gstbase_dep,
+ orc_dep, libm],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/dataurisrc/meson.build b/gst/dataurisrc/meson.build
new file mode 100644
index 000000000..409899c2e
--- /dev/null
+++ b/gst/dataurisrc/meson.build
@@ -0,0 +1,12 @@
+dataurisrc_sources = [
+ 'gstdataurisrc.c',
+]
+
+gstdatauri = library('gstdataurisrc',
+ dataurisrc_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/dccp/meson.build b/gst/dccp/meson.build
new file mode 100644
index 000000000..6682f6b05
--- /dev/null
+++ b/gst/dccp/meson.build
@@ -0,0 +1,17 @@
+dccp_sources = [
+ 'gstdccpplugin.c',
+ 'gstdccp.c',
+ 'gstdccpserversink.c',
+ 'gstdccpserversrc.c',
+ 'gstdccpclientsink.c',
+ 'gstdccpclientsrc.c',
+]
+
+gstdccp = library('gstdccp',
+ dccp_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc, libsinc],
+ dependencies : [gstbase_dep] + winsock2,
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/debugutils/meson.build b/gst/debugutils/meson.build
new file mode 100644
index 000000000..648984df5
--- /dev/null
+++ b/gst/debugutils/meson.build
@@ -0,0 +1,27 @@
+debugutilsbad_sources = [
+ 'gstdebugspy.c',
+ 'gsterrorignore.c',
+ 'debugutilsbad.c',
+ 'fpsdisplaysink.c',
+ 'gstchecksumsink.c',
+ 'gstchopmydata.c',
+ 'gstcompare.c',
+ 'gstwatchdog.c',
+]
+
+debugutilsbad_headers = [
+ 'gstchecksumsink.h',
+ 'gstchopmydata.h',
+ 'gstcompare.h',
+ 'gstdebugspy.h',
+ 'gstwatchdog.h',
+]
+
+gstdebugutilsbad = library('gstdebugutilsbad',
+ debugutilsbad_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstvideo_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/dvbsuboverlay/meson.build b/gst/dvbsuboverlay/meson.build
new file mode 100644
index 000000000..e532e79e7
--- /dev/null
+++ b/gst/dvbsuboverlay/meson.build
@@ -0,0 +1,13 @@
+subover_sources = [
+ 'dvb-sub.c',
+ 'gstdvbsuboverlay.c',
+]
+
+gstdvbsuboverlay = library('gstdvbsuboverlay',
+ subover_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc, libsinc],
+ dependencies : [gstbase_dep, gstvideo_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/dvdspu/meson.build b/gst/dvdspu/meson.build
new file mode 100644
index 000000000..4e4755b4a
--- /dev/null
+++ b/gst/dvdspu/meson.build
@@ -0,0 +1,16 @@
+dvdspu_sources = [
+ 'gstdvdspu.c',
+ 'gstdvdspu-render.c',
+ 'gstspu-vobsub.c',
+ 'gstspu-vobsub-render.c',
+ 'gstspu-pgs.c',
+]
+
+gstdvdspu = library('gstdvdspu',
+ dvdspu_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc, libsinc],
+ dependencies : [gstbase_dep, gstvideo_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/faceoverlay/meson.build b/gst/faceoverlay/meson.build
new file mode 100644
index 000000000..65aa7295d
--- /dev/null
+++ b/gst/faceoverlay/meson.build
@@ -0,0 +1,12 @@
+fover_sources = [
+ 'gstfaceoverlay.c',
+]
+
+gstfaceoverlay = library('gstfaceoverlay',
+ fover_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstvideo_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/festival/meson.build b/gst/festival/meson.build
new file mode 100644
index 000000000..820933459
--- /dev/null
+++ b/gst/festival/meson.build
@@ -0,0 +1,12 @@
+festival_sources = [
+ 'gstfestival.c'
+]
+
+gstfestival = library('gstfestival',
+ festival_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstaudio_dep] + winsock2,
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/fieldanalysis/meson.build b/gst/fieldanalysis/meson.build
new file mode 100644
index 000000000..21b4976b6
--- /dev/null
+++ b/gst/fieldanalysis/meson.build
@@ -0,0 +1,31 @@
+fielda_sources = [
+ 'gstfieldanalysis.c'
+]
+
+orcsrc = 'gstfieldanalysisorc'
+if have_orcc
+ orc_h = custom_target(orcsrc + '.h',
+ input : orcsrc + '.orc',
+ output : orcsrc + '.h',
+ command : orcc_args + ['--header', '-o', '@OUTPUT@', '@INPUT@'])
+ orc_c = custom_target(orcsrc + '.c',
+ input : orcsrc + '.orc',
+ output : orcsrc + '.c',
+ command : orcc_args + ['--implementation', '-o', '@OUTPUT@', '@INPUT@'])
+else
+ orc_h = configure_file(input : orcsrc + '-dist.h',
+ output : orcsrc + '.h',
+ configuration : configuration_data())
+ orc_c = configure_file(input : orcsrc + '-dist.c',
+ output : orcsrc + '.c',
+ configuration : configuration_data())
+endif
+
+gstfieldanalysis = library('gstfieldanalysis',
+ fielda_sources, orc_c, orc_h,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstvideo_dep, orc_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/freeverb/meson.build b/gst/freeverb/meson.build
new file mode 100644
index 000000000..414f076e1
--- /dev/null
+++ b/gst/freeverb/meson.build
@@ -0,0 +1,12 @@
+freeverb_sources = [
+ 'gstfreeverb.c',
+]
+
+gstfreeverb = library('gstfreeverb',
+ freeverb_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstaudio_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/frei0r/meson.build b/gst/frei0r/meson.build
new file mode 100644
index 000000000..fed49639d
--- /dev/null
+++ b/gst/frei0r/meson.build
@@ -0,0 +1,15 @@
+frei0r_sources = [
+ 'gstfrei0r.c',
+ 'gstfrei0rfilter.c',
+ 'gstfrei0rsrc.c',
+ 'gstfrei0rmixer.c',
+]
+
+gstfrei0r = library('gstfrei0r',
+ frei0r_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstvideo_dep, gmodule_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/games/meson.build b/gst/games/meson.build
new file mode 100644
index 000000000..e3509278e
--- /dev/null
+++ b/gst/games/meson.build
@@ -0,0 +1,13 @@
+games_sources = [
+ 'gstvideoimage.c',
+ 'gstpuzzle.c',
+]
+
+gstpuzzle = library('gstpuzzle',
+ games_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/gaudieffects/meson.build b/gst/gaudieffects/meson.build
new file mode 100644
index 000000000..eb9bfe0bb
--- /dev/null
+++ b/gst/gaudieffects/meson.build
@@ -0,0 +1,38 @@
+gaudio_sources = [
+ 'gstburn.c',
+ 'gstchromium.c',
+ 'gstdilate.c',
+ 'gstdodge.c',
+ 'gstexclusion.c',
+ 'gstgaussblur.c',
+ 'gstsolarize.c',
+ 'gstplugin.c',
+]
+
+orcsrc = 'gstgaudieffectsorc'
+if have_orcc
+ orc_h = custom_target(orcsrc + '.h',
+ input : orcsrc + '.orc',
+ output : orcsrc + '.h',
+ command : orcc_args + ['--header', '-o', '@OUTPUT@', '@INPUT@'])
+ orc_c = custom_target(orcsrc + '.c',
+ input : orcsrc + '.orc',
+ output : orcsrc + '.c',
+ command : orcc_args + ['--implementation', '-o', '@OUTPUT@', '@INPUT@'])
+else
+ orc_h = configure_file(input : orcsrc + '-dist.h',
+ output : orcsrc + '.h',
+ configuration : configuration_data())
+ orc_c = configure_file(input : orcsrc + '-dist.c',
+ output : orcsrc + '.c',
+ configuration : configuration_data())
+endif
+
+gstgaudioeffects = library('gstgaudieffects',
+ gaudio_sources, orc_c, orc_h,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstvideo_dep, orc_dep, libm],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/gdp/meson.build b/gst/gdp/meson.build
new file mode 100644
index 000000000..c6ec5334d
--- /dev/null
+++ b/gst/gdp/meson.build
@@ -0,0 +1,15 @@
+gdp_sources = [
+ 'dataprotocol.c',
+ 'gstgdp.c',
+ 'gstgdppay.c',
+ 'gstgdpdepay.c',
+]
+
+gstdgp = library('gstgdp',
+ gdp_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/geometrictransform/meson.build b/gst/geometrictransform/meson.build
new file mode 100644
index 000000000..b933a973a
--- /dev/null
+++ b/gst/geometrictransform/meson.build
@@ -0,0 +1,31 @@
+geotr_sources = [
+ 'plugin.c',
+ 'gstgeometrictransform.c',
+ 'gstcirclegeometrictransform.c',
+ 'geometricmath.c',
+ 'gstcircle.c',
+ 'gstdiffuse.c',
+ 'gstkaleidoscope.c',
+ 'gstmarble.c',
+ 'gstpinch.c',
+ 'gstrotate.c',
+ 'gstsphere.c',
+ 'gsttwirl.c',
+ 'gstwaterripple.c',
+ 'gststretch.c',
+ 'gstbulge.c',
+ 'gsttunnel.c',
+ 'gstsquare.c',
+ 'gstmirror.c',
+ 'gstfisheye.c',
+ 'gstperspective.c',
+]
+
+gstgeometrictransform = library('gstgeometrictransform',
+ geotr_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstvideo_dep, libm],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/hdvparse/meson.build b/gst/hdvparse/meson.build
new file mode 100644
index 000000000..4ffa3665d
--- /dev/null
+++ b/gst/hdvparse/meson.build
@@ -0,0 +1,12 @@
+hdv_sources = [
+ 'gsthdvparse.c'
+]
+
+gsthdvparse = library('gsthdvparse',
+ hdv_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, libm],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/id3tag/meson.build b/gst/id3tag/meson.build
new file mode 100644
index 000000000..153b6cac5
--- /dev/null
+++ b/gst/id3tag/meson.build
@@ -0,0 +1,13 @@
+id3_sources = [
+ 'gstid3mux.c',
+ 'id3tag.c',
+]
+
+gstid3tag = library('gstid3tag',
+ id3_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gsttag_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/inter/meson.build b/gst/inter/meson.build
new file mode 100644
index 000000000..e9836510a
--- /dev/null
+++ b/gst/inter/meson.build
@@ -0,0 +1,19 @@
+inter_sources = [
+ 'gstinteraudiosink.c',
+ 'gstinteraudiosrc.c',
+ 'gstintersubsink.c',
+ 'gstintersubsrc.c',
+ 'gstintervideosink.c',
+ 'gstintervideosrc.c',
+ 'gstinter.c',
+ 'gstintersurface.c',
+]
+
+gstinter = library('gstinter',
+ inter_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstaudio_dep, gstvideo_dep, gstbase_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/interlace/meson.build b/gst/interlace/meson.build
new file mode 100644
index 000000000..c3aa1ee3b
--- /dev/null
+++ b/gst/interlace/meson.build
@@ -0,0 +1,12 @@
+interlace_sources = [
+ 'gstinterlace.c',
+]
+
+gstinterlace = library('gstinterlace',
+ interlace_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstvideo_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/ivfparse/meson.build b/gst/ivfparse/meson.build
new file mode 100644
index 000000000..3d3cd23ab
--- /dev/null
+++ b/gst/ivfparse/meson.build
@@ -0,0 +1,12 @@
+ivfparse_sources = [
+ 'gstivfparse.c',
+]
+
+gstivfparse = library('gstivfparse',
+ ivfparse_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/ivtc/meson.build b/gst/ivtc/meson.build
new file mode 100644
index 000000000..98b5fda5b
--- /dev/null
+++ b/gst/ivtc/meson.build
@@ -0,0 +1,13 @@
+ivtc_sources = [
+ 'gstivtc.c',
+ 'gstcombdetect.c',
+]
+
+gstivtc = library('gstivtc',
+ ivtc_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstvideo_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/jp2kdecimator/meson.build b/gst/jp2kdecimator/meson.build
new file mode 100644
index 000000000..5d740d294
--- /dev/null
+++ b/gst/jp2kdecimator/meson.build
@@ -0,0 +1,13 @@
+jp2_sources = [
+ 'gstjp2kdecimator.c',
+ 'jp2kcodestream.c',
+]
+
+gstjp2kdecimator = library('gstjp2kdecimator',
+ jp2_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/jpegformat/meson.build b/gst/jpegformat/meson.build
new file mode 100644
index 000000000..c93fe7bc6
--- /dev/null
+++ b/gst/jpegformat/meson.build
@@ -0,0 +1,14 @@
+jpegf_sources = [
+ 'gstjpegformat.c',
+ 'gstjpegparse.c',
+ 'gstjifmux.c',
+]
+
+gstjpegformat = library('gstjpegformat',
+ jpegf_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gsttag_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/librfb/meson.build b/gst/librfb/meson.build
new file mode 100644
index 000000000..6206b62e8
--- /dev/null
+++ b/gst/librfb/meson.build
@@ -0,0 +1,16 @@
+rfbsrc_sources = [
+ 'gstrfbsrc.c',
+ 'rfbdecoder.c',
+ 'd3des.c',
+]
+
+librfb_incs = include_directories('..')
+
+gstrfbsrc = library('gstrfbsrc',
+ rfbsrc_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc, libsinc, librfb_incs],
+ dependencies : [gstbase_dep, gstvideo_dep, gio_dep, x11_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/meson.build b/gst/meson.build
new file mode 100644
index 000000000..24bacaea8
--- /dev/null
+++ b/gst/meson.build
@@ -0,0 +1,94 @@
+subdir('accurip')
+subdir('adpcmdec')
+subdir('adpcmenc')
+subdir('aiff')
+subdir('asfmux')
+# not ported to 1.0
+#subdir('audiobuffer')
+subdir('audiofxbad')
+subdir('audiomixer')
+subdir('audiovisualizers')
+subdir('autoconvert')
+subdir('bayer')
+subdir('camerabin2')
+# did not work
+#subdir('cdxaparse')
+subdir('coloreffects')
+subdir('compositor')
+subdir('dataurisrc')
+#did not work
+#subdir('dccp')
+subdir('debugutils')
+subdir('dvbsuboverlay')
+subdir('dvdspu')
+# did not work
+#subdir('faceoverlay')
+subdir('festival')
+subdir('fieldanalysis')
+subdir('freeverb')
+subdir('frei0r')
+# did not work
+#subdir('games')
+subdir('gaudieffects')
+subdir('gdp')
+subdir('geometrictransform')
+#did not work
+#subdir('hdvparse')
+subdir('id3tag')
+subdir('inter')
+subdir('interlace')
+subdir('ivfparse')
+subdir('ivtc')
+subdir('jp2kdecimator')
+subdir('jpegformat')
+subdir('librfb')
+subdir('midi')
+#did not work
+#subdir('mixmatrix')
+#did not work
+#subdir('mpeg1sys')
+subdir('mpegdemux')
+subdir('mpegpsmux')
+subdir('mpegtsdemux')
+subdir('mpegtsmux')
+#did not work
+#subdir('mve')
+subdir('mxf')
+#did not work
+#subdir('nuvdemux')
+subdir('onvif')
+#did not work
+#subdir('overlay')
+#did not work
+#subdir('patchdetect')
+subdir('pcapparse')
+subdir('pnm')
+subdir('rawparse')
+#did not work
+#subdir('real')
+subdir('removesilence')
+#did not work
+#subdir('rtjpeg')
+#did not work
+#subdir('sdi')
+subdir('sdp')
+subdir('segmentclip')
+subdir('siren')
+subdir('smooth')
+#subdir('smoothwave')
+subdir('speed')
+subdir('stereo')
+subdir('subenc')
+#did not work
+#subdir('tta')
+#did not work
+#subdir('vbidec')
+subdir('videofilters')
+subdir('videoframe_audiolevel')
+# did not work
+#subdir('videomeasure')
+subdir('videoparsers')
+subdir('videosignal')
+subdir('vmnc')
+subdir('y4m')
+subdir('yadif')
diff --git a/gst/midi/meson.build b/gst/midi/meson.build
new file mode 100644
index 000000000..c10b11974
--- /dev/null
+++ b/gst/midi/meson.build
@@ -0,0 +1,13 @@
+midi_sources = [
+ 'midi.c',
+ 'midiparse.c',
+]
+
+gstmidi = library('gstmidi',
+ midi_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc, libsinc],
+ dependencies : [gstbase_dep, gsttag_dep, libm],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/mixmatrix/meson.build b/gst/mixmatrix/meson.build
new file mode 100644
index 000000000..35c2f8688
--- /dev/null
+++ b/gst/mixmatrix/meson.build
@@ -0,0 +1,12 @@
+mixmat_sources = [
+ 'mixmatrix.c',
+]
+
+gstmixmatrix = library('gstmixmatrix',
+ mixmat_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/mpeg1sys/meson.build b/gst/mpeg1sys/meson.build
new file mode 100644
index 000000000..02637bc3a
--- /dev/null
+++ b/gst/mpeg1sys/meson.build
@@ -0,0 +1,14 @@
+mpeg1_sources = [
+ 'gstmpeg1systemencode.c',
+ 'buffer.c',
+ 'systems.c',
+]
+
+gstmpeg1systemencode = library('gstmpeg1systemencode',
+ mpeg1_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/mpegdemux/meson.build b/gst/mpegdemux/meson.build
new file mode 100644
index 000000000..3c275732d
--- /dev/null
+++ b/gst/mpegdemux/meson.build
@@ -0,0 +1,14 @@
+mpegd_sources = [
+ 'plugin.c',
+ 'gstmpegdemux.c',
+ 'gstpesfilter.c',
+]
+
+gstmpedpsdemux = library('gstmpegpsdemux',
+ mpegd_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gsttag_dep, gstpbutils_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/mpegpsmux/meson.build b/gst/mpegpsmux/meson.build
new file mode 100644
index 000000000..1b511e812
--- /dev/null
+++ b/gst/mpegpsmux/meson.build
@@ -0,0 +1,16 @@
+psmux_sources = [
+ 'mpegpsmux.c',
+ 'psmux.c',
+ 'psmuxstream.c',
+ 'mpegpsmux_aac.c',
+ 'mpegpsmux_h264.c',
+]
+
+gstmpegpsmux = library('gstmpegpsmux',
+ psmux_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/mpegtsdemux/meson.build b/gst/mpegtsdemux/meson.build
new file mode 100644
index 000000000..202dba84c
--- /dev/null
+++ b/gst/mpegtsdemux/meson.build
@@ -0,0 +1,18 @@
+tsdemux_sources = [
+ 'mpegtspacketizer.c',
+ 'mpegtsbase.c',
+ 'mpegtsparse.c',
+ 'tsdemux.c',
+ 'gsttsdemux.c',
+ 'pesparse.c',
+]
+
+gstmpegtsdemux = library('gstmpegtsdemux',
+ tsdemux_sources,
+ c_args : gst_plugins_bad_args + ['-DGST_USE_UNSTABLE_API'],
+ include_directories : [configinc, libsinc],
+ dependencies : [gstcodecparsers_dep, gstmpegts_dep, gsttag_dep,
+ gstpbutils_dep, gstaudio_dep, gstbase_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/mpegtsmux/meson.build b/gst/mpegtsmux/meson.build
new file mode 100644
index 000000000..45648f1ed
--- /dev/null
+++ b/gst/mpegtsmux/meson.build
@@ -0,0 +1,18 @@
+tsmux_sources = [
+ 'mpegtsmux.c',
+ 'mpegtsmux_aac.c',
+ 'mpegtsmux_opus.c',
+ 'mpegtsmux_ttxt.c',
+ 'tsmux/tsmux.c',
+ 'tsmux/tsmuxstream.c',
+]
+
+gstmpegtsmux = library('gstmpegtsmux',
+ tsmux_sources,
+ c_args : gst_plugins_bad_args + ['-DGST_USE_UNSTABLE_API'],
+ include_directories : [configinc, libsinc],
+ dependencies : [gstmpegts_dep, gsttag_dep, gstpbutils_dep,
+ gstaudio_dep, gstvideo_dep, gstbase_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/mve/meson.build b/gst/mve/meson.build
new file mode 100644
index 000000000..ce389044e
--- /dev/null
+++ b/gst/mve/meson.build
@@ -0,0 +1,20 @@
+mve_sources = [
+ 'gstmve.c',
+ 'gstmvemux.c',
+ 'gstmvedemux.c',
+ 'mveaudiodec.c',
+ 'mvevideodec8.c',
+ 'mvevideodec16.c',
+ 'mveaudioenc.c',
+ 'mvevideoenc8.c',
+ 'mvevideoenc16.c',
+]
+
+gstmve = library('gstmve',
+ mve_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc, libsinc],
+ dependencies : [gstbase_dep, libm],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/mxf/meson.build b/gst/mxf/meson.build
new file mode 100644
index 000000000..6950741a9
--- /dev/null
+++ b/gst/mxf/meson.build
@@ -0,0 +1,28 @@
+mxf_sources = [
+ 'mxf.c',
+ 'mxful.c',
+ 'mxftypes.c',
+ 'mxfmetadata.c',
+ 'mxfessence.c',
+ 'mxfquark.c',
+ 'mxfmux.c',
+ 'mxfdemux.c',
+ 'mxfaes-bwf.c',
+ 'mxfmpeg.c',
+ 'mxfdv-dif.c',
+ 'mxfalaw.c',
+ 'mxfjpeg2000.c',
+ 'mxfd10.c',
+ 'mxfup.c',
+ 'mxfvc3.c',
+ 'mxfdms1.c',
+]
+
+gstmxf = library('gstmxf',
+ mxf_sources,
+ c_args : gst_plugins_bad_args + [ '-DGST_USE_UNSTABLE_API' ],
+ include_directories : [configinc],
+ dependencies : [gstbadbase_dep, gstbase_dep, gstaudio_dep, gstvideo_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/nuvdemux/meson.build b/gst/nuvdemux/meson.build
new file mode 100644
index 000000000..c6d803df6
--- /dev/null
+++ b/gst/nuvdemux/meson.build
@@ -0,0 +1,12 @@
+nuvd_sources = [
+ 'gstnuvdemux.c',
+]
+
+gstnuvdemux = library('gstnuvdemux',
+ nuvd_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc, libsinc],
+ dependencies : [gstbase_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/onvif/meson.build b/gst/onvif/meson.build
new file mode 100644
index 000000000..d88528df0
--- /dev/null
+++ b/gst/onvif/meson.build
@@ -0,0 +1,14 @@
+onvif_sources = [
+ 'gstrtponvif.c',
+ 'gstrtponvifparse.c',
+ 'gstrtponviftimestamp.c',
+]
+
+gstonvif = library('gstonvif',
+ onvif_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstrtp_dep, gstbase_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/overlay/meson.build b/gst/overlay/meson.build
new file mode 100644
index 000000000..56854bcd5
--- /dev/null
+++ b/gst/overlay/meson.build
@@ -0,0 +1,12 @@
+overlay_sources = [
+ 'gstoverlay.c',
+]
+
+gstoverlay = library('gstoverlay',
+ overlay_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gst_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/patchdetect/meson.build b/gst/patchdetect/meson.build
new file mode 100644
index 000000000..1ee773469
--- /dev/null
+++ b/gst/patchdetect/meson.build
@@ -0,0 +1,12 @@
+patch_sources = [
+ 'gstpatchdetect.c',
+]
+
+gstpatchdetect = library('gstpatchdetect',
+ patch_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstvideo_dep, libm],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/pcapparse/meson.build b/gst/pcapparse/meson.build
new file mode 100644
index 000000000..11b07b6f7
--- /dev/null
+++ b/gst/pcapparse/meson.build
@@ -0,0 +1,14 @@
+capp_sources = [
+ 'gstpcapparse.c',
+ 'gstirtspparse.c',
+ 'plugin.c',
+]
+
+gstpcapparse = library('gstpcapparse',
+ capp_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep] + winsock2,
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/pnm/meson.build b/gst/pnm/meson.build
new file mode 100644
index 000000000..424d61f7d
--- /dev/null
+++ b/gst/pnm/meson.build
@@ -0,0 +1,15 @@
+pnm_sources = [
+ 'gstpnmutils.c',
+ 'gstpnm.c',
+ 'gstpnmdec.c',
+ 'gstpnmenc.c',
+]
+
+gstpnm = library('gstpnm',
+ pnm_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstvideo_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/rawparse/meson.build b/gst/rawparse/meson.build
new file mode 100644
index 000000000..5222462a0
--- /dev/null
+++ b/gst/rawparse/meson.build
@@ -0,0 +1,19 @@
+raw_sources = [
+ 'gstunalignedaudioparse.c',
+ 'gstunalignedvideoparse.c',
+ 'gstaudioparse.c',
+ 'gstvideoparse.c',
+ 'gstrawbaseparse.c',
+ 'gstrawaudioparse.c',
+ 'gstrawvideoparse.c',
+ 'plugin.c',
+]
+
+gstrawparse = library('gstrawparse',
+ raw_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstvideo_dep, gstaudio_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/real/meson.build b/gst/real/meson.build
new file mode 100644
index 000000000..a63000135
--- /dev/null
+++ b/gst/real/meson.build
@@ -0,0 +1,14 @@
+real_sources = [
+ 'gstrealvideodec.c',
+ 'gstrealaudiodec.c',
+ 'gstreal.c',
+]
+
+gstreal = library('gstreal',
+ real_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstaudio_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/removesilence/meson.build b/gst/removesilence/meson.build
new file mode 100644
index 000000000..918e960b0
--- /dev/null
+++ b/gst/removesilence/meson.build
@@ -0,0 +1,13 @@
+silence_sources = [
+ 'gstremovesilence.c',
+ 'vad_private.c',
+]
+
+gstremovesilence = library('gstremovesilence',
+ silence_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstaudio_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/rtjpeg/meson.build b/gst/rtjpeg/meson.build
new file mode 100644
index 000000000..e583baf83
--- /dev/null
+++ b/gst/rtjpeg/meson.build
@@ -0,0 +1,15 @@
+rtjpeg_sources = [
+ 'gstrtjpeg.c',
+ 'gstrtjpegenc.c',
+ 'gstrtjpegdec.c',
+ 'RTjpeg.c',
+]
+
+gstrtjpeg = library('gstrtjpeg',
+ rtjpeg_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/sdi/meson.build b/gst/sdi/meson.build
new file mode 100644
index 000000000..022002541
--- /dev/null
+++ b/gst/sdi/meson.build
@@ -0,0 +1,13 @@
+sdi_sources = [
+ 'gstsdidemux.c',
+ 'gstsdimux.c',
+]
+
+gstsdi = library('gstsdi',
+ sdi_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/sdp/meson.build b/gst/sdp/meson.build
new file mode 100644
index 000000000..4585503d8
--- /dev/null
+++ b/gst/sdp/meson.build
@@ -0,0 +1,15 @@
+sdp_sources = [
+ 'gstsdpelem.c',
+ 'gstsdpdemux.h',
+ 'gstsdpdemux.c',
+ 'gstsdpsrc.c'
+]
+
+gstsdpelem = library('gstsdpelem',
+ sdp_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstrtp_dep, gstsdp_dep, gio_dep, gstapp_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/segmentclip/meson.build b/gst/segmentclip/meson.build
new file mode 100644
index 000000000..99d54af1d
--- /dev/null
+++ b/gst/segmentclip/meson.build
@@ -0,0 +1,15 @@
+segment_sources = [
+ 'gstsegmentclip.c',
+ 'gstaudiosegmentclip.c',
+ 'gstvideosegmentclip.c',
+ 'plugin.c',
+]
+
+gstsegmentclip = library('gstsegmentclip',
+ segment_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstaudio_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/siren/meson.build b/gst/siren/meson.build
new file mode 100644
index 000000000..f0c8b0740
--- /dev/null
+++ b/gst/siren/meson.build
@@ -0,0 +1,20 @@
+siren_sources = [
+ 'gstsiren.c',
+ 'gstsirendec.c',
+ 'gstsirenenc.c',
+ 'common.c',
+ 'dct4.c',
+ 'decoder.c',
+ 'encoder.c',
+ 'huffman.c',
+ 'rmlt.c',
+]
+
+gstsiren = library('gstsiren',
+ siren_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstaudio_dep, libm],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/smooth/meson.build b/gst/smooth/meson.build
new file mode 100644
index 000000000..f266ee1dc
--- /dev/null
+++ b/gst/smooth/meson.build
@@ -0,0 +1,12 @@
+smooth_sources = [
+ 'gstsmooth.c',
+]
+
+gstsmooth = library('gstsmooth',
+ smooth_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstvideo_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/speed/meson.build b/gst/speed/meson.build
new file mode 100644
index 000000000..23ebd42cc
--- /dev/null
+++ b/gst/speed/meson.build
@@ -0,0 +1,12 @@
+speed_sources = [
+ 'gstspeed.c'
+]
+
+gstspeed = library('gstspeed',
+ speed_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstaudio_dep, libm],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/stereo/meson.build b/gst/stereo/meson.build
new file mode 100644
index 000000000..411724337
--- /dev/null
+++ b/gst/stereo/meson.build
@@ -0,0 +1,12 @@
+stereo_sources = [
+ 'gststereo.c',
+]
+
+gststereo = library('gststereo',
+ stereo_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstaudio_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/subenc/meson.build b/gst/subenc/meson.build
new file mode 100644
index 000000000..2ec87eca3
--- /dev/null
+++ b/gst/subenc/meson.build
@@ -0,0 +1,14 @@
+subenc_sources = [
+ 'gstsrtenc.c',
+ 'gstsubenc.c',
+ 'gstwebvttenc.c',
+]
+
+gstsubenc = library('gstsubenc',
+ subenc_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/tta/meson.build b/gst/tta/meson.build
new file mode 100644
index 000000000..cd14b3f9a
--- /dev/null
+++ b/gst/tta/meson.build
@@ -0,0 +1,14 @@
+tta_sources = [
+ 'gsttta.c',
+ 'gstttaparse.c',
+ 'gstttadec.c',
+]
+
+gsttta = library('gsttta',
+ tta_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/vbidec/meson.build b/gst/vbidec/meson.build
new file mode 100644
index 000000000..43d870e6c
--- /dev/null
+++ b/gst/vbidec/meson.build
@@ -0,0 +1,14 @@
+vbi_sources = [
+ 'gstvbidec.c',
+ 'vbidata.c',
+ 'vbiscreen.c',
+]
+
+gstvbidec = library('gstvbidec',
+ vbi_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/videofilters/meson.build b/gst/videofilters/meson.build
new file mode 100644
index 000000000..cd5313997
--- /dev/null
+++ b/gst/videofilters/meson.build
@@ -0,0 +1,15 @@
+vfilt_sources = [
+ 'gstzebrastripe.c',
+ 'gstscenechange.c',
+ 'gstvideodiff.c',
+ 'gstvideofiltersbad.c',
+]
+
+gstvideofiltersbad = library('gstvideofiltersbad',
+ vfilt_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstvideo_dep, gstbase_dep, orc_dep, libm],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/videoframe_audiolevel/meson.build b/gst/videoframe_audiolevel/meson.build
new file mode 100644
index 000000000..b21ae88ba
--- /dev/null
+++ b/gst/videoframe_audiolevel/meson.build
@@ -0,0 +1,12 @@
+videoframe_audiolevel_sources = [
+ 'gstvideoframe-audiolevel.c',
+]
+
+gstvideoframe_audiolevel = library('gstvideoframe_audiolevel',
+ videoframe_audiolevel_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstvideo_dep, gstaudio_dep, libm],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/videomeasure/meson.build b/gst/videomeasure/meson.build
new file mode 100644
index 000000000..4b0eaf6d6
--- /dev/null
+++ b/gst/videomeasure/meson.build
@@ -0,0 +1,14 @@
+measure_sources = [
+ 'gstvideomeasure.c',
+ 'gstvideomeasure_ssim.c',
+ 'gstvideomeasure_collector.c',
+]
+
+gstvideomeasure = library('gstvideomeasure',
+ measure_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc, libsinc],
+ dependencies : [gstbase_dep, gstvideo_dep, libm],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/videoparsers/meson.build b/gst/videoparsers/meson.build
new file mode 100644
index 000000000..bfb90a847
--- /dev/null
+++ b/gst/videoparsers/meson.build
@@ -0,0 +1,23 @@
+vparse_sources = [
+ 'plugin.c',
+ 'h263parse.c',
+ 'gsth263parse.c',
+ 'gstdiracparse.c',
+ 'dirac_parse.c',
+ 'gsth264parse.c',
+ 'gstmpegvideoparse.c',
+ 'gstmpeg4videoparse.c',
+ 'gstpngparse.c',
+ 'gstvc1parse.c',
+ 'gsth265parse.c',
+ 'gstjpeg2000parse.c',
+]
+
+gstvideoparsersbad = library('gstvideoparsersbad',
+ vparse_sources,
+ c_args : gst_plugins_bad_args + [ '-DGST_USE_UNSTABLE_API' ],
+ include_directories : [configinc],
+ dependencies : [gstcodecparsers_dep, gstbase_dep, gstpbutils_dep, gstvideo_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/videosignal/meson.build b/gst/videosignal/meson.build
new file mode 100644
index 000000000..7751f37ac
--- /dev/null
+++ b/gst/videosignal/meson.build
@@ -0,0 +1,15 @@
+vsignal_sources = [
+ 'gstvideosignal.c',
+ 'gstvideoanalyse.c',
+ 'gstsimplevideomarkdetect.c',
+ 'gstsimplevideomark.c',
+]
+
+gstvideosignal = library('gstvideosignal',
+ vsignal_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstvideo_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/vmnc/meson.build b/gst/vmnc/meson.build
new file mode 100644
index 000000000..782742dd0
--- /dev/null
+++ b/gst/vmnc/meson.build
@@ -0,0 +1,12 @@
+vmnc_sources = [
+ 'vmncdec.c',
+]
+
+gstvmnc = library('gstvmnc',
+ vmnc_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstvideo_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/y4m/meson.build b/gst/y4m/meson.build
new file mode 100644
index 000000000..d7ba77ba5
--- /dev/null
+++ b/gst/y4m/meson.build
@@ -0,0 +1,12 @@
+y4_sources = [
+ 'gsty4mdec.c'
+]
+
+gsty4mdec = library('gsty4mdec',
+ y4_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstvideo_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/gst/yadif/meson.build b/gst/yadif/meson.build
new file mode 100644
index 000000000..1ea328705
--- /dev/null
+++ b/gst/yadif/meson.build
@@ -0,0 +1,14 @@
+yadif_sources = [
+ 'gstyadif.c',
+ 'vf_yadif.c',
+ 'yadif.c'
+]
+
+gstyadif = library('gstyadif',
+ yadif_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep, gstvideo_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+)
diff --git a/meson.build b/meson.build
new file mode 100644
index 000000000..a79b9129b
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,350 @@
+project('gst-plugins-bad', 'c', 'cpp',
+ version : '1.9.1.1',
+ meson_version : '>= 0.33.0',
+ default_options : [ 'warning_level=1',
+ 'c_std=gnu99',
+ 'buildtype=debugoptimized' ])
+
+gst_version = meson.project_version()
+version_arr = gst_version.split('.')
+gst_version_major = version_arr[0]
+gst_version_minor = version_arr[1]
+gst_version_micro = version_arr[2]
+if version_arr.length() == 4
+ gst_version_nano = version_arr[3]
+else
+ gst_version_nano = 0
+endif
+
+glib_req = '>= 2.40.0'
+gst_req = '>= @0@.@1@.0'.format(gst_version_major, gst_version_minor)
+
+api_version = '1.0'
+soversion = 0
+# maintaining compatibility with the previous libtool versioning
+# current = minor * 100 + micro
+libversion = '@0@.@1@.0'.format(soversion, gst_version_minor.to_int() * 100 + gst_version_micro.to_int())
+
+plugins_install_dir = '@0@/gstreamer-1.0'.format(get_option('libdir'))
+
+cc = meson.get_compiler('c')
+
+if cc.get_id() == 'msvc'
+ # Ignore several spurious warnings for things gstreamer does very commonly
+ # If a warning is completely useless and spammy, use '/wdXXXX' to suppress it
+ # If a warning is harmless but hard to fix, use '/woXXXX' so it's shown once
+ # NOTE: Only add warnings here if you are sure they're spurious
+ add_global_arguments('/wd4018', '/wd4244', '/wd4996', language : 'c')
+ # Disable SAFESEH with MSVC for plugins and libs that use external deps that
+ # are built with MinGW
+ noseh_link_args = ['/SAFESEH:NO']
+else
+ noseh_link_args = []
+endif
+
+cdata = configuration_data()
+check_headers = [
+ ['HAVE_DLFCN_H', 'dlfcn.h'],
+ ['HAVE_FCNTL_H', 'fcntl.h'],
+ ['HAVE_HIGHGUI_H', 'highgui.h'],
+ ['HAVE_INTTYPES_H', 'inttypes.h'],
+ ['HAVE_MEMORY_H', 'memory.h'],
+ ['HAVE_MSACM_H', 'msacm.h'],
+ ['HAVE_NETINET_IN_H', 'netinet/in.h'],
+ ['HAVE_NETINET_IP_H', 'netinet/ip.h'],
+ ['HAVE_NETINET_TCP_H', 'netinet/tcp.h'],
+ ['HAVE_OPENCV2_HIGHGUI_HIGHGUI_C_H', 'opencv2/highgui/highgui_c.h'],
+ ['HAVE_PTHREAD_H', 'pthread.h'],
+ ['HAVE_STDINT_H', 'stdint.h'],
+ ['HAVE_STDLIB_H', 'stdlib.h'],
+ ['HAVE_STRINGS_H', 'strings.h'],
+ ['HAVE_STRING_H', 'string.h'],
+ ['HAVE_SYS_PARAM_H', 'sys/param.h'],
+ ['HAVE_SYS_SOCKET_H', 'sys/socket.h'],
+ ['HAVE_SYS_STAT_H', 'sys/stat.h'],
+ ['HAVE_SYS_TIME_H', 'sys/time.h'],
+ ['HAVE_SYS_TYPES_H', 'sys/types.h'],
+ ['HAVE_SYS_UTSNAME_H', 'sys/utsname.h'],
+ ['HAVE_UNISTD_H', 'unistd.h'],
+ ['HAVE_WINDOWS_H', 'windows.h'],
+ ['HAVE_WININET_H', 'wininet.h'],
+ ['HAVE_WINSOCK2_H', 'winsock2.h'],
+ ['HAVE_WS2TCPIP_H', 'ws2tcpip.h'],
+]
+
+foreach h : check_headers
+ if cc.has_header(h.get(1))
+ cdata.set(h.get(0), 1)
+ endif
+endforeach
+
+check_functions = [
+# check token HAVE_ACM
+# check token HAVE_ANDROID_MEDIA
+# check token HAVE_APEXSINK
+# check token HAVE_APPLE_MEDIA
+# check token HAVE_ASSRENDER
+# check token HAVE_AVC
+# check token HAVE_AVFOUNDATION
+# check token HAVE_BLUEZ
+# check token HAVE_BZ2
+# check token HAVE_CFLOCALECOPYCURRENT
+# check token HAVE_CFPREFERENCESCOPYAPPVALUE
+# check token HAVE_CHROMAPRINT
+# check token HAVE_CPU_ALPHA
+# check token HAVE_CPU_ARM
+# check token HAVE_CPU_CRIS
+# check token HAVE_CPU_CRISV32
+# check token HAVE_CPU_HPPA
+# check token HAVE_CPU_I386
+# check token HAVE_CPU_IA64
+# check token HAVE_CPU_M68K
+# check token HAVE_CPU_MIPS
+# check token HAVE_CPU_PPC
+# check token HAVE_CPU_PPC64
+# check token HAVE_CPU_S390
+# check token HAVE_CPU_SPARC
+# check token HAVE_CPU_X86_64
+# check token HAVE_CURL
+# check token HAVE_DAALA
+# check token HAVE_DASH
+# check token HAVE_DC1394
+ ['HAVE_DCGETTEXT', 'dcgettext'],
+# check token HAVE_DECKLINK
+# check token HAVE_DIRECT3D
+# check token HAVE_DIRECTDRAW
+# check token HAVE_DIRECTFB
+# check token HAVE_DIRECTSOUND
+# check token HAVE_DOWHILE_MACROS
+# check token HAVE_DTS
+# check token HAVE_DVB
+# check token HAVE_EXPERIMENTAL
+# check token HAVE_EXTERNAL
+# check token HAVE_FAAC
+# check token HAVE_FAAD
+# check token HAVE_FBDEV
+# check token HAVE_FIONREAD_IN_SYS_FILIO
+# check token HAVE_FIONREAD_IN_SYS_IOCTL
+# check token HAVE_FLITE
+# check token HAVE_FLUIDSYNTH
+ ['HAVE_GETPAGESIZE', 'getpagesize'],
+# check token HAVE_GETTEXT
+# check token HAVE_GL
+# check token HAVE_GLCHAR
+# check token HAVE_GLEGLIMAGEOES
+# check token HAVE_GLINTPTR
+# check token HAVE_GLSIZEIPTR
+# check token HAVE_GME
+ ['HAVE_GMTIME_R', 'gmtime_r'],
+# check token HAVE_GRAPHENE
+# check token HAVE_GSETTINGS
+# check token HAVE_GSM
+# check token HAVE_GUDEV
+# check token HAVE_HLS
+# check token HAVE_ICONV
+# check token HAVE_IOS
+# check token HAVE_JPEG
+# check token HAVE_KATE
+# check token HAVE_LADSPA
+# check token HAVE_LIBGCRYPT
+# check token HAVE_LIBGME_ACCURACY
+# check token HAVE_LIBMMS
+# check token HAVE_LIBNSL
+# check token HAVE_LIBSOCKET
+# check token HAVE_LIBUSB
+# check token HAVE_LIBVISUAL
+# check token HAVE_LINSYS
+# check token HAVE_LRDF
+# check token HAVE_LV2
+# check token HAVE_MIMIC
+ ['HAVE_MMAP', 'mmap'],
+# check token HAVE_MODPLUG
+# check token HAVE_MPEG2ENC
+# check token HAVE_MPG123
+# check token HAVE_MPLEX
+# check token HAVE_MUSEPACK
+# check token HAVE_MYTHTV
+# check token HAVE_NAS
+# check token HAVE_NEON
+# check token HAVE_NETTLE
+# check token HAVE_OFA
+# check token HAVE_OPENAL
+# check token HAVE_OPENCV
+# check token HAVE_OPENEXR
+# check token HAVE_OPENJPEG
+# check token HAVE_OPENJPEG_1
+# check token HAVE_OPENNI2
+# check token HAVE_OPENSLES
+# check token HAVE_OPUS
+# check token HAVE_ORC
+# check token HAVE_OSX
+# check token HAVE_OSX_VIDEO
+# check token HAVE_PNG
+# check token HAVE_PVR
+# check token HAVE_QUICKTIME
+# check token HAVE_RDTSC
+# check token HAVE_RESINDVD
+# check token HAVE_RSVG
+# check token HAVE_RSVG_2_36_2
+# check token HAVE_RTMP
+# check token HAVE_SBC
+# check token HAVE_SCHRO
+# check token HAVE_SDL
+# check token HAVE_SHM
+# check token HAVE_SMOOTHSTREAMING
+# check token HAVE_SNDFILE
+# check token HAVE_SNDIO
+# check token HAVE_SOUNDTOUCH
+# check token HAVE_SOUNDTOUCH_1_4
+# check token HAVE_SPANDSP
+# check token HAVE_SPC
+# check token HAVE_SRTP
+# check token HAVE_SSH2
+# check token HAVE_TELETEXTDEC
+# check token HAVE_TIGER
+# check token HAVE_TIMIDITY
+# check token HAVE_UVCH264
+# check token HAVE_VALGRIND
+# check token HAVE_VCD
+# check token HAVE_VDPAU
+# check token HAVE_VIDEOTOOLBOX
+# check token HAVE_VIDEOTOOLBOX_10_9_6
+# check token HAVE_VOAACENC
+# check token HAVE_VOAMRWBENC
+# check token HAVE_WASAPI
+# check token HAVE_WAYLAND
+# check token HAVE_WEBP
+# check token HAVE_WILDMIDI
+# check token HAVE_WILDMIDI_0_2_2
+# check token HAVE_WIN32
+# check token HAVE_WININET
+# check token HAVE_WINKS
+# check token HAVE_WINSCREENCAP
+# check token HAVE_XVID
+# check token HAVE_ZBAR
+]
+
+foreach f : check_functions
+ if cc.has_function(f.get(1))
+ cdata.set(f.get(0), 1)
+ endif
+endforeach
+
+cdata.set('SIZEOF_CHAR', cc.sizeof('char'))
+cdata.set('SIZEOF_INT', cc.sizeof('int'))
+cdata.set('SIZEOF_LONG', cc.sizeof('long'))
+cdata.set('SIZEOF_SHORT', cc.sizeof('short'))
+cdata.set('SIZEOF_VOIDP', cc.sizeof('void*'))
+
+cdata.set('VERSION', '"@0@"'.format(gst_version))
+cdata.set('PACKAGE', '"gst-plugins-bad"')
+cdata.set('PACKAGE_VERSION', '"@0@"'.format(gst_version))
+cdata.set('PACKAGE_BUGREPORT', '"http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer"')
+cdata.set('PACKAGE_NAME', '"GStreamer Bad Plug-ins"')
+cdata.set('GETTEXT_PACKAGE', '"gst-plugins-bad-1.0"')
+cdata.set('GST_API_VERSION', '"@0@"'.format(api_version))
+cdata.set('GST_PACKAGE_NAME', '"GStreamer Bad Plug-ins"')
+cdata.set('GST_PACKAGE_ORIGIN', '"Unknown package origin"')
+cdata.set('GST_LICENSE', '"LGPL"')
+cdata.set('LIBDIR', '"@0@"'.format(get_option('libdir')))
+
+# FIXME: This should be exposed as a configuration option
+host_system = host_machine.system()
+if host_system == 'linux'
+ cdata.set('DEFAULT_VIDEOSRC', '"v4l2src"')
+elif host_system == 'osx'
+ cdata.set('DEFAULT_VIDEOSRC', '"avfvideosrc"')
+else
+ cdata.set('DEFAULT_VIDEOSRC', '"videotestsrc"')
+endif
+
+# Mandatory GST deps
+gst_dep = dependency('gstreamer-1.0', version : gst_req,
+ fallback : ['gstreamer', 'gst_dep'])
+gstbase_dep = dependency('gstreamer-base-1.0', version : gst_req,
+ fallback : ['gstreamer', 'gst_base_dep'])
+gstnet_dep = dependency('gstreamer-net-1.0', version : gst_req,
+ fallback : ['gstreamer', 'gst_net_dep'])
+gstcheck_dep = dependency('gstreamer-check-1.0', version : gst_req,
+ fallback : ['gstreamer', 'gst_check_dep'])
+gstcontroller_dep = dependency('gstreamer-controller-1.0', version : gst_req,
+ fallback : ['gstreamer', 'gst_controller_dep'])
+
+gstpbutils_dep = dependency('gstreamer-pbutils-1.0', version : gst_req,
+ fallback : ['gst-plugins-base', 'pbutils_dep'])
+gstallocators_dep = dependency('gstreamer-allocators-1.0', version : gst_req,
+ fallback : ['gst-plugins-base', 'allocators_dep'])
+gstapp_dep = dependency('gstreamer-app-1.0', version : gst_req,
+ fallback : ['gst-plugins-base', 'app_dep'])
+gstaudio_dep = dependency('gstreamer-audio-1.0', version : gst_req,
+ fallback : ['gst-plugins-base', 'audio_dep'])
+gstfft_dep = dependency('gstreamer-fft-1.0', version : gst_req,
+ fallback : ['gst-plugins-base', 'fft_dep'])
+gstriff_dep = dependency('gstreamer-riff-1.0', version : gst_req,
+ fallback : ['gst-plugins-base', 'riff_dep'])
+gstrtp_dep = dependency('gstreamer-rtp-1.0', version : gst_req,
+ fallback : ['gst-plugins-base', 'rtp_dep'])
+gstrtsp_dep = dependency('gstreamer-rtsp-1.0', version : gst_req,
+ fallback : ['gst-plugins-base', 'rtsp_dep'])
+gstsdp_dep = dependency('gstreamer-sdp-1.0', version : gst_req,
+ fallback : ['gst-plugins-base', 'sdp_dep'])
+gsttag_dep = dependency('gstreamer-tag-1.0', version : gst_req,
+ fallback : ['gst-plugins-base', 'tag_dep'])
+gstvideo_dep = dependency('gstreamer-video-1.0', version : gst_req,
+ fallback : ['gst-plugins-base', 'video_dep'])
+
+libm = cc.find_library('m', required : false)
+glib_dep = dependency('glib-2.0', version : glib_req)
+gio_dep = dependency('gio-2.0', version : glib_req)
+gmodule_dep = dependency('gmodule-2.0', version : glib_req)
+x11_dep = dependency('x11', required : false)
+# Used by dtls and hls
+openssl_dep = dependency('openssl', version : '>= 1.0.1', required : false)
+
+if x11_dep.found()
+ cdata.set('HAVE_X11', 1)
+endif
+
+if host_machine.system() == 'windows'
+ winsock2 = [cc.find_library('ws2_32')]
+else
+ winsock2 = []
+endif
+
+have_orcc = false
+orcc_args = []
+if get_option('use_orc') != 'no'
+ need_orc = get_option('use_orc') == 'yes'
+ # Used by various libraries/elements that use Orc code
+ orc_dep = dependency('orc-0.4', required : need_orc)
+ orcc = find_program('orcc', required : need_orc)
+ if orc_dep.found() and orcc.found()
+ have_orcc = true
+ orcc_args = [orcc, '--include', 'glib.h']
+ cdata.set('HAVE_ORC', 1)
+ else
+ message('Orc Compiler not found, will use backup C code')
+ cdata.set('DISABLE_ORC', 1)
+ endif
+else
+ cdata.set('DISABLE_ORC', 1)
+endif
+
+configure_file(input : 'config.h.meson',
+ output : 'config.h',
+ configuration : cdata)
+
+gst_plugins_bad_args = ['-DHAVE_CONFIG_H']
+configinc = include_directories('.')
+libsinc = include_directories('gst-libs')
+
+vs_module_defs_dir = meson.source_root() + '/win32/common/'
+
+# Used by the *_mkenum.py helper scripts
+glib_mkenums = find_program('glib-mkenums')
+
+subdir('gst-libs')
+subdir('gst')
+subdir('sys')
+subdir('ext')
+subdir('pkgconfig')
diff --git a/meson_options.txt b/meson_options.txt
new file mode 100644
index 000000000..bf0a7eee5
--- /dev/null
+++ b/meson_options.txt
@@ -0,0 +1 @@
+option('use_orc', type : 'combo', choices : ['yes', 'no', 'auto'], value : 'auto')
diff --git a/pkgconfig/meson.build b/pkgconfig/meson.build
new file mode 100644
index 000000000..3356936e1
--- /dev/null
+++ b/pkgconfig/meson.build
@@ -0,0 +1,33 @@
+pkgconf = configuration_data()
+
+pkgconf.set('prefix', get_option('prefix'))
+pkgconf.set('exec_prefix', '${prefix}')
+pkgconf.set('libdir', '${prefix}/@0@'.format(get_option('libdir')))
+pkgconf.set('includedir', '${prefix}/@0@'.format(get_option('includedir')))
+pkgconf.set('GST_API_VERSION', api_version)
+pkgconf.set('VERSION', gst_version)
+
+pkg_install_dir = '@0@/pkgconfig'.format(get_option('libdir'))
+
+pkg_libs = [
+ 'bad-audio',
+ 'bad-base',
+ 'bad-video',
+ 'codecparsers',
+ # Broken and not built currently
+ #'gl',
+ 'insertbin',
+ 'mpegts',
+ 'player',
+ 'plugins-bad',
+]
+
+# FIXME: -uninstalled.pc files (if still needed?)
+foreach p : pkg_libs
+ infile = 'gstreamer-@0@.pc.in'.format(p)
+ outfile = 'gstreamer-@0@-@1@.pc'.format(p, api_version)
+ configure_file(input : infile,
+ output : outfile,
+ configuration : pkgconf,
+ install_dir : pkg_install_dir)
+endforeach
diff --git a/sys/bluez/meson.build b/sys/bluez/meson.build
new file mode 100644
index 000000000..d018bd691
--- /dev/null
+++ b/sys/bluez/meson.build
@@ -0,0 +1,33 @@
+bluez_sources = [
+ 'bluez-plugin.c',
+ 'gsta2dpsink.c',
+ 'gstavdtpsink.c',
+ 'gstavdtpsrc.c',
+ 'gstavdtputil.c'
+]
+
+bluez_dep = dependency('bluez', version : '>= 5.0', required : false)
+gio_unix_dep = dependency('gio-unix-2.0', version : glib_req, required : false)
+
+if bluez_dep.found() and gio_unix_dep.found()
+ # FIXME: do we really need the meson.current_build_dir() here? Shouldn't
+ # the custom command be executed with the current build directoy as working
+ # directory? Without this, bluez.[ch] are created in the top-level build dir!
+ bluez_ch = custom_target('bluez_ch',
+ output : [ 'bluez.h', 'bluez.c' ] ,
+ input : 'org.bluez.xml',
+ command : [ find_program('gdbus-codegen'),
+ '--c-namespace=Bluez',
+ '--generate-c-code=' + meson.current_build_dir() + '/bluez',
+ '--interface-prefix=org.bluez',
+ '@INPUT@' ])
+
+ gstbluez = library('gstbluez',
+ bluez_sources, bluez_ch,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstaudio_dep, gstrtp_dep, gstbase_dep, gio_unix_dep, bluez_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/sys/d3dvideosink/meson.build b/sys/d3dvideosink/meson.build
new file mode 100644
index 000000000..7fc3e2712
--- /dev/null
+++ b/sys/d3dvideosink/meson.build
@@ -0,0 +1,16 @@
+d3dvideosink_sources = [
+ 'd3dhelpers.c',
+ 'd3dvideosink.c',
+]
+
+if host_system == 'windows' and cc.has_header('d3d9.h')
+ d3dvideosink_dep = [cc.find_library('d3d9'), cc.find_library('gdi32')]
+
+ gstd3dvideosink = library('gstd3dvideosink',
+ d3dvideosink_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstvideo_dep] + d3dvideosink_dep,
+ install : true,
+ install_dir : plugins_install_dir)
+endif
diff --git a/sys/directsound/meson.build b/sys/directsound/meson.build
new file mode 100644
index 000000000..c48adc1ae
--- /dev/null
+++ b/sys/directsound/meson.build
@@ -0,0 +1,16 @@
+directsoundsrc_sources = [
+ 'gstdirectsoundsrc.c',
+ 'gstdirectsoundplugin.c',
+]
+
+if host_system == 'windows' and cc.has_header('dsound.h')
+ directsoundsrc_dep = [cc.find_library('dsound'), cc.find_library('winmm')]
+
+ gstdirectsoundsrc = library('gstdirectsoundsrc',
+ directsoundsrc_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstaudio_dep] + directsoundsrc_dep,
+ install : true,
+ install_dir : plugins_install_dir)
+endif
diff --git a/sys/dvb/meson.build b/sys/dvb/meson.build
new file mode 100644
index 000000000..1101c2258
--- /dev/null
+++ b/sys/dvb/meson.build
@@ -0,0 +1,38 @@
+dvb_sources = [
+ 'camapplication.c',
+ 'camapplicationinfo.c',
+ 'cam.c',
+ 'camconditionalaccess.c',
+ 'camdevice.c',
+ 'camresourcemanager.c',
+ 'camsession.c',
+ 'camswclient.c',
+ 'camtransport.c',
+ 'camutils.c',
+ 'dvbbasebin.c',
+ 'gstdvb.c',
+ 'gstdvbsrc.c',
+ 'parsechannels.c',
+]
+
+dvb_check_code_lines = [
+ '#include <linux/dvb/version.h>\n\n',
+ '#if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)\n\n',
+ '#error "Incompatible dvb API"\n\n',
+ '#endif',
+]
+dvb_check_code=''
+foreach l : dvb_check_code_lines
+ dvb_check_code = dvb_check_code + l
+endforeach
+
+if cc.compiles(dvb_check_code)
+ gstdvb = library('gstdvb',
+ dvb_sources,
+ c_args : gst_plugins_bad_args + [ '-DGST_USE_UNSTABLE_API' ],
+ include_directories : [configinc, libsinc],
+ dependencies : [gstmpegts_dep, gstbase_dep, glib_dep],
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/sys/meson.build b/sys/meson.build
new file mode 100644
index 000000000..403fd2b0b
--- /dev/null
+++ b/sys/meson.build
@@ -0,0 +1,30 @@
+#FIXME
+#subdir('acmenc')
+#subdir('acmmp3dec')
+#subdir('androidmedia')
+#subdir('applemedia')
+#subdir('avc')
+subdir('bluez')
+#subdir('cdrom')
+subdir('d3dvideosink')
+#subdir('decklink')
+subdir('directsound')
+#subdir('dshowdecwrapper')
+#subdir('dshowsrcwrapper')
+#subdir('dshowvideosink')
+subdir('dvb')
+#subdir('dxr3')
+#subdir('fbdev')
+#subdir('linsys')
+#subdir('nvenc')
+#subdir('opensles')
+#subdir('pvr2d')
+#subdir('qcam')
+#subdir('shm')
+#subdir('uvch264')
+#subdir('vcd')
+#subdir('vdpau')
+subdir('wasapi')
+#subdir('wininet')
+subdir('winks')
+subdir('winscreencap')
diff --git a/sys/wasapi/meson.build b/sys/wasapi/meson.build
new file mode 100644
index 000000000..43143819e
--- /dev/null
+++ b/sys/wasapi/meson.build
@@ -0,0 +1,18 @@
+wasapi_sources = [
+ 'gstwasapi.c',
+ 'gstwasapisrc.c',
+ 'gstwasapisink.c',
+ 'gstwasapiutil.c',
+]
+
+if host_system == 'windows' and cc.has_header('audioclient.h')
+ wasapi_dep = [cc.find_library('ole32'), cc.find_library('ksuser')]
+
+ gstwasapi = library('gstwasapi',
+ wasapi_sources,
+ c_args : gst_plugins_bad_args + ['-DCOBJMACROS'],
+ include_directories : [configinc],
+ dependencies : [gstaudio_dep] + wasapi_dep,
+ install : true,
+ install_dir : plugins_install_dir)
+endif
diff --git a/sys/winks/meson.build b/sys/winks/meson.build
new file mode 100644
index 000000000..b029ff194
--- /dev/null
+++ b/sys/winks/meson.build
@@ -0,0 +1,23 @@
+winks_sources = [
+ 'gstksclock.c',
+ 'gstksvideodevice.c',
+ 'gstksvideosrc.c',
+ 'ksdeviceprovider.c',
+ 'kshelpers.c',
+ 'ksvideohelpers.c',
+]
+
+if host_system == 'windows'
+ winks_dep = [cc.find_library('ksuser'), cc.find_library('uuid'),
+ cc.find_library('strmiids'), cc.find_library('dxguid'),
+ cc.find_library('setupapi'), cc.find_library('ole32')]
+
+ gstwinks = library('gstwinks',
+ winks_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep] + winks_dep,
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif
diff --git a/sys/winscreencap/meson.build b/sys/winscreencap/meson.build
new file mode 100644
index 000000000..7474111ea
--- /dev/null
+++ b/sys/winscreencap/meson.build
@@ -0,0 +1,18 @@
+winscreencap_sources = [
+ 'gstdx9screencapsrc.c',
+ 'gstgdiscreencapsrc.c',
+ 'gstwinscreencap.c',
+]
+
+if host_system == 'windows' and cc.has_header('d3d9.h')
+ winscreencap_dep = [cc.find_library('d3d9'), cc.find_library('gdi32')]
+
+ gstwinscreencap = library('gstwinscreencap',
+ winscreencap_sources,
+ c_args : gst_plugins_bad_args,
+ include_directories : [configinc],
+ dependencies : [gstbase_dep] + winscreencap_dep,
+ install : true,
+ install_dir : plugins_install_dir,
+ )
+endif