diff --git a/.gitignore b/.gitignore index 40ca6dfe77..ea7dc50085 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 0000000000..551e4315c7 --- /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 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 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 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 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 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 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 header file. */ +#mesondefine HAVE_NETINET_IN_H + +/* Define to 1 if you have the header file. */ +#mesondefine HAVE_NETINET_IP_H + +/* Define to 1 if you have the 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 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 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 header file. */ +#mesondefine HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#mesondefine HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#mesondefine HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#mesondefine HAVE_STRING_H + +/* Define to 1 if you have the header file. */ +#mesondefine HAVE_SYS_PARAM_H + +/* Define to 1 if you have the header file. */ +#mesondefine HAVE_SYS_SOCKET_H + +/* Define to 1 if you have the header file. */ +#mesondefine HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#mesondefine HAVE_SYS_TIME_H + +/* Define to 1 if you have the header file. */ +#mesondefine HAVE_SYS_TYPES_H + +/* Define to 1 if you have the 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 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 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 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 header file. */ +#mesondefine HAVE_WINSOCK2_H + +/* Define to 1 if you have the 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 0000000000..7db70adf51 --- /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 0000000000..f80d787e52 --- /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 0000000000..265f4a630d --- /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 0000000000..bf9eb7e8de --- /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 0000000000..8d31bc375c --- /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 0000000000..6f110207e1 --- /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 0000000000..1ce99dcbd8 --- /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 0000000000..882a6aa89c --- /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 0000000000..f9f3cad64b --- /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 0000000000..2d3ff9adac --- /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 0000000000..6d1226f526 --- /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 0000000000..d732b93d15 --- /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 0000000000..081a0968a1 --- /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 0000000000..ac055f2bed --- /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 0000000000..b8dd981103 --- /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 0000000000..23b00b5c5f --- /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 0000000000..1809645b9b --- /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 0000000000..d4e16c9e7a --- /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 0000000000..666887afe0 --- /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 0000000000..d60974ce73 --- /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 0000000000..22ee796e21 --- /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 0000000000..7c5ef963f6 --- /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 0000000000..a78deb4ac9 --- /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 0000000000..2c7cce22ad --- /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 0000000000..e20d8ed5f0 --- /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 0000000000..d37b70fd5d --- /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 0000000000..00afda9486 --- /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 0000000000..e4143d8a49 --- /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 0000000000..34c9bc8411 --- /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 0000000000..09f5111182 --- /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 0000000000..031c1b9585 --- /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 \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 0000000000..0f2eec38c0 --- /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 0000000000..a809e8826c --- /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 0000000000..10740981f2 --- /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 0000000000..738e6d0e73 --- /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 0000000000..dbc4da3863 --- /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 0000000000..e04c2a10ff --- /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 0000000000..34203edf47 --- /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 0000000000..4f7f16e65a --- /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 0000000000..f45e69710c --- /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 0000000000..6726c84384 --- /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 + +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 0000000000..6c210de26e --- /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 0000000000..565be5f04d --- /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 0000000000..cbbf06a567 --- /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 \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 0000000000..2349349beb --- /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 0000000000..89aa92fc1a --- /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 0000000000..b189e693a0 --- /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 0000000000..05efedbc48 --- /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 \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 0000000000..d881d54c11 --- /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 0000000000..23da6720f0 --- /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 0000000000..b5941a6dc6 --- /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 0000000000..668dcbaaff --- /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 0000000000..ba22914301 --- /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 0000000000..64aa8df139 --- /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 0000000000..8c29699b72 --- /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 0000000000..20bb8305c1 --- /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 0000000000..80fec55048 --- /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 0000000000..0edbbde82c --- /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 0000000000..b7c95318f4 --- /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 0000000000..e635ee62d7 --- /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 0000000000..f35e1a8f2a --- /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 0000000000..41edcd8225 --- /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 0000000000..512299300d --- /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 0000000000..b9c043aff3 --- /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 0000000000..34ef664f0c --- /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 0000000000..c45ed32ebd --- /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 0000000000..2e948fcb0c --- /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 0000000000..409899c2e6 --- /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 0000000000..6682f6b05e --- /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 0000000000..648984df56 --- /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 0000000000..e532e79e76 --- /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 0000000000..4e4755b4af --- /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 0000000000..65aa7295d6 --- /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 0000000000..8209334593 --- /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 0000000000..21b4976b69 --- /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 0000000000..414f076e16 --- /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 0000000000..fed49639de --- /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 0000000000..e3509278ea --- /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 0000000000..eb9bfe0bbd --- /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 0000000000..c6ec5334d2 --- /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 0000000000..b933a973aa --- /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 0000000000..4ffa3665db --- /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 0000000000..153b6cac5f --- /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 0000000000..e9836510a1 --- /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 0000000000..c3aa1ee3b2 --- /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 0000000000..3d3cd23ab8 --- /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 0000000000..98b5fda5b2 --- /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 0000000000..5d740d294a --- /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 0000000000..c93fe7bc61 --- /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 0000000000..6206b62e83 --- /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 0000000000..24bacaea8a --- /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 0000000000..c10b11974f --- /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 0000000000..35c2f86880 --- /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 0000000000..02637bc3a7 --- /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 0000000000..3c275732d3 --- /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 0000000000..1b511e8129 --- /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 0000000000..202dba84ce --- /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 0000000000..45648f1ed2 --- /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 0000000000..ce389044eb --- /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 0000000000..6950741a9f --- /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 0000000000..c6d803df64 --- /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 0000000000..d88528df0d --- /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 0000000000..56854bcd55 --- /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 0000000000..1ee7734690 --- /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 0000000000..11b07b6f7b --- /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 0000000000..424d61f7dc --- /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 0000000000..5222462a0c --- /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 0000000000..a63000135a --- /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 0000000000..918e960b04 --- /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 0000000000..e583baf83e --- /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 0000000000..022002541c --- /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 0000000000..4585503d8b --- /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 0000000000..99d54af1db --- /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 0000000000..f0c8b0740a --- /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 0000000000..f266ee1dc1 --- /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 0000000000..23ebd42ccd --- /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 0000000000..411724337a --- /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 0000000000..2ec87eca35 --- /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 0000000000..cd14b3f9ad --- /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 0000000000..43d870e6c1 --- /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 0000000000..cd5313997a --- /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 0000000000..b21ae88ba7 --- /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 0000000000..4b0eaf6d66 --- /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 0000000000..bfb90a847f --- /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 0000000000..7751f37ac2 --- /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 0000000000..782742dd07 --- /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 0000000000..d7ba77ba5f --- /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 0000000000..1ea328705f --- /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 0000000000..a79b9129b7 --- /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 0000000000..bf0a7eee5b --- /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 0000000000..3356936e1a --- /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 0000000000..d018bd691f --- /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 0000000000..7fc3e27128 --- /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 0000000000..c48adc1aec --- /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 0000000000..1101c2258e --- /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 \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 0000000000..403fd2b0b3 --- /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 0000000000..43143819e9 --- /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 0000000000..b029ff1942 --- /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 0000000000..7474111ea5 --- /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