From 65e369444d07b7d7b2c72dc431567d1fa6c42ad2 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Mon, 25 Mar 2019 10:43:00 +0300 Subject: [PATCH] mfplat: Add tracing for media formats guids. Signed-off-by: Nikolay Sivov Signed-off-by: Alexandre Julliard --- dlls/mfplat/main.c | 132 ++++++++++++++++++++++++++++++++++++++++++++- include/mfapi.h | 121 ++++++++++++++++++++++++++++++++++++++++- include/mmreg.h | 19 +++++++ include/mmsystem.h | 2 + 4 files changed, 272 insertions(+), 2 deletions(-) diff --git a/dlls/mfplat/main.c b/dlls/mfplat/main.c index 61ee51da344..7edf985d036 100644 --- a/dlls/mfplat/main.c +++ b/dlls/mfplat/main.c @@ -686,6 +686,136 @@ static const char *debugstr_attr(const GUID *guid) return ret ? wine_dbg_sprintf("%s", ret->name) : wine_dbgstr_guid(guid); } +static const char *debugstr_mf_guid(const GUID *guid) +{ + static const struct guid_def guid_defs[] = + { +#define X(g) { &(g), #g } + X(MFAudioFormat_ADTS), + X(MFAudioFormat_PCM), + X(MFAudioFormat_PCM_HDCP), + X(MFAudioFormat_Float), + X(MFAudioFormat_DTS), + X(MFAudioFormat_DRM), + X(MFAudioFormat_MSP1), + X(MFAudioFormat_Vorbis), + X(MFAudioFormat_AAC), + X(MFVideoFormat_RGB24), + X(MFVideoFormat_ARGB32), + X(MFVideoFormat_RGB32), + X(MFVideoFormat_RGB565), + X(MFVideoFormat_RGB555), + X(MFVideoFormat_A2R10G10B10), + X(MFMediaType_Script), + X(MFMediaType_Image), + X(MFMediaType_HTML), + X(MFMediaType_Binary), + X(MFVideoFormat_MPEG2), + X(MFMediaType_FileTransfer), + X(MFVideoFormat_RGB8), + X(MFAudioFormat_Dolby_AC3), + X(MFVideoFormat_L8), + X(MFAudioFormat_LPCM), + X(MFVideoFormat_420O), + X(MFVideoFormat_AI44), + X(MFVideoFormat_AV1), + X(MFVideoFormat_AYUV), + X(MFVideoFormat_H263), + X(MFVideoFormat_H264), + X(MFVideoFormat_H265), + X(MFVideoFormat_HEVC), + X(MFVideoFormat_HEVC_ES), + X(MFVideoFormat_I420), + X(MFVideoFormat_IYUV), + X(MFVideoFormat_M4S2), + X(MFVideoFormat_MJPG), + X(MFVideoFormat_MP43), + X(MFVideoFormat_MP4S), + X(MFVideoFormat_MP4V), + X(MFVideoFormat_MPG1), + X(MFVideoFormat_MSS1), + X(MFVideoFormat_MSS2), + X(MFVideoFormat_NV11), + X(MFVideoFormat_NV12), + X(MFVideoFormat_ORAW), + X(MFAudioFormat_Opus), + X(MFVideoFormat_D16), + X(MFAudioFormat_MPEG), + X(MFVideoFormat_P010), + X(MFVideoFormat_P016), + X(MFVideoFormat_P210), + X(MFVideoFormat_P216), + X(MFVideoFormat_L16), + X(MFAudioFormat_MP3), + X(MFVideoFormat_UYVY), + X(MFVideoFormat_VP10), + X(MFVideoFormat_VP80), + X(MFVideoFormat_VP90), + X(MFVideoFormat_WMV1), + X(MFVideoFormat_WMV2), + X(MFVideoFormat_WMV3), + X(MFVideoFormat_WVC1), + X(MFVideoFormat_Y210), + X(MFVideoFormat_Y216), + X(MFVideoFormat_Y410), + X(MFVideoFormat_Y416), + X(MFVideoFormat_Y41P), + X(MFVideoFormat_Y41T), + X(MFVideoFormat_Y42T), + X(MFVideoFormat_YUY2), + X(MFVideoFormat_YV12), + X(MFVideoFormat_YVU9), + X(MFVideoFormat_YVYU), + X(MFAudioFormat_WMAudioV8), + X(MFAudioFormat_ALAC), + X(MFAudioFormat_AMR_NB), + X(MFMediaType_Audio), + X(MFAudioFormat_WMAudioV9), + X(MFAudioFormat_AMR_WB), + X(MFAudioFormat_WMAudio_Lossless), + X(MFAudioFormat_AMR_WP), + X(MFAudioFormat_WMASPDIF), + X(MFVideoFormat_DV25), + X(MFVideoFormat_DV50), + X(MFVideoFormat_DVC), + X(MFVideoFormat_DVH1), + X(MFVideoFormat_DVHD), + X(MFVideoFormat_DVSD), + X(MFVideoFormat_DVSL), + X(MFVideoFormat_A16B16G16R16F), + X(MFVideoFormat_v210), + X(MFVideoFormat_v216), + X(MFVideoFormat_v410), + X(MFMediaType_Video), + X(MFAudioFormat_AAC_HDCP), + X(MFAudioFormat_Dolby_AC3_HDCP), + X(MFMediaType_Subtitle), + X(MFMediaType_Stream), + X(MFAudioFormat_Dolby_AC3_SPDIF), + X(MFAudioFormat_Float_SpatialObjects), + X(MFMediaType_SAMI), + X(MFAudioFormat_ADTS_HDCP), + X(MFAudioFormat_FLAC), + X(MFAudioFormat_Dolby_DDPlus), + X(MFMediaType_MultiplexedFrames), + X(MFAudioFormat_Base_HDCP), + X(MFVideoFormat_Base_HDCP), + X(MFVideoFormat_H264_HDCP), + X(MFVideoFormat_HEVC_HDCP), + X(MFMediaType_Default), + X(MFMediaType_Protected), + X(MFVideoFormat_H264_ES), + X(MFMediaType_Perception), +#undef X + }; + struct guid_def *ret = NULL; + + if (guid) + ret = bsearch(guid, guid_defs, ARRAY_SIZE(guid_defs), sizeof(*guid_defs), debug_compare_guid); + + return ret ? wine_dbg_sprintf("%s", ret->name) : wine_dbgstr_guid(guid); +} + static inline struct attributes *impl_from_IMFAttributes(IMFAttributes *iface) { return CONTAINING_RECORD(iface, struct attributes, IMFAttributes_iface); @@ -1311,7 +1441,7 @@ static HRESULT WINAPI mfattributes_SetGUID(IMFAttributes *iface, REFGUID key, RE struct attributes *attributes = impl_from_IMFAttributes(iface); PROPVARIANT attrval; - TRACE("%p, %s, %s.\n", iface, debugstr_attr(key), debugstr_guid(value)); + TRACE("%p, %s, %s.\n", iface, debugstr_attr(key), debugstr_mf_guid(value)); InitPropVariantFromCLSID(value, &attrval); return attributes_set_item(attributes, key, &attrval); diff --git a/include/mfapi.h b/include/mfapi.h index 579f7003c59..775a89f2404 100644 --- a/include/mfapi.h +++ b/include/mfapi.h @@ -48,6 +48,7 @@ extern "C" { DEFINE_GUID(name, format, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71); #ifndef DIRECT3D_VERSION +#define LOCAL_D3DFMT_DEFINES 1 #define D3DFMT_R8G8B8 20 #define D3DFMT_A8R8G8B8 21 #define D3DFMT_X8R8G8B8 22 @@ -55,10 +56,13 @@ extern "C" { #define D3DFMT_X1R5G5B5 24 #define D3DFMT_A2B10G10R10 31 #define D3DFMT_P8 41 +#define D3DFMT_L8 50 +#define D3DFMT_D16 80 +#define D3DFMT_L16 81 #define D3DFMT_A16B16G16R16F 113 #endif -DEFINE_MEDIATYPE_GUID(MFVideoFormat_WMV3, MAKEFOURCC('W','M','V','3')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_Base, 0); DEFINE_MEDIATYPE_GUID(MFVideoFormat_RGB8, D3DFMT_P8); DEFINE_MEDIATYPE_GUID(MFVideoFormat_RGB555, D3DFMT_X1R5G5B5); DEFINE_MEDIATYPE_GUID(MFVideoFormat_RGB565, D3DFMT_R5G6B5); @@ -67,6 +71,121 @@ DEFINE_MEDIATYPE_GUID(MFVideoFormat_RGB32, D3DFMT_X8R8G8B8); DEFINE_MEDIATYPE_GUID(MFVideoFormat_ARGB32, D3DFMT_A8R8G8B8); DEFINE_MEDIATYPE_GUID(MFVideoFormat_A2R10G10B10, D3DFMT_A2B10G10R10); DEFINE_MEDIATYPE_GUID(MFVideoFormat_A16B16G16R16F, D3DFMT_A16B16G16R16F); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_L8, D3DFMT_L8); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_L16, D3DFMT_L16); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_D16, D3DFMT_D16); + +DEFINE_MEDIATYPE_GUID(MFVideoFormat_420O, MAKEFOURCC('4','2','0','O')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_DVSL, MAKEFOURCC('d','v','s','l')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_DVSD, MAKEFOURCC('d','v','s','d')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_DVHD, MAKEFOURCC('d','v','h','d')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_DV25, MAKEFOURCC('d','v','2','5')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_DV50, MAKEFOURCC('d','v','5','0')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_DVH1, MAKEFOURCC('d','v','h','1')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_DVC, MAKEFOURCC('d','v','c',' ')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_v210, MAKEFOURCC('v','2','1','0')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_v216, MAKEFOURCC('v','2','1','6')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_v410, MAKEFOURCC('v','4','1','0')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_AI44, MAKEFOURCC('A','I','4','4')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_AV1, MAKEFOURCC('A','V','0','1')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_AYUV, MAKEFOURCC('A','Y','U','V')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_H263, MAKEFOURCC('H','2','6','3')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_H264, MAKEFOURCC('H','2','6','4')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_H265, MAKEFOURCC('H','2','6','5')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_HEVC, MAKEFOURCC('H','E','V','C')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_HEVC_ES, MAKEFOURCC('H','E','V','S')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_I420, MAKEFOURCC('I','4','2','0')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_IYUV, MAKEFOURCC('I','Y','U','V')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_M4S2, MAKEFOURCC('M','4','S','2')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_MJPG, MAKEFOURCC('M','J','P','G')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_MP43, MAKEFOURCC('M','P','4','3')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_MP4S, MAKEFOURCC('M','P','4','S')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_MP4V, MAKEFOURCC('M','P','4','V')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_MPG1, MAKEFOURCC('M','P','G','1')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_MSS1, MAKEFOURCC('M','S','S','1')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_MSS2, MAKEFOURCC('M','S','S','2')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_NV11, MAKEFOURCC('N','V','1','1')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_NV12, MAKEFOURCC('N','V','1','2')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_ORAW, MAKEFOURCC('O','R','A','W')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_P010, MAKEFOURCC('P','0','1','0')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_P016, MAKEFOURCC('P','0','1','6')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_P210, MAKEFOURCC('P','2','1','0')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_P216, MAKEFOURCC('P','2','1','6')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_UYVY, MAKEFOURCC('U','Y','V','Y')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_VP10, MAKEFOURCC('V','P','1','0')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_VP80, MAKEFOURCC('V','P','8','0')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_VP90, MAKEFOURCC('V','P','9','0')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_Y210, MAKEFOURCC('Y','2','1','0')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_Y216, MAKEFOURCC('Y','2','1','6')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_Y410, MAKEFOURCC('Y','4','1','0')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_Y416, MAKEFOURCC('Y','4','1','6')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_Y41P, MAKEFOURCC('Y','4','1','P')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_Y41T, MAKEFOURCC('Y','4','1','T')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_Y42T, MAKEFOURCC('Y','4','2','T')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_YUY2, MAKEFOURCC('Y','U','Y','2')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_YV12, MAKEFOURCC('Y','V','1','2')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_YVYU, MAKEFOURCC('Y','V','Y','U')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_YVU9, MAKEFOURCC('Y','V','U','9')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_WMV1, MAKEFOURCC('W','M','V','1')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_WMV2, MAKEFOURCC('W','M','V','2')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_WMV3, MAKEFOURCC('W','M','V','3')); +DEFINE_MEDIATYPE_GUID(MFVideoFormat_WVC1, MAKEFOURCC('W','V','C','1')); + +DEFINE_GUID(MFVideoFormat_Base_HDCP, 0xeac3b9d5, 0xbd14, 0x4237, 0x8f, 0x1f, 0xba, 0xb4, 0x28, 0xe4, 0x93, 0x12); +DEFINE_GUID(MFVideoFormat_H264_ES, 0x3f40f4f0, 0x5622, 0x4ff8, 0xb6, 0xd8, 0xa1, 0x7a, 0x58, 0x4b, 0xee, 0x5e); +DEFINE_GUID(MFVideoFormat_H264_HDCP, 0x5d0ce9dd, 0x9817, 0x49da, 0xbd, 0xfd, 0xf5, 0xf5, 0xb9, 0x8f, 0x18, 0xa6); +DEFINE_GUID(MFVideoFormat_HEVC_HDCP, 0x3cfe0fe6, 0x05c4, 0x47dc, 0x9d, 0x70, 0x4b, 0xdb, 0x29, 0x59, 0x72, 0x0f); +DEFINE_GUID(MFVideoFormat_MPEG2, 0xe06d8026, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea); + +#define MFVideoFormat_MPG2 MFVideoFormat_MPEG2 + +#ifdef LOCAL_D3DFMT_DEFINES +#undef D3DFMT_R8G8B8 +#undef D3DFMT_A8R8G8B8 +#undef D3DFMT_X8R8G8B8 +#undef D3DFMT_R5G6B5 +#undef D3DFMT_X1R5G5B5 +#undef D3DFMT_A2B10G10R10 +#undef D3DFMT_P8 +#undef D3DFMT_L8 +#undef D3DFMT_D16 +#undef D3DFMT_L16 +#undef D3DFMT_A16B16G16R16F +#undef LOCAL_D3DFMT_DEFINES +#endif + +DEFINE_MEDIATYPE_GUID(MFAudioFormat_Base, 0); +DEFINE_MEDIATYPE_GUID(MFAudioFormat_AAC, WAVE_FORMAT_MPEG_HEAAC); +DEFINE_MEDIATYPE_GUID(MFAudioFormat_ADTS, WAVE_FORMAT_MPEG_ADTS_AAC); +DEFINE_MEDIATYPE_GUID(MFAudioFormat_ALAC, WAVE_FORMAT_ALAC); +DEFINE_MEDIATYPE_GUID(MFAudioFormat_AMR_NB, WAVE_FORMAT_AMR_NB); +DEFINE_MEDIATYPE_GUID(MFAudioFormat_AMR_WB, WAVE_FORMAT_AMR_WB); +DEFINE_MEDIATYPE_GUID(MFAudioFormat_AMR_WP, WAVE_FORMAT_AMR_WP); +DEFINE_MEDIATYPE_GUID(MFAudioFormat_Dolby_AC3_SPDIF, WAVE_FORMAT_DOLBY_AC3_SPDIF); +DEFINE_MEDIATYPE_GUID(MFAudioFormat_DRM, WAVE_FORMAT_DRM); +DEFINE_MEDIATYPE_GUID(MFAudioFormat_DTS, WAVE_FORMAT_DTS); +DEFINE_MEDIATYPE_GUID(MFAudioFormat_Float, WAVE_FORMAT_IEEE_FLOAT); +DEFINE_MEDIATYPE_GUID(MFAudioFormat_FLAC, WAVE_FORMAT_FLAC); +DEFINE_MEDIATYPE_GUID(MFAudioFormat_MP3, WAVE_FORMAT_MPEGLAYER3); +DEFINE_MEDIATYPE_GUID(MFAudioFormat_MPEG, WAVE_FORMAT_MPEG); +DEFINE_MEDIATYPE_GUID(MFAudioFormat_MSP1, WAVE_FORMAT_WMAVOICE9); +DEFINE_MEDIATYPE_GUID(MFAudioFormat_Opus, WAVE_FORMAT_OPUS); +DEFINE_MEDIATYPE_GUID(MFAudioFormat_PCM, WAVE_FORMAT_PCM); +DEFINE_MEDIATYPE_GUID(MFAudioFormat_WMAudioV8, WAVE_FORMAT_WMAUDIO2); +DEFINE_MEDIATYPE_GUID(MFAudioFormat_WMAudioV9, WAVE_FORMAT_WMAUDIO3); +DEFINE_MEDIATYPE_GUID(MFAudioFormat_WMAudio_Lossless, WAVE_FORMAT_WMAUDIO_LOSSLESS); +DEFINE_MEDIATYPE_GUID(MFAudioFormat_WMASPDIF, WAVE_FORMAT_WMASPDIF); + +DEFINE_GUID(MFAudioFormat_AAC_HDCP, 0x419bce76, 0x8b72, 0x400f, 0xad, 0xeb, 0x84, 0xb5, 0x7d, 0x63, 0x48, 0x4d); +DEFINE_GUID(MFAudioFormat_ADTS_HDCP, 0xda4963a3, 0x14d8, 0x4dcf, 0x92, 0xb7, 0x19, 0x3e, 0xb8, 0x43, 0x63, 0xdb); +DEFINE_GUID(MFAudioFormat_Base_HDCP, 0x3884b5bc, 0xe277, 0x43fd, 0x98, 0x3d, 0x03, 0x8a, 0xa8, 0xd9, 0xb6, 0x05); +DEFINE_GUID(MFAudioFormat_Dolby_AC3, 0xe06d802c, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea); +DEFINE_GUID(MFAudioFormat_Dolby_AC3_HDCP, 0x97663a80, 0x8ffb, 0x4445, 0xa6, 0xba, 0x79, 0x2d, 0x90, 0x8f, 0x49, 0x7f); +DEFINE_GUID(MFAudioFormat_Dolby_DDPlus, 0xa7fb87af, 0x2d02, 0x42fb, 0xa4, 0xd4, 0x05, 0xcd, 0x93, 0x84, 0x3b, 0xdd); +DEFINE_GUID(MFAudioFormat_Float_SpatialObjects, 0xfa39cd94, 0xbc64, 0x4ab1, 0x9b, 0x71, 0xdc, 0xd0, 0x9d, 0x5a, 0x7e, 0x7a); +DEFINE_GUID(MFAudioFormat_LPCM, 0xe06d8032, 0xdb46, 0x11cf, 0xb4, 0xd1, 0x00, 0x80, 0x5f, 0x6c, 0xbb, 0xea); +DEFINE_GUID(MFAudioFormat_PCM_HDCP, 0xa5e7ff01, 0x8411, 0x4acc, 0xa8, 0x65, 0x5f, 0x49, 0x41, 0x28, 0x8d, 0x80); +DEFINE_GUID(MFAudioFormat_Vorbis, 0x8d2fd10b, 0x5841, 0x4a6b, 0x89, 0x05, 0x58, 0x8f, 0xec, 0x1a, 0xde, 0xd9); #if defined(__cplusplus) && !defined(CINTERFACE) typedef struct tagMFASYNCRESULT : public IMFAsyncResult { diff --git a/include/mmreg.h b/include/mmreg.h index 8bb581dd792..e7d70bbd63b 100644 --- a/include/mmreg.h +++ b/include/mmreg.h @@ -77,11 +77,17 @@ typedef struct _WAVEFORMATEX { /* WAVE form wFormatTag IDs */ #define WAVE_FORMAT_UNKNOWN 0x0000 /* Microsoft Corporation */ +#ifndef WAVE_FORMAT_PCM +#define WAVE_FORMAT_PCM 0x0001 +#endif #define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */ #define WAVE_FORMAT_IEEE_FLOAT 0x0003 /* Microsoft Corporation */ #define WAVE_FORMAT_IBM_CVSD 0x0005 /* IBM Corporation */ #define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */ #define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */ +#define WAVE_FORMAT_DTS 0x0008 +#define WAVE_FORMAT_DRM 0x0009 +#define WAVE_FORMAT_WMAVOICE9 0x000a #define WAVE_FORMAT_OKI_ADPCM 0x0010 /* OKI */ #define WAVE_FORMAT_DVI_ADPCM 0x0011 /* Intel Corporation */ #define WAVE_FORMAT_IMA_ADPCM (WAVE_FORMAT_DVI_ADPCM) /* Intel Corporation */ @@ -110,6 +116,11 @@ typedef struct _WAVEFORMATEX { #define WAVE_FORMAT_MPEG 0x0050 /* Microsoft Corporation */ #define WAVE_FORMAT_MPEGLAYER3 0x0055 #define WAVE_FORMAT_MSRT24 0x0082 /* Microsoft Corporation */ +#define WAVE_FORMAT_DOLBY_AC3_SPDIF 0x0092 +#define WAVE_FORMAT_WMAUDIO2 0x0161 +#define WAVE_FORMAT_WMAUDIO3 0x0162 +#define WAVE_FORMAT_WMAUDIO_LOSSLESS 0x0163 +#define WAVE_FORMAT_WMASPDIF 0x0164 #define WAVE_FORMAT_CREATIVE_ADPCM 0x0200 /* Creative Labs, Inc */ #define WAVE_FORMAT_CREATIVE_FASTSPEECH8 0x0202 /* Creative Labs, Inc */ #define WAVE_FORMAT_CREATIVE_FASTSPEECH10 0x0203 /* Creative Labs, Inc */ @@ -119,6 +130,14 @@ typedef struct _WAVEFORMATEX { #define WAVE_FORMAT_OLICELP 0x1002 /* Ing C. Olivetti & C., S.p.A. */ #define WAVE_FORMAT_OLISBC 0x1003 /* Ing C. Olivetti & C., S.p.A. */ #define WAVE_FORMAT_OLIOPR 0x1004 /* Ing C. Olivetti & C., S.p.A. */ +#define WAVE_FORMAT_MPEG_ADTS_AAC 0x1600 +#define WAVE_FORMAT_MPEG_HEAAC 0x1610 +#define WAVE_FORMAT_ALAC 0x6c61 +#define WAVE_FORMAT_OPUS 0x704f +#define WAVE_FORMAT_AMR_NB 0x7361 +#define WAVE_FORMAT_AMR_WB 0x7362 +#define WAVE_FORMAT_AMR_WP 0x7363 +#define WAVE_FORMAT_FLAC 0xf1ac #ifndef MM_MICROSOFT #define MM_MICROSOFT 0x01 diff --git a/include/mmsystem.h b/include/mmsystem.h index 721e5e616fc..ee7e316660b 100644 --- a/include/mmsystem.h +++ b/include/mmsystem.h @@ -483,7 +483,9 @@ typedef struct waveformat_tag { WORD nBlockAlign; } WAVEFORMAT, *LPWAVEFORMAT; +#ifndef WAVE_FORMAT_PCM #define WAVE_FORMAT_PCM 1 +#endif typedef struct pcmwaveformat_tag { WAVEFORMAT wf;