mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-28 03:00:35 +00:00
9d703439f1
Add pitch tests with different forward and backward playback rates. Those tests depend on the libSoundTouch version to validate the buffers checksums. The actual version uses libSoundTouch 2.3.2, use the `--force-fallback-for=soundtouch` meson option to build using the same version. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6247>
57 lines
2.1 KiB
Meson
57 lines
2.1 KiB
Meson
soundtouch_sources = [
|
|
'plugin.c',
|
|
'gstpitch.cc',
|
|
'gstbpmdetect.cc',
|
|
]
|
|
|
|
soundtouch_cargs = ['-DHAVE_SOUNDTOUCH']
|
|
if get_option('soundtouch').disabled()
|
|
subdir_done()
|
|
endif
|
|
|
|
soundtouch_dep = dependency('soundtouch', required : false,
|
|
fallback : ['soundtouch', 'soundtouch_dep'])
|
|
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 not soundtouch_dep.found() and get_option('soundtouch').enabled()
|
|
error('soundtouch plugin enabled but soundtouch library not found')
|
|
endif
|
|
|
|
# GCC, by default, handles exceptions in C++ sources as /EHsc, allowing
|
|
# exceptions intra C++ code, and terminating the app on hitting a C function's
|
|
# stack.
|
|
# Grep ST_NO_EXCEPTION_HANDLING and see:
|
|
# https://learn.microsoft.com/en-us/cpp/build/reference/eh-exception-handling-model?view=msvc-170
|
|
# https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#index-fexceptions
|
|
#
|
|
# However, -fexceptions in Application.mk must be manually injected, as
|
|
# their toolchain does not add it for historical reasons.
|
|
# https://developer.android.com/ndk/guides/cpp-support?hl=es-419
|
|
if get_option('cpp_eh') in ['none']
|
|
soundtouch_cargs += ['-DST_NO_EXCEPTION_HANDLING']
|
|
elif host_system == 'android'
|
|
soundtouch_cargs += cxx.get_supported_arguments('-fexceptions')
|
|
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],
|
|
override_options: ['cpp_std=c++14'],
|
|
install : true,
|
|
install_dir : plugins_install_dir)
|
|
plugins += [gstsoundtouch]
|
|
endif
|