2018-05-05 14:00:42 +00:00
|
|
|
have_registry = true # FIXME get_option('registry')
|
2017-05-18 20:02:38 +00:00
|
|
|
|
2017-08-10 08:07:17 +00:00
|
|
|
libparser = static_library('parser',
|
|
|
|
'elements/parser.c',
|
2017-05-18 20:02:38 +00:00
|
|
|
install : false,
|
|
|
|
dependencies : [gst_dep, gstcheck_dep],
|
|
|
|
)
|
|
|
|
|
|
|
|
libparser_dep = declare_dependency(link_with: libparser,
|
|
|
|
sources: ['elements/parser.h'])
|
|
|
|
|
2018-07-27 13:29:23 +00:00
|
|
|
# FIXME: automagic
|
2017-05-18 20:02:38 +00:00
|
|
|
exif_dep = dependency('libexif', version : '>= 0.6.16', required : false)
|
|
|
|
|
2020-03-19 09:25:18 +00:00
|
|
|
# Since nalutils API is internal, need to build it again
|
|
|
|
nalutils_dep = gstcodecparsers_dep.partial_dependency (compile_args: true, includes: true)
|
|
|
|
|
2020-11-14 10:56:51 +00:00
|
|
|
enable_gst_play_tests = get_option('gst_play_tests')
|
2020-11-29 18:55:48 +00:00
|
|
|
libsoup_dep = dependency('libsoup-2.4', version : '>=2.48', required : enable_gst_play_tests,
|
|
|
|
fallback : ['libsoup', 'libsoup_dep'])
|
2017-10-16 17:51:36 +00:00
|
|
|
|
2017-05-18 20:02:38 +00:00
|
|
|
# name, condition when to skip the test and extra dependencies
|
|
|
|
base_tests = [
|
2021-09-15 03:57:30 +00:00
|
|
|
[['elements/aesenc.c'], not aes_dep.found(), [aes_dep]],
|
|
|
|
[['elements/aesdec.c'], not aes_dep.found(), [aes_dep]],
|
2022-06-25 18:50:10 +00:00
|
|
|
[['elements/aiffparse.c'], get_option('aiff').disabled()],
|
|
|
|
[['elements/asfmux.c'], get_option('asfmux').disabled()],
|
2024-05-07 09:18:10 +00:00
|
|
|
[['elements/audiovisualizer.c'], get_option('audiovisualizers').disabled()],
|
2022-06-25 18:50:10 +00:00
|
|
|
[['elements/autoconvert.c'], get_option('autoconvert').disabled()],
|
|
|
|
[['elements/autovideoconvert.c'], get_option('autoconvert').disabled()],
|
|
|
|
[['elements/avwait.c'], get_option('timecode').disabled()],
|
|
|
|
[['elements/camerabin.c'], get_option('camerabin2').disabled()],
|
2020-06-30 18:15:43 +00:00
|
|
|
[['elements/ccconverter.c'], not closedcaption_dep.found(), [gstvideo_dep]],
|
|
|
|
[['elements/cccombiner.c'], not closedcaption_dep.found(), ],
|
|
|
|
[['elements/ccextractor.c'], not closedcaption_dep.found(), ],
|
2022-03-25 19:00:20 +00:00
|
|
|
[['elements/cudaconvert.c'], false, [gstgl_dep, gmodule_dep]],
|
|
|
|
[['elements/cudafilter.c'], false, [gstgl_dep, gmodule_dep]],
|
2021-07-15 10:44:21 +00:00
|
|
|
[['elements/d3d11colorconvert.c'], host_machine.system() != 'windows', ],
|
2023-03-21 17:17:12 +00:00
|
|
|
[['elements/d3d11videosink.c'], host_machine.system() != 'windows', ],
|
2022-10-22 10:13:10 +00:00
|
|
|
[['elements/fdkaac.c'], not fdkaac_dep.found(), ],
|
2022-06-25 18:50:10 +00:00
|
|
|
[['elements/gdpdepay.c'], get_option('gdp').disabled()],
|
|
|
|
[['elements/gdppay.c'], get_option('gdp').disabled()],
|
2018-12-07 14:22:08 +00:00
|
|
|
[['elements/h263parse.c'], false, [libparser_dep, gstcodecparsers_dep]],
|
|
|
|
[['elements/h264parse.c'], false, [libparser_dep, gstcodecparsers_dep]],
|
2022-11-09 07:03:48 +00:00
|
|
|
[['elements/h264timestamper.c'], false, [libparser_dep, gstcodecparsers_dep]],
|
2019-12-18 09:05:05 +00:00
|
|
|
[['elements/h265parse.c'], false, [libparser_dep, gstcodecparsers_dep]],
|
2019-05-12 10:21:23 +00:00
|
|
|
[['elements/hlsdemux_m3u8.c'], not hls_dep.found(), [hls_dep]],
|
2022-06-25 18:50:10 +00:00
|
|
|
[['elements/id3mux.c'], get_option('id3tag').disabled()],
|
|
|
|
[['elements/interlace.c'], get_option('interlace').disabled()],
|
2019-08-09 13:29:22 +00:00
|
|
|
[['elements/jpeg2000parse.c'], false, [libparser_dep, gstcodecparsers_dep]],
|
2020-06-30 18:15:43 +00:00
|
|
|
[['elements/line21.c'], not closedcaption_dep.found(), ],
|
2020-04-28 10:58:53 +00:00
|
|
|
[['elements/mfvideosrc.c'], host_machine.system() != 'windows', ],
|
2022-06-25 18:50:10 +00:00
|
|
|
[['elements/mpegtsdemux.c'], get_option('mpegtsdemux').disabled(), [gstmpegts_dep]],
|
|
|
|
[['elements/mpegtsmux.c'], get_option('mpegtsmux').disabled(), [gstmpegts_dep]],
|
2018-12-07 14:22:08 +00:00
|
|
|
[['elements/mpeg4videoparse.c'], false, [libparser_dep, gstcodecparsers_dep]],
|
|
|
|
[['elements/mpegvideoparse.c'], false, [libparser_dep, gstcodecparsers_dep]],
|
2018-12-30 13:31:39 +00:00
|
|
|
[['elements/msdkh264enc.c'], not have_msdk, [msdk_dep]],
|
2022-06-25 18:50:10 +00:00
|
|
|
[['elements/mxfdemux.c'], get_option('mxf').disabled()],
|
|
|
|
[['elements/mxfmux.c'], get_option('mxf').disabled()],
|
2022-03-25 19:00:20 +00:00
|
|
|
[['elements/nvenc.c'], false, [gstgl_dep, gmodule_dep]],
|
|
|
|
[['elements/nvdec.c'], not gstgl_dep.found(), [gstgl_dep, gmodule_dep]],
|
2019-03-23 12:01:51 +00:00
|
|
|
[['elements/svthevcenc.c'], not svthevcenc_dep.found(), [svthevcenc_dep]],
|
2021-02-01 15:21:59 +00:00
|
|
|
[['elements/openjpeg.c'], not openjpeg_dep.found(), [openjpeg_dep]],
|
2017-08-10 08:07:17 +00:00
|
|
|
[['elements/pcapparse.c'], false, [libparser_dep]],
|
2022-06-25 18:50:10 +00:00
|
|
|
[['elements/pnm.c'], get_option('pnm').disabled()],
|
2022-07-05 18:14:25 +00:00
|
|
|
[['elements/proxysink.c'], get_option('proxy').disabled()],
|
2019-07-24 21:32:07 +00:00
|
|
|
[['elements/ristrtpext.c']],
|
2022-06-25 18:50:10 +00:00
|
|
|
[['elements/rtponvifparse.c'], get_option('onvif').disabled()],
|
|
|
|
[['elements/rtponviftimestamp.c'], get_option('onvif').disabled()],
|
|
|
|
[['elements/rtpsrc.c'], get_option('rtp').disabled()],
|
|
|
|
[['elements/rtpsink.c'], get_option('rtp').disabled()],
|
2022-11-08 10:24:25 +00:00
|
|
|
[['elements/sdpdemux.c'], get_option('sdp').disabled(), [gstsdp_dep]],
|
2023-10-05 14:01:40 +00:00
|
|
|
[['elements/srt.c'], not srt_dep.found(), [srt_dep]],
|
2022-05-06 02:50:59 +00:00
|
|
|
[['elements/srtp.c'], not srtp_dep.found(), [srtp_dep]],
|
2022-06-25 18:50:10 +00:00
|
|
|
[['elements/switchbin.c'], get_option('switchbin').disabled()],
|
|
|
|
[['elements/videoframe-audiolevel.c'], get_option('videoframe_audiolevel').disabled()],
|
2017-05-18 20:02:38 +00:00
|
|
|
[['elements/viewfinderbin.c']],
|
2022-09-15 00:52:14 +00:00
|
|
|
[['elements/voamrwbenc.c'], not voamrwbenc_dep.found(), [voamrwbenc_dep]],
|
2020-09-09 12:38:33 +00:00
|
|
|
[['elements/vp9parse.c'], false, [gstcodecparsers_dep]],
|
2021-01-06 15:33:24 +00:00
|
|
|
[['elements/av1parse.c'], false, [gstcodecparsers_dep]],
|
2021-07-11 16:14:46 +00:00
|
|
|
[['elements/wasapi.c'], host_machine.system() != 'windows', ],
|
2020-05-10 16:53:11 +00:00
|
|
|
[['elements/wasapi2.c'], host_machine.system() != 'windows', ],
|
2017-10-16 17:51:36 +00:00
|
|
|
[['libs/h264parser.c'], false, [gstcodecparsers_dep]],
|
2018-03-01 10:08:44 +00:00
|
|
|
[['libs/h265parser.c'], false, [gstcodecparsers_dep]],
|
2017-10-16 17:51:36 +00:00
|
|
|
[['libs/insertbin.c'], false, [gstinsertbin_dep]],
|
2018-12-18 13:07:48 +00:00
|
|
|
[['libs/isoff.c'], false, [gstisoff_dep]],
|
2020-05-19 13:39:50 +00:00
|
|
|
[['libs/nalutils.c', '../../gst-libs/gst/codecparsers/nalutils.c'], false, [nalutils_dep]],
|
2018-12-30 13:31:39 +00:00
|
|
|
[['libs/mpegts.c'], false, [gstmpegts_dep]],
|
2017-10-16 17:51:36 +00:00
|
|
|
[['libs/mpegvideoparser.c'], false, [gstcodecparsers_dep]],
|
2023-08-03 23:05:17 +00:00
|
|
|
[['libs/mse.c'], false, [gstmse_private_test_dep]],
|
2018-02-16 13:55:45 +00:00
|
|
|
[['libs/planaraudioadapter.c'], false, [gstbadaudio_dep]],
|
2020-11-29 18:55:48 +00:00
|
|
|
[['libs/play.c'], not enable_gst_play_tests, [gstplay_dep, libsoup_dep]],
|
2017-10-16 17:51:36 +00:00
|
|
|
[['libs/vc1parser.c'], false, [gstcodecparsers_dep]],
|
|
|
|
[['libs/vp8parser.c'], false, [gstcodecparsers_dep]],
|
2020-03-01 15:43:45 +00:00
|
|
|
[['libs/vp9parser.c'], false, [gstcodecparsers_dep]],
|
2020-02-24 14:38:39 +00:00
|
|
|
[['libs/av1parser.c'], false, [gstcodecparsers_dep]],
|
2021-10-04 17:43:28 +00:00
|
|
|
[['libs/h264bitwriter.c'], false, [gstcodecparsers_dep]],
|
2022-03-02 06:42:42 +00:00
|
|
|
[['libs/h265bitwriter.c'], false, [gstcodecparsers_dep]],
|
2023-04-04 17:20:43 +00:00
|
|
|
[['libs/vkformat.c'], not gstvulkan_dep.found(), [gstvulkan_dep]],
|
2022-07-19 09:39:30 +00:00
|
|
|
[['libs/av1bitwriter.c'], false, [gstcodecparsers_dep]],
|
2024-03-11 15:06:44 +00:00
|
|
|
[['libs/vp9bitwriter.c'], false, [gstcodecparsers_dep]],
|
2024-01-30 15:24:18 +00:00
|
|
|
[['libs/jpegbitwriter.c'], false, [gstcodecparsers_dep]],
|
2019-05-20 03:54:56 +00:00
|
|
|
[['libs/vkmemory.c'], not gstvulkan_dep.found(), [gstvulkan_dep]],
|
2023-07-03 20:44:22 +00:00
|
|
|
[['libs/analyticsmeta.c'], false, [gstanalytics_dep]],
|
2019-06-13 08:05:40 +00:00
|
|
|
[['elements/vkcolorconvert.c'], not gstvulkan_dep.found(), [gstvulkan_dep]],
|
2019-07-05 06:20:05 +00:00
|
|
|
[['libs/vkwindow.c'], not gstvulkan_dep.found(), [gstvulkan_dep]],
|
2019-07-05 06:13:13 +00:00
|
|
|
[['libs/vkdevice.c'], not gstvulkan_dep.found(), [gstvulkan_dep]],
|
2019-09-16 05:29:26 +00:00
|
|
|
[['elements/vkdeviceprovider.c'], not gstvulkan_dep.found(), [gstvulkan_dep]],
|
2019-09-17 12:24:04 +00:00
|
|
|
[['libs/vkcommandpool.c'], not gstvulkan_dep.found(), [gstvulkan_dep]],
|
2019-11-18 09:29:10 +00:00
|
|
|
[['libs/vkimage.c'], not gstvulkan_dep.found(), [gstvulkan_dep]],
|
2020-06-13 07:31:07 +00:00
|
|
|
[['libs/vkinstance.c'], not gstvulkan_dep.found(), [gstvulkan_dep]],
|
2023-04-04 17:20:43 +00:00
|
|
|
[['libs/vkimagebufferpool.c'], not gstvulkan_dep.found(), [gstvulkan_dep]],
|
2023-05-24 06:49:06 +00:00
|
|
|
[['libs/vkvideodecode.c'], not gstvulkan_dep.found() or vulkan_conf.get('GST_VULKAN_HAVE_VIDEO_EXTENSIONS') != 1, [gstvulkan_dep]],
|
2024-06-04 08:10:07 +00:00
|
|
|
[['libs/vkvideoencodeh264.c'], not gstvulkan_dep.found() or vulkan_conf.get('GST_VULKAN_HAVE_VIDEO_EXTENSIONS') != 1, [gstvulkan_dep, gstcodecparsers_dep]],
|
|
|
|
[['libs/vkvideoencodeh265.c'], not gstvulkan_dep.found() or vulkan_conf.get('GST_VULKAN_HAVE_VIDEO_EXTENSIONS') != 1, [gstvulkan_dep, gstcodecparsers_dep]],
|
2024-05-23 10:10:10 +00:00
|
|
|
[['libs/d3d11device.cpp'], not gstd3d11_dep.found(), [gstd3d11_dep]],
|
2023-06-26 20:09:49 +00:00
|
|
|
[['libs/d3d11memory.c'], not gstd3d11_dep.found(), [gstd3d11_dep]],
|
2023-01-12 12:45:58 +00:00
|
|
|
[['libs/cudamemory.c'], not gstcuda_dep.found(), [gstcuda_dep, gstcuda_stub_dep]],
|
2024-04-20 11:03:46 +00:00
|
|
|
[['libs/d3d12device.cpp'], not gstd3d12_dep.found(), [gstd3d12_dep]],
|
2017-05-18 20:02:38 +00:00
|
|
|
]
|
|
|
|
|
2024-03-26 12:46:02 +00:00
|
|
|
# Make sure our headers are C++ clean
|
|
|
|
if add_languages('cpp', native: false, required: false)
|
|
|
|
base_tests += [
|
|
|
|
[['libs/gstlibscpp.cc'], false ],
|
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
2018-12-07 14:22:08 +00:00
|
|
|
# FIXME: unistd dependency, unstable or not tested yet on windows
|
|
|
|
if host_machine.system() != 'windows'
|
|
|
|
base_tests += [
|
|
|
|
[['elements/assrender.c'], not ass_dep.found(), [ass_dep]],
|
2019-03-22 22:54:23 +00:00
|
|
|
[['elements/avtpaafpay.c'], not avtp_dep.found(), [avtp_dep]],
|
2019-04-09 21:10:36 +00:00
|
|
|
[['elements/avtpaafdepay.c'], not avtp_dep.found(), [avtp_dep]],
|
2019-10-14 20:56:49 +00:00
|
|
|
[['elements/avtpcrfbase.c'], not avtp_dep.found(), [avtp_dep]],
|
2019-09-27 01:11:42 +00:00
|
|
|
[['elements/avtpcrfcheck.c'], not avtp_dep.found(), [avtp_dep], ['../../ext/avtp/gstavtpcrfutil.c']],
|
2019-10-14 20:56:36 +00:00
|
|
|
[['elements/avtpcrfsync.c'], not avtp_dep.found(), [avtp_dep], ['../../ext/avtp/gstavtpcrfutil.c', '../../ext/avtp/gstavtpcrfbase.c']],
|
2019-09-27 01:12:36 +00:00
|
|
|
[['elements/avtpcrfutil.c'], not avtp_dep.found(), [avtp_dep], ['../../ext/avtp/gstavtpcrfutil.c', '../../ext/avtp/gstavtpcrfbase.c']],
|
2019-03-26 00:23:49 +00:00
|
|
|
[['elements/avtpcvfpay.c'], not avtp_dep.found(), [avtp_dep]],
|
2019-03-26 21:25:56 +00:00
|
|
|
[['elements/avtpcvfdepay.c'], not avtp_dep.found(), [avtp_dep]],
|
2019-04-25 21:16:46 +00:00
|
|
|
[['elements/avtpsink.c'], not avtp_dep.found(), [avtp_dep]],
|
2019-05-02 17:52:42 +00:00
|
|
|
[['elements/avtpsrc.c'], not avtp_dep.found(), [avtp_dep]],
|
2022-06-25 18:50:10 +00:00
|
|
|
[['elements/clockselect.c'], get_option('debugutils').disabled()],
|
2018-12-07 14:22:08 +00:00
|
|
|
[['elements/curlhttpsink.c'], not curl_dep.found(), [curl_dep]],
|
2019-02-05 16:23:01 +00:00
|
|
|
[['elements/curlhttpsrc.c'], not curl_dep.found(), [curl_dep, gio_dep]],
|
2018-12-07 14:22:08 +00:00
|
|
|
[['elements/curlfilesink.c'],
|
|
|
|
not curl_dep.found() or not cdata.has('HAVE_UNISTD_H'), [curl_dep]],
|
|
|
|
[['elements/curlftpsink.c'], not curl_dep.found(), [curl_dep]],
|
|
|
|
[['elements/curlsmtpsink.c'], not curl_dep.found(), [curl_dep]],
|
|
|
|
[['elements/dash_mpd.c'], not xml2_dep.found(), [xml2_dep]],
|
2023-04-25 08:14:47 +00:00
|
|
|
[['elements/dtls.c'], not libcrypto_dep.found() or not openssl_dep.found (), [libcrypto_dep]],
|
2018-12-07 14:22:08 +00:00
|
|
|
[['elements/faac.c'],
|
|
|
|
not faac_dep.found() or not cc.has_header_symbol('faac.h', 'faacEncOpen') or not cdata.has('HAVE_UNISTD_H'),
|
|
|
|
[faac_dep]],
|
|
|
|
[['elements/faad.c'],
|
|
|
|
not faad_dep.found() or not have_faad_2_7 or not cdata.has('HAVE_UNISTD_H'),
|
|
|
|
[faad_dep]],
|
|
|
|
[['elements/jifmux.c'],
|
|
|
|
not exif_dep.found() or not cdata.has('HAVE_UNISTD_H'), [exif_dep]],
|
|
|
|
[['elements/jpegparse.c'], not cdata.has('HAVE_UNISTD_H')],
|
|
|
|
[['elements/netsim.c']],
|
|
|
|
[['elements/shm.c'], not shm_enabled, shm_deps],
|
2023-09-18 18:38:26 +00:00
|
|
|
[['elements/unixfd.c'], not gio_unix_dep.found()],
|
2018-12-07 14:22:08 +00:00
|
|
|
[['elements/voaacenc.c'],
|
|
|
|
not voaac_dep.found() or not cdata.has('HAVE_UNISTD_H'), [voaac_dep]],
|
|
|
|
[['elements/webrtcbin.c'], not libnice_dep.found(), [gstwebrtc_dep]],
|
|
|
|
[['elements/x265enc.c'], not x265_dep.found(), [x265_dep]],
|
|
|
|
[['elements/zbar.c'], not zbar_dep.found(), [zbar_dep]],
|
2019-09-27 21:02:38 +00:00
|
|
|
[['elements/zxing.c'], not zxing_dep.found(), [zxing_dep]],
|
2023-05-30 06:01:22 +00:00
|
|
|
[['elements/lc3.c'], not lc3_dep.found(), [lc3_dep]],
|
2018-12-07 14:22:08 +00:00
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
2021-10-04 11:30:37 +00:00
|
|
|
# linux only tests
|
|
|
|
if host_machine.system() == 'linux'
|
|
|
|
base_tests += [
|
|
|
|
[['elements/vapostproc.c'], not gstva_dep.found(), [gstva_dep]],
|
2022-05-24 16:54:05 +00:00
|
|
|
[['elements/vacompositor.c'], not gstva_dep.found(), [gstva_dep]],
|
2021-10-04 11:30:37 +00:00
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
2023-07-12 03:57:22 +00:00
|
|
|
fsmod = import('fs')
|
2017-05-18 20:02:38 +00:00
|
|
|
test_defines = [
|
|
|
|
'-UG_DISABLE_ASSERT',
|
|
|
|
'-UG_DISABLE_CAST_CHECKS',
|
|
|
|
'-DGST_CHECK_TEST_ENVIRONMENT_BEACON="GST_STATE_IGNORE_ELEMENTS"',
|
2023-07-12 03:57:22 +00:00
|
|
|
'-DGST_TEST_FILES_PATH="' + fsmod.as_posix(meson.current_source_dir()) + '/../files"',
|
|
|
|
'-DTEST_PATH="' + fsmod.as_posix(meson.current_build_dir()) + '/media"',
|
|
|
|
'-DDASH_MPD_DATADIR=' + fsmod.as_posix(meson.current_source_dir()) + '/elements/dash_mpd_data',
|
2017-05-18 20:02:38 +00:00
|
|
|
'-DGST_USE_UNSTABLE_API',
|
|
|
|
]
|
|
|
|
|
2024-04-15 09:51:03 +00:00
|
|
|
test_deps = [gst_dep, gstapp_dep, gstbase_dep, gstbadaudio_dep,
|
|
|
|
gstbasecamerabin_dep, gstphotography_dep, gstwebrtc_dep,
|
|
|
|
gstmpegts_dep, gstmse_dep, gstplay_dep, gstplayer_dep,
|
|
|
|
gstanalytics_dep, gstinsertbin_dep, gst_transcoder_dep,
|
2017-06-07 20:58:23 +00:00
|
|
|
gstpbutils_dep, gstcontroller_dep, gstaudio_dep,
|
|
|
|
gstvideo_dep, gstrtp_dep, gsturidownloader_dep,
|
2022-03-25 19:00:20 +00:00
|
|
|
gstcheck_dep, gio_dep, gsttag_dep]
|
2017-05-18 20:02:38 +00:00
|
|
|
|
|
|
|
pluginsdirs = [ ]
|
|
|
|
|
|
|
|
if gst_dep.type_name() == 'pkgconfig'
|
2017-06-07 20:58:23 +00:00
|
|
|
pbase = dependency('gstreamer-plugins-base-' + api_version)
|
|
|
|
|
2021-10-17 23:40:14 +00:00
|
|
|
pluginsdirs = [gst_dep.get_variable('pluginsdir'),
|
|
|
|
pbase.get_variable('pluginsdir')]
|
|
|
|
gst_plugin_scanner_dir = gst_dep.get_variable('pluginscannerdir')
|
2020-05-27 14:17:12 +00:00
|
|
|
else
|
|
|
|
gst_plugin_scanner_dir = subproject('gstreamer').get_variable('gst_scanner_dir')
|
2017-05-18 20:02:38 +00:00
|
|
|
endif
|
2020-05-27 14:17:12 +00:00
|
|
|
gst_plugin_scanner_path = join_paths(gst_plugin_scanner_dir, 'gst-plugin-scanner')
|
2017-05-18 20:02:38 +00:00
|
|
|
|
2021-10-08 10:41:22 +00:00
|
|
|
extra_args = []
|
|
|
|
# XXX: our MinGW 32bits toolchain complians when ComPtr is in use
|
|
|
|
if host_system == 'windows' and cc.get_id() != 'msvc'
|
|
|
|
mingw_args = cc.get_supported_arguments([
|
|
|
|
'-Wno-redundant-decls',
|
|
|
|
])
|
|
|
|
|
|
|
|
extra_args += mingw_args
|
|
|
|
endif
|
|
|
|
|
2017-05-18 20:02:38 +00:00
|
|
|
foreach t : base_tests
|
|
|
|
fnames = t.get(0)
|
2017-06-20 17:44:47 +00:00
|
|
|
test_name = fnames[0].split('.').get(0).underscorify()
|
2017-05-18 20:02:38 +00:00
|
|
|
skip_test = false
|
|
|
|
extra_deps = [ ]
|
|
|
|
|
|
|
|
if t.length() >= 3
|
|
|
|
extra_deps = t.get(2)
|
|
|
|
endif
|
|
|
|
|
|
|
|
if t.length() >= 2
|
|
|
|
skip_test = t.get(1)
|
|
|
|
endif
|
|
|
|
|
2019-10-14 20:56:36 +00:00
|
|
|
extra_sources = t.get(3, [ ])
|
|
|
|
|
2017-05-18 20:02:38 +00:00
|
|
|
if not skip_test
|
2019-10-14 20:56:36 +00:00
|
|
|
exe = executable(test_name, fnames, extra_sources,
|
2017-05-18 20:02:38 +00:00
|
|
|
include_directories : [configinc],
|
2021-10-08 10:41:22 +00:00
|
|
|
c_args : gst_plugins_bad_args + test_defines + extra_args,
|
|
|
|
cpp_args : gst_plugins_bad_args + test_defines + extra_args,
|
2017-05-18 20:02:38 +00:00
|
|
|
dependencies : [libm] + test_deps + extra_deps,
|
|
|
|
)
|
|
|
|
|
|
|
|
env = environment()
|
|
|
|
env.set('GST_PLUGIN_SYSTEM_PATH_1_0', '')
|
|
|
|
env.set('CK_DEFAULT_TIMEOUT', '20')
|
|
|
|
env.set('GST_STATE_IGNORE_ELEMENTS', '')
|
2021-10-18 14:47:00 +00:00
|
|
|
env.set('GST_PLUGIN_PATH_1_0', [meson.global_build_root()] + pluginsdirs)
|
2018-12-18 12:16:43 +00:00
|
|
|
env.set('GST_REGISTRY', join_paths(meson.current_build_dir(), '@0@.registry'.format(test_name)))
|
2018-12-07 14:22:08 +00:00
|
|
|
env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer', 'gst-plugins-base',
|
2020-05-04 04:39:45 +00:00
|
|
|
'gst-plugins-good', 'gst-plugins-ugly','gst-libav', 'libnice',
|
2021-10-18 14:47:00 +00:00
|
|
|
'gst-plugins-bad@' + meson.project_build_root())
|
2020-05-27 14:17:12 +00:00
|
|
|
env.set('GST_PLUGIN_SCANNER_1_0', gst_plugin_scanner_path)
|
2017-05-18 20:02:38 +00:00
|
|
|
test(test_name, exe, env: env, timeout: 3 * 60)
|
|
|
|
endif
|
|
|
|
endforeach
|
2017-10-16 17:51:36 +00:00
|
|
|
|
2019-01-16 01:03:40 +00:00
|
|
|
# orc tests
|
|
|
|
orc_tests = [
|
|
|
|
['orc_bayer', files('../../gst/bayer/gstbayerorc.orc')],
|
2022-09-15 11:14:56 +00:00
|
|
|
['orc_fieldanalysis', files('../../gst/fieldanalysis/gstfieldanalysisorc.orc')],
|
|
|
|
['orc_gaudieffects', files('../../gst/gaudieffects/gstgaudieffectsorc.orc')],
|
|
|
|
['orc_scenechange', files('../../gst/videofilters/gstscenechangeorc.orc')],
|
2019-01-16 01:03:40 +00:00
|
|
|
]
|
|
|
|
|
2019-01-30 10:54:33 +00:00
|
|
|
orc_test_dep = dependency('', required : false)
|
2019-01-16 01:03:40 +00:00
|
|
|
if have_orcc
|
|
|
|
# FIXME: there should really just be a separate orc-test-0.4.pc file for this
|
|
|
|
if orc_dep.type_name() == 'pkgconfig'
|
2019-01-30 10:54:33 +00:00
|
|
|
orc_test_dep = cc.find_library('orc-test-0.4', required : false)
|
2019-01-31 09:54:06 +00:00
|
|
|
else
|
|
|
|
orc_test_dep = dependency('', fallback: ['orc', 'orc_test_dep'], required: false)
|
2019-01-16 01:03:40 +00:00
|
|
|
endif
|
2019-01-30 10:54:33 +00:00
|
|
|
endif
|
|
|
|
|
|
|
|
if have_orcc and orc_test_dep.found()
|
2019-01-16 01:03:40 +00:00
|
|
|
foreach t : orc_tests
|
|
|
|
tname = t[0]
|
|
|
|
torcfile = t[1]
|
|
|
|
tcfilename = '@0@.c'.format(tname)
|
|
|
|
test_c = custom_target(tcfilename,
|
|
|
|
output: tcfilename,
|
|
|
|
input: torcfile,
|
|
|
|
command: [orcc, '--include', 'stdint.h', '--test', '-o', '@OUTPUT@', '@INPUT@'])
|
|
|
|
test_exe = executable(tname, test_c, dependencies: [orc_dep, orc_test_dep])
|
|
|
|
test(tname, test_exe)
|
|
|
|
endforeach
|
|
|
|
endif
|
|
|
|
|
2020-11-14 10:56:51 +00:00
|
|
|
if enable_gst_play_tests
|
2017-10-16 17:51:36 +00:00
|
|
|
subdir ('media')
|
|
|
|
endif
|