Структура MPEG1WAVEFORMAT (mmreg.h)
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]
Структура MPEG1WAVEFORMAT
описывает формат аудиоданных MPEG-1.
Синтаксис
typedef struct mpeg1waveformat_tag {
WAVEFORMATEX wfx;
WORD fwHeadLayer;
DWORD dwHeadBitrate;
WORD fwHeadMode;
WORD fwHeadModeExt;
WORD wHeadEmphasis;
WORD fwHeadFlags;
DWORD dwPTSLow;
DWORD dwPTSHigh;
} MPEG1WAVEFORMAT;
Члены
wfx
Структура WAVEFORMATEX, содержащая сведения о звуковом формате. См. заметки.
fwHeadLayer
Задает звуковой слой MPEG, определяемый следующими константами:
Значение | Значение |
---|---|
|
Уровень 1 |
|
Уровень 2 |
|
Уровень 3 |
Некоторые потоки MPEG могут содержать кадры из нескольких слоев. Если да, объедините флаги с побитовой или.
dwHeadBitrate
Задает скорость в битах в секунду. Это значение дает фактическую скорость, а не код заголовка кадра MPEG. Если скорость является переменной или является нестандартной, задайте для этого поля значение 0.
fwHeadMode
Задает режим потоковой передачи, определяемый следующими константами:
Значение | Значение |
---|---|
|
Stereo |
|
Совместная стерео |
|
Двухканальной |
|
Один канал |
Некоторые потоки MPEG могут содержать кадры с разными режимами. Если да, объедините флаги с побитовой или.
fwHeadModeExt
Задает расширение режима для кодировки joint-stereo:
Значение | Код заголовка кадра MPEG | Уровни 1 и 2 | Уровень 3 |
---|---|---|---|
0x01 | '00' | Стерео интенсивности в диапазонах от 4 до 31 | Интенсивность стерео выключения; Посередине/боковой (MS) стерео выключен |
0x02 | '01' | Стерео интенсивности в диапазонах от 8 до 31 | Стерео интенсивности включено; Ms stereo off |
0x04 | '10' | Стерео интенсивности в диапазонах от 12 до 31 | Интенсивность стерео выключения; Включена стереосистема MS |
0x08 | '11' | Стерео интенсивности в диапазонах от 16 до 31 | Интенсивность стерео выключения; Включена стереосистема MS |
Эти значения могут сочетаться с побитовой или. Как правило, кодировщики динамически переключаются между режимами расширения в соответствии с характеристиками сигнала. Поэтому для нормального кодирования стереофонического соединения задайте для этого поля значение 0x0F (побитовое ИЛИ всех флагов). Однако это поле можно использовать, чтобы ограничить кодировщик набором допустимых типов кодирования.
Это поле применяется только в том случае, если fwHeadMode включает ACM_MPEG_JOINTSTEREO. Для других режимов задайте для этого поля нулевое значение.
wHeadEmphasis
Задает де-выделение, необходимое декодеру:
Значение | Заголовок кадра MPEG | Требуется отмена выделения в коде |
---|---|---|
1 | '00' | None |
2 | '01' | Выделение 50/15 мс |
3 | '10' | Зарезервировано |
4 | '11' | CCITT J.17 |
fwHeadFlags
Задает побитовое сочетание нулевых или нескольких следующих флагов:
Кодировщик будет использовать эти флаги для задания соответствующих битов в заголовках аудиокадров MPEG.
dwPTSLow
Указывает наименее значимые 32 бита метки времени представления (PTS) первого кадра звукового потока.
dwPTSHigh
Указывает наиболее значимый бит PTS. Поля dwPTSLow и dwPTSHigh можно рассматривать как одно 64-разрядное значение.
Комментарии
Для звука MPEG-1 структура WAVEFORMATEX , определенная в элементе wfx , должна иметь следующие значения.
Элемент WAVEFORMATEX | Описание |
---|---|
wFormatTag | Должен быть WAVE_FORMAT_MPEG |
nChannels | 1 для моно, 2 для стерео |
nSamplesPerSec | Указывает частоту выборки, если частота выборки фиксированная. Если это переменная, задайте для этого поля нулевое значение. |
nAvgBytesPerSec | Задает среднюю скорость передачи данных. Если кодировка переменной скорости используется на уровне 3, это значение может не быть допустимой скоростью MPEG-1. |
nBlockAlign | Для аудиопотоков с фиксированной длиной звуковой рамки это поле указывает длину звукового кадра. Если длина кадра переменная, задайте для этого поля значение 1. Если частота выборки равна 32 кГц или 48 кГц и скорость передачи является постоянной, размер звукового кадра является постоянным. В этом случае вычислите nBlockAlign следующим образом:
|
wBitsPerSample | Не используется; Значение равно нулю. |
cbSize | Задает размер данных формата после структуры WAVEFORMATEX в байтах. Для стандартной структуры MPEG1WAVEFORMAT это значение равно 22 байтам. |
Требования
Верхняя часть | mmreg.h |