From: Arun Raghavan Date: Mon, 3 Oct 2016 05:29:37 +0000 (+0530) Subject: meson: Enable SSE intrinsics in audio-resampler X-Git-Tag: 1.10.4~91 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=87905cc48b6c3104eddfb4e486c6cb1f3a3f40b6;p=platform%2Fupstream%2Fgst-plugins-base.git meson: Enable SSE intrinsics in audio-resampler This files need to be built with the specific C flags for the corresponding processor optimisations. --- diff --git a/config.h.meson b/config.h.meson index 8e38a52..3a801b4 100644 --- a/config.h.meson +++ b/config.h.meson @@ -245,6 +245,9 @@ /* Define if RDTSC is available */ #mesondefine HAVE_RDTSC +/* Define to 1 if you have the header file. */ +#mesondefine HAVE_SMMINTRIN_H + /* Define to 1 if you have the header file. */ #mesondefine HAVE_STDINT_H diff --git a/gst-libs/gst/audio/meson.build b/gst-libs/gst/audio/meson.build index a2df57a..0fc9bb7 100644 --- a/gst-libs/gst/audio/meson.build +++ b/gst-libs/gst/audio/meson.build @@ -85,10 +85,53 @@ else configuration : configuration_data()) endif +simd_cargs = [] +simd_dependencies = [] + +if have_sse + audio_resampler_sse = static_library('audio_resampler_sse', + [ 'audio-resampler-x86-sse.c' ], + c_args : gst_plugins_base_args + [sse_args] + [pic_args], + include_directories : [configinc, libsinc], + dependencies : [gst_base_dep], + install : false + ) + + simd_cargs += ['-DHAVE_SSE'] + simd_dependencies += audio_resampler_sse +endif + +if have_sse2 + audio_resampler_sse2 = static_library('audio_resampler_sse2', + [ 'audio-resampler-x86-sse2.c' ], + c_args : gst_plugins_base_args + [sse2_args] + [pic_args], + include_directories : [configinc, libsinc], + dependencies : [gst_base_dep], + install : false + ) + + simd_cargs += ['-DHAVE_SSE2'] + simd_dependencies += audio_resampler_sse2 +endif + +if have_sse41 + audio_resampler_sse41 = static_library('audio_resampler_sse41', + [ 'audio-resampler-x86-sse41.c' ], + c_args : gst_plugins_base_args + [sse41_args] + [pic_args], + include_directories : [configinc, libsinc], + dependencies : [gst_base_dep], + install : false + ) + + simd_cargs += ['-DHAVE_SSE41'] + simd_dependencies += audio_resampler_sse41 +endif + gstaudio = library('gstaudio-@0@'.format(api_version), audio_src, gstaudio_h, gstaudio_c, orc_c, orc_h, - c_args: gst_plugins_base_args, + c_args : gst_plugins_base_args + simd_cargs, include_directories: [configinc, libsinc], + link_with : simd_dependencies, version : libversion, soversion : soversion, install : true, diff --git a/meson.build b/meson.build index c47a8b4..75de4a3 100644 --- a/meson.build +++ b/meson.build @@ -50,6 +50,7 @@ check_headers = [ ['HAVE_INTTYPES_H', 'inttypes.h'], ['HAVE_MEMORY_H', 'memory.h'], ['HAVE_PROCESS_H', 'process.h'], + ['HAVE_SMMINTRIN_H', 'smmintrin.h'], ['HAVE_STDINT_H', 'stdint.h'], ['HAVE_STDLIB_H', 'stdlib.h'], ['HAVE_STRINGS_H', 'strings.h'], @@ -175,6 +176,23 @@ else core_conf.set('DISABLE_ORC', 1) endif +# Used to build SSE* things in audio-resampler +sse_args = '-msse' +sse2_args = '-msse2' +sse41_args = '-msse4.1' + +have_sse = cc.has_argument(sse_args) +have_sse2 = cc.has_argument(sse2_args) +have_sse41 = cc.has_argument(sse41_args) + +# FIXME: Meson should have a way for portably adding -fPIC when needed for use +# with static libraries that are linked into shared libraries. Or, it should +# add it by default with an option to turn it off if needed. +pic_args = ['-fPIC'] +if host_machine.system() == 'windows' + pic_args = [] +endif + subdir('gst-libs') subdir('gst') subdir('ext')