diff options
author | Piotr Srebrny <piotr.srebrny@qt.io> | 2021-11-11 12:02:45 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-11-15 12:44:28 +0000 |
commit | 3359e66cc631a4febb27579d5728d02c94f4a160 (patch) | |
tree | 9f8643eda49a0425efc99a130c4cfb9d20f58047 | |
parent | e8716fdfcfd6a4bc149142a2f66cebdd236b605d (diff) | |
download | qtmultimedia-3359e66cc631a4febb27579d5728d02c94f4a160.tar.gz |
Use the Windows headers as Mingw supports now WMF
Change-Id: Ib16ac7d5048f04f74f8cb566c3113082a60e8019
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
(cherry picked from commit 75ebc69de0d350c9cebdeb63834ebdafeb9a46f7)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | src/multimedia/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/multimedia/platform/windows/audio/qwindowsaudioutils.cpp | 41 | ||||
-rw-r--r-- | src/multimedia/platform/windows/audio/qwindowsaudioutils_p.h | 90 |
3 files changed, 4 insertions, 128 deletions
diff --git a/src/multimedia/CMakeLists.txt b/src/multimedia/CMakeLists.txt index df5bace5a..c1433c2d8 100644 --- a/src/multimedia/CMakeLists.txt +++ b/src/multimedia/CMakeLists.txt @@ -178,6 +178,7 @@ qt_internal_extend_target(Multimedia CONDITION QT_FEATURE_wmf dxva2 evr gdi32 + ksuser mf mfcore mfplat diff --git a/src/multimedia/platform/windows/audio/qwindowsaudioutils.cpp b/src/multimedia/platform/windows/audio/qwindowsaudioutils.cpp index 69e50a9a6..579061a58 100644 --- a/src/multimedia/platform/windows/audio/qwindowsaudioutils.cpp +++ b/src/multimedia/platform/windows/audio/qwindowsaudioutils.cpp @@ -39,43 +39,6 @@ #include "qwindowsaudioutils_p.h" -#ifndef SPEAKER_FRONT_LEFT - #define SPEAKER_FRONT_LEFT 0x00000001 - #define SPEAKER_FRONT_RIGHT 0x00000002 - #define SPEAKER_FRONT_CENTER 0x00000004 - #define SPEAKER_LOW_FREQUENCY 0x00000008 - #define SPEAKER_BACK_LEFT 0x00000010 - #define SPEAKER_BACK_RIGHT 0x00000020 - #define SPEAKER_FRONT_LEFT_OF_CENTER 0x00000040 - #define SPEAKER_FRONT_RIGHT_OF_CENTER 0x00000080 - #define SPEAKER_BACK_CENTER 0x00000100 - #define SPEAKER_SIDE_LEFT 0x00000200 - #define SPEAKER_SIDE_RIGHT 0x00000400 - #define SPEAKER_TOP_CENTER 0x00000800 - #define SPEAKER_TOP_FRONT_LEFT 0x00001000 - #define SPEAKER_TOP_FRONT_CENTER 0x00002000 - #define SPEAKER_TOP_FRONT_RIGHT 0x00004000 - #define SPEAKER_TOP_BACK_LEFT 0x00008000 - #define SPEAKER_TOP_BACK_CENTER 0x00010000 - #define SPEAKER_TOP_BACK_RIGHT 0x00020000 - #define SPEAKER_RESERVED 0x7FFC0000 - #define SPEAKER_ALL 0x80000000 -#endif - -#ifndef WAVE_FORMAT_EXTENSIBLE - #define WAVE_FORMAT_EXTENSIBLE 0xFFFE -#endif - -#ifndef WAVE_FORMAT_IEEE_FLOAT - #define WAVE_FORMAT_IEEE_FLOAT 0x0003 -#endif - -static const GUID _KSDATAFORMAT_SUBTYPE_PCM = { - 0x00000001, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}}; - -static const GUID _KSDATAFORMAT_SUBTYPE_IEEE_FLOAT = { - 0x00000003, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}}; - QT_BEGIN_NAMESPACE bool qt_convertFormat(const QAudioFormat &format, WAVEFORMATEXTENSIBLE *wfx) @@ -96,10 +59,10 @@ bool qt_convertFormat(const QAudioFormat &format, WAVEFORMATEXTENSIBLE *wfx) if (format.sampleFormat() == QAudioFormat::Float) { wfx->Format.wFormatTag = WAVE_FORMAT_IEEE_FLOAT; - wfx->SubFormat = _KSDATAFORMAT_SUBTYPE_IEEE_FLOAT; + wfx->SubFormat = KSDATAFORMAT_SUBTYPE_IEEE_FLOAT; } else { wfx->Format.wFormatTag = WAVE_FORMAT_PCM; - wfx->SubFormat = _KSDATAFORMAT_SUBTYPE_PCM; + wfx->SubFormat = KSDATAFORMAT_SUBTYPE_PCM; } if (format.channelCount() > 2) { diff --git a/src/multimedia/platform/windows/audio/qwindowsaudioutils_p.h b/src/multimedia/platform/windows/audio/qwindowsaudioutils_p.h index 15bd50b2b..67a8443b0 100644 --- a/src/multimedia/platform/windows/audio/qwindowsaudioutils_p.h +++ b/src/multimedia/platform/windows/audio/qwindowsaudioutils_p.h @@ -54,95 +54,7 @@ #include <qaudioformat.h> #include <QtCore/qt_windows.h> #include <mmsystem.h> - -#ifndef _WAVEFORMATEXTENSIBLE_ - - #define _WAVEFORMATEXTENSIBLE_ - typedef struct - { - WAVEFORMATEX Format; // Base WAVEFORMATEX data - union - { - WORD wValidBitsPerSample; // Valid bits in each sample container - WORD wSamplesPerBlock; // Samples per block of audio data; valid - // if wBitsPerSample=0 (but rarely used). - WORD wReserved; // Zero if neither case above applies. - } Samples; - DWORD dwChannelMask; // Positions of the audio channels - GUID SubFormat; // Format identifier GUID - } WAVEFORMATEXTENSIBLE, *PWAVEFORMATEXTENSIBLE, *LPPWAVEFORMATEXTENSIBLE; - typedef const WAVEFORMATEXTENSIBLE* LPCWAVEFORMATEXTENSIBLE; - -#endif - -#if defined(Q_CC_MINGW) && !defined(__MINGW64_VERSION_MAJOR) -struct IBaseFilter; // Needed for strmif.h from stock MinGW. -struct _DDPIXELFORMAT; -typedef struct _DDPIXELFORMAT* LPDDPIXELFORMAT; -#endif - -#include <strmif.h> -#if !defined(Q_CC_MINGW) || defined(__MINGW64_VERSION_MAJOR) -# include <uuids.h> -#else - -extern GUID CLSID_AudioInputDeviceCategory; -extern GUID CLSID_AudioRendererCategory; -extern GUID IID_ICreateDevEnum; -extern GUID CLSID_SystemDeviceEnum; - -#ifndef __ICreateDevEnum_INTERFACE_DEFINED__ -#define __ICreateDevEnum_INTERFACE_DEFINED__ - -DECLARE_INTERFACE_(ICreateDevEnum, IUnknown) -{ - STDMETHOD(CreateClassEnumerator)(REFCLSID clsidDeviceClass, - IEnumMoniker **ppEnumMoniker, - DWORD dwFlags) PURE; -}; - -#endif // __ICreateDevEnum_INTERFACE_DEFINED__ - -#ifndef __IErrorLog_INTERFACE_DEFINED__ -#define __IErrorLog_INTERFACE_DEFINED__ - -DECLARE_INTERFACE_(IErrorLog, IUnknown) -{ - STDMETHOD(AddError)(THIS_ LPCOLESTR, EXCEPINFO *) PURE; -}; - -#endif /* __IErrorLog_INTERFACE_DEFINED__ */ - -#ifndef __IPropertyBag_INTERFACE_DEFINED__ -#define __IPropertyBag_INTERFACE_DEFINED__ - -const GUID IID_IPropertyBag = {0x55272A00, 0x42CB, 0x11CE, {0x81, 0x35, 0x00, 0xAA, 0x00, 0x4B, 0xB8, 0x51}}; - -DECLARE_INTERFACE_(IPropertyBag, IUnknown) -{ - STDMETHOD(Read)(THIS_ LPCOLESTR, VARIANT *, IErrorLog *) PURE; - STDMETHOD(Write)(THIS_ LPCOLESTR, VARIANT *) PURE; -}; - -#endif /* __IPropertyBag_INTERFACE_DEFINED__ */ - -#endif // defined(Q_CC_MINGW) && !defined(__MINGW64_VERSION_MAJOR) - -// For mingw toolchain mmsystem.h only defines half the defines, so add if needed. -#ifndef WAVE_FORMAT_44M08 -#define WAVE_FORMAT_44M08 0x00000100 -#define WAVE_FORMAT_44S08 0x00000200 -#define WAVE_FORMAT_44M16 0x00000400 -#define WAVE_FORMAT_44S16 0x00000800 -#define WAVE_FORMAT_48M08 0x00001000 -#define WAVE_FORMAT_48S08 0x00002000 -#define WAVE_FORMAT_48M16 0x00004000 -#define WAVE_FORMAT_48S16 0x00008000 -#define WAVE_FORMAT_96M08 0x00010000 -#define WAVE_FORMAT_96S08 0x00020000 -#define WAVE_FORMAT_96M16 0x00040000 -#define WAVE_FORMAT_96S16 0x00080000 -#endif +#include <mmreg.h> QT_BEGIN_NAMESPACE |