With the Windows 8.1 SDK, the v1 of the AUDCLNT_STREAMOPTIONS enum is
defined which only has NONE and RAW, so it's not only defined when
AudioClient3 is available.
Add a meson check for the symbol. This is not needed for Autotools
because there we build against the MinGW audioclient.h which is still
at v1 of the AudioClient interface.
#ifndef __IAudioClient3_INTERFACE_DEFINED__
#define __IAudioClient3_INTERFACE_DEFINED__
-/* This is only available with IAudioClient3 */
+#ifndef HAVE_AUDCLNT_STREAMOPTIONS
typedef enum AUDCLNT_STREAMOPTIONS
{
AUDCLNT_STREAMOPTIONS_NONE = 0,
AUDCLNT_STREAMOPTIONS_RAW = 0x1,
AUDCLNT_STREAMOPTIONS_MATCH_FORMAT = 0x2
} AUDCLNT_STREAMOPTIONS;
+#endif
/* These should be available when the IAudioClient2 interface is defined */
#ifndef __IAudioClient2_FWD_DEFINED__
endif
if ole32_dep.found() and ksuser_dep.found() and have_audioclient_h
+ wasapi_args = ['-DCOBJMACROS']
+ if cc.has_header_symbol('audioclient.h', 'AUDCLNT_STREAMOPTIONS_NONE')
+ wasapi_args += ['-DHAVE_AUDCLNT_STREAMOPTIONS']
+ endif
+
gstwasapi = library('gstwasapi',
wasapi_sources,
- c_args : gst_plugins_bad_args + ['-DCOBJMACROS'],
+ c_args : gst_plugins_bad_args + wasapi_args,
include_directories : [configinc],
dependencies : [gstaudio_dep, ole32_dep, ksuser_dep],
install : true,