Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Заголовочный файл Mmreg.h задает значение 0x0164 как тег формата WMA Pro-over-S/PDIF.
#define WAVE_FORMAT_WMASPDIF 0x0164
Соответствующий GUID подтипа формата можно указать в виде тега формата WAV с помощью макроса DEFINE_WAVEFORMATEX_GUID из файла заголовка Ksmedia.h следующим образом:
#define KSDATAFORMAT_SUBTYPE_WMA_SPDIF \
DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_WMASPDIF)
В следующем примере кода показано, как драйвер miniport WaveCyclic или WavePci может указывать записи таблицы KSDATARANGE_AUDIO для пин-кода, поддерживающего форматы WMA Pro-over-S/PDIF и AC-3-over-S/PDIF:
static KSDATARANGE_AUDIO PinDataRangesSpdifOut[] =
{
// 48-kHz WMA Pro over S/PDIF
{
{
sizeof(KSDATARANGE_AUDIO),
0,
0,
0,
STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
STATICGUIDOF(KSDATAFORMAT_SUBTYPE_WMA_SPDIF),
STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
},
2, // Max number of channels
16, // Minimum number of bits per sample
16, // Maximum number of bits per channel
48000, // Minimum rate
48000 // Maximum rate
},
// 44.1-kHz WMA Pro over S/PDIF
{
{
sizeof(KSDATARANGE_AUDIO),
0,
0,
0,
STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
STATICGUIDOF(KSDATAFORMAT_SUBTYPE_WMA_SPDIF),
STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
},
2, // Max number of channels
16, // Minimum number of bits per sample
16, // Maximum number of bits per channel
44100, // Minimum rate
44100 // Maximum rate
},
// 48-kHz AC-3 over S/PDIF
{
{
sizeof(KSDATARANGE_AUDIO),
0,
0,
0,
STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
STATICGUIDOF(KSDATAFORMAT_SUBTYPE_AC3_SPDIF),
STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
},
2, // Max number of channels
16, // Minimum number of bits per sample
16, // Maximum number of bits per channel
48000, // Minimum rate
48000 // Maximum rate
},
};
В этом примере кода диапазоны данных первого и второго указывают форматы данных WMA Pro-over-S/PDIF с частотой выборки 48 кГц и 44,1 кГц. С этими двумя параметрами звуковое приложение может воспроизводить аудиопоток WMA Pro, записанный по любой из этих двух частот выборки, предполагая, что внешний декодировщик также может обрабатывать частоту выборки.
Размер кадра синхронизации WMA Pro одинаков для 48 кГц и 44,1 кГц, и оба диапазона данных используют одни и те же значения параметров PCM — два канала и 16 бит для каждого канала. Сведения об использовании параметров PCM для указания диапазонов данных для форматов WMA Pro-over-S/PDIF и AC-3-over-S/PDIF см. в S/PDIF Pass-Through передачи потоков, отличных от PCM,.
Третий диапазон данных определяет формат данных AC-3-over-S/PDIF. Дополнительные сведения см. в разделе Указание диапазонов данных AC-3.
Предыдущий пример не позволяет DirectSound управлять форматами вне-PCM WMA Pro-over-S/PDIF и AC-3-over-S/PDIF в Microsoft Windows 2000 с пакетом обновления 2 (SP2) и Windows 98 SE + пакет исправлений. Чтобы включить эту возможность, пример кода необходимо изменить таким образом, чтобы для каждого из трех диапазонов данных, использующих KSDATAFORMAT_SPECIFIER_WAVEFORMATEX описателя, необходимо включить второй диапазон данных, который идентичен, за исключением того, что вместо него используется описатель KSDATAFORMAT_SPECIFIER_DSOUND. Пример см. в разделе Указание диапазонов данных AC-3.