| // Copyright 2022 The Cobalt Authors. All Rights Reserved. | |
| // | |
| // Licensed under the Apache License, Version 2.0 (the "License"); | |
| // you may not use this file except in compliance with the License. | |
| // You may obtain a copy of the License at | |
| // | |
| // http://www.apache.org/licenses/LICENSE-2.0 | |
| // | |
| // Unless required by applicable law or agreed to in writing, software | |
| // distributed under the License is distributed on an "AS IS" BASIS, | |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| // See the License for the specific language governing permissions and | |
| // limitations under the License. | |
| #ifndef STARBOARD_SHARED_WIN32_WASAPI_INCLUDE_H_ | |
| #define STARBOARD_SHARED_WIN32_WASAPI_INCLUDE_H_ | |
| #include <guiddef.h> | |
| #include <initguid.h> | |
| #define KSAUDIO_SPEAKER_DIRECTOUT 0 | |
| #define KSAUDIO_SPEAKER_STEREO (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT) | |
| #define KSAUDIO_SPEAKER_5POINT1 \ | |
| (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER | \ | |
| SPEAKER_LOW_FREQUENCY | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT) | |
| DEFINE_GUID(KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS, | |
| 0x0000000a, | |
| 0x0cea, | |
| 0x0010, | |
| 0x80, | |
| 0x00, | |
| 0x00, | |
| 0xaa, | |
| 0x00, | |
| 0x38, | |
| 0x9b, | |
| 0x71); | |
| // IEC 60958 specific values. | |
| constexpr int kAc3SamplesPerSecond = 48000; | |
| constexpr int kEac3SamplesPerSecond = 192000; | |
| constexpr int kIec60958Channels = 2; | |
| constexpr int kIec60958BitsPerSample = 16; | |
| constexpr int kIec60958BlockAlign = 4; | |
| // Values taken from the Dolby Audio Decoder MFT documentation | |
| // https://docs.microsoft.com/en-us/windows/win32/medfound/dolby-audio-decoder | |
| constexpr size_t kAc3BufferSize = 6144; | |
| constexpr size_t kEac3BufferSize = 24576; | |
| namespace starboard { | |
| namespace shared { | |
| namespace win32 { | |
| typedef struct { | |
| WAVEFORMATEXTENSIBLE FormatExt; | |
| DWORD dwEncodedSamplesPerSec; | |
| DWORD dwEncodedChannelCount; | |
| DWORD dwAverageBytesPerSec; | |
| } WAVEFORMATEXTENSIBLE_IEC61937, *PWAVEFORMATEXTENSIBLE_IEC61937; | |
| } // namespace win32 | |
| } // namespace shared | |
| } // namespace starboard | |
| #endif // STARBOARD_SHARED_WIN32_WASAPI_INCLUDE_H_ |