Вложенные идентификаторы GUID для сжатых форматов звука
Для Windows 7 в файл заголовка Ksmedia.h добавлены новые графические идентификаторы подформатов, чтобы обеспечить поддержку сжатых звуковых форматов. Идентификаторы GUID подформата указывают конкретный подформат формата данных. Эти форматы определяются стандартом Ассоциации потребительских электроники (CEA) для несжатого звука.
В результате стандарта CEA-861-D необходимо убедиться, что аудиоформаты, которые не поддерживаются устройством CEA, не передаются на такое устройство. Мультимедийный интерфейс высокого определения (HDMI) и DisplayPort являются примерами устройств CEA.
Для доступа в пользовательском режиме идентификаторы GUID указываются в элементе SubFormat в WAVEFORMATEXTENSIBLE и в элементе FormatExt WAVEFORMATEXTENSIBLE_IEC61937. Для доступа в режиме ядра для звуковых драйверов идентификаторы GUID указываются в элементе DataRange структуры KSDATARANGE_AUDIO.
Идентификаторы GUI для доступных сжатых форматов звука перечислены в следующей таблице.
Обратите внимание , что не все доступные форматы поддерживаются драйвером аудиокласса Windows 7 HD. Форматы, поддерживаемые Windows 7, указываются в таблицах со звездочкой (*).
Тип CEA 861 | SubFormat GUID | Description |
---|---|---|
0x00 |
Обратитесь к потоку. |
|
0x01 |
000000000-0000-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_WAVEFORMATEX |
IEC 60958 PCM |
0x02 |
00000092-00000-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL |
AC-3 |
0x03 |
00000003-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_MPEG1 |
MPEG-1 (уровень 1 и 2) |
0x04 |
0000005-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_MPEG3 |
MPEG-3 (уровень 3) |
0x05 |
00000004-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_MPEG2 |
MPEG-2 (Multichannel) |
0x06 |
0000006-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_AAC |
Расширенный кодирование звука* (MPEG-2/4 AAC в ADTS) |
0x07 |
0000008-00000-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_DTS |
Цифровой театр звук (DTS) |
0x0a |
0000000a-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS |
Dolby Digital Plus |
0x0f |
Не используется. |
Зарезервировано |
Идентификаторы GUI для аудиоформатов, передаваемых в пакетах с высокой скоростью звука, перечислены в следующей таблице.
Тип CEA 861 | SubFormat GUID | Description |
---|---|---|
0x0b |
0000000b-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_DTS_HD |
DTS-HD (24-разрядная, 95 КГц) |
0x0c |
000000c-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_MLP |
MAT(MLP)- Меридиан без потери упаковки (Dolby Digital True HD - 24-разрядная 196KГц/до 18 МЛН б/с, 8 каналов) |
0x0e |
00000164-0000-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_WMA_PRO |
Windows Media Audio (WMA) Pro |
Идентификаторы GUID для сжатых звуковых форматов, которые могут быть реализованы сторонними решениями, перечислены в следующей таблице.
Тип CEA 861 | SubFormat GUID | Description |
---|---|---|
0x08 |
0000008-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_ATRAC |
Адаптивное преобразование акустического кода (ATRAC) |
0x09 |
00000009-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_ONE_BIT_AUDIO |
Одноуровневый звук |
0x0d |
0000000d-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_DST |
Прямой потоковой транспорт (DST) |
В следующем примере кода показано, как драйвер аудиопорта определяет и инициализирует структуру KSDATARANGE_AUDIO для использования с приемником HDMI с полнофункциональным декодером Dolby Digital Plus. Приемник этого типа поддерживает скорость передачи 44,1 и 48 КГц.
Для частоты выборки 48 КГц драйвер аудиопорта использует следующий код для определения и инициализации структуры KSDATARANGE_AUDIO . В этом коде показаны диапазоны данных, предоставляемые драйвером аудиопорта:
//Define and initialize KSDATARANGE_AUDIO structure
// for use with a sample rate of 48 KHz.
KSDATARANGE_AUDIO drDDPlus48;
drDDPlus48.DataRange.FormatSize = sizeof(KSDATARANGE_AUDIO);
drDDPlus48.DataRange.Flags = 0; // Ignored.
drDDPlus48.DataRange.SampleSize = 0; // Ignored.
drDDPlus48.DataRange.Reserved = 0;
drDDPlus48.DataRange.MajorFormat = KSDATAFORMAT_TYPE_AUDIO;
drDDPlus48.DataRange.SubFormat = KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS;
drDDPlus48.DataRange.Specifier = KSDATAFORMAT_SPECIFIER_WAVEFORMATEX;
drDDPlus48.MaximumChannels = 2
drDDPlus48.MinimumBitsPerSample = 16; // All encoded data is transmitted at
drDDPlus48.MaximumBitsPerSample = 16; // 16 bits over IEC 60958.
drDDPlus48.MinimumSampleFrequency = 192000; // 48 KHz * 4.
drDDPlus48.MaximumSampleFrequency = 192000;
Для частоты выборки 44,1 КГц драйвер аудиопорта использует следующий код для определения и инициализации структуры KSDATARANGE_AUDIO :
//Define and initialize KSDATARANGE_AUDIO structure
// for use with a sample rate of 41.1 KHz.
KSDATARANGE_AUDIO drDDPlus44;
drDDPlus44.DataRange.FormatSize = sizeof(KSDATARANGE_AUDIO);
drDDPlus44.DataRange.Flags = 0 // Ignored.
drDDPlus44.DataRange.SampleSize = 0 // Ignored.
drDDPlus44.DataRange.Reserved = 0;
drDDPlus44.DataRange.MajorFormat = KSDATAFORMAT_TYPE_AUDIO;
drDDPlus44.DataRange.SubFormat = KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS;
drDDPlus44.DataRange.Specifier = KSDATAFORMAT_SPECIFIER_WAVEFORMATEX;
drDDPlus44.MaximumChannels = 2
drDDPlus44.MinimumBitsPerSample = 16; // All encoded data is transmitted at
drDDPlus44.MaximumBitsPerSample = 16; // 16 bits over IEC 60958.
drDDPlus44.MinimumSampleFrequency = 176400; // 44.1 KHz * 4
drDDPlus44.MaximumSampleFrequency = 176400;