Декодер dolby Audio
Декодер звука Dolby — это преобразование Media Foundation (MFT), которое декодирует следующие типы потоков:
- Dolby Digital, также называемый Dolby AC-3
- Dolby Digital Plus, также называемый расширенным AC-3 (E-AC-3)
Важно!
Для версий Windows, предшествующих Windows 8, реализация майкрософт технологии Dolby Digital ограничена условиями программы лицензирования Dolby Digital для использования приложениями Майкрософт.
Дополнительные сведения об этих форматах см. в документе Advanced Television Systems Committee (ATSC) Digital Audio Compression Standard (AC-3, E-AC-3) Revision B.
Декодер также может преобразовать поток Dolby Digital Plus в формат Dolby Digital для вывода S/PIDF AC-3 или отформатировать поток Dolby Digital Plus для цифрового вывода HDMI.
Идентификатор класса
Идентификатор класса (CLSID) декодера звука Dolby CLSID_CMSDDPlusDecMFT, определенный в файле заголовка wmcodecdsp.h.
Типы входных данных
Декодер звука Dolby поддерживает следующие входные подтипы.
Subtype | Описание | Header |
---|---|---|
MEDIASUBTYPE_DOLBY_AC3 | Звук Dolby Digital. | mfapi.h |
MEDIASUBTYPE_DVM | Звук Dolby Digital; См. раздел Подтипы аудио. Этот подтип можно использовать взаимозаменяемо с MEDIASUBTYPE_DOLBY_AC3. |
wmcodecdsp.h |
MFAudioFormat_Dolby_Digital_Plus | Звук Dolby Digital Plus. | mfapi.h |
В следующей таблице перечислены обязательные и необязательные атрибуты для типа входного носителя.
attribute | Описание | Remarks |
---|---|---|
MF_MT_MAJOR_TYPE | Основной тип. | Обязательный. Должен быть MFMediaType_Audio. |
MF_MT_SUBTYPE | Подтип аудио. | Обязательный. Дополнительные сведения см. в предыдущей таблице. |
MF_MT_AUDIO_SAMPLES_PER_SECOND | Частота выборки в выборках в секунду. | Необязательный элемент. Допустимые значения: 48000, 44100, 32000, 24000, 22050 и 16000. Если этот атрибут не задан, значение по умолчанию — 48000. Примечание: Потоки Dolby AC-3 ограничены тремя самыми высокими скоростями в этом списке. |
MF_MT_AUDIO_NUM_CHANNELS | Количество каналов, включая канал низкой частоты (LFE), если он имеется. | Необязательный элемент. Допустимые значения находятся в диапазоне от 1 (mono) до 8 (конфигурация канала 7.1). Если этот атрибут не задан, значение по умолчанию — 2 (стерео). |
MF_MT_AUDIO_CHANNEL_MASK | Указывает назначение звуковых каналов позициям говорящего. | Необязательный элемент. Если этот параметр задан, значение должно соответствовать количеству аудиоканалов. Если атрибут не задан, декодер использует маску канала по умолчанию в зависимости от количества каналов. |
В следующей таблице перечислены поддерживаемые конфигурации каналов Dolby.
Конфигурация канала | Количество каналов | Маски каналов |
---|---|---|
1/0 (моно) | 1 | 0x4 (SPEAKER_FRONT_CENTER) |
2/0 (стерео) или 1+1 (двойной моно) | 2 | 0x3 (SPEAKER_FRONT_RIGHT SPEAKER_FRONT_LEFT) |
3/0 | 3 | 0x7 (SPEAKER_FRONT_LEFTSPEAKER_FRONT_RIGHTSPEAKER_FRONT_CENTER) |
2/1 | 3 | 0x103 (SPEAKER_BACK_CENTER SPEAKER_FRONT_LEFTSPEAKER_FRONT_RIGHT) |
3/1 | 4 | 0x107 (SPEAKER_BACK_CENTERSPEAKER_FRONT_CENTER SPEAKER_FRONT_LEFT SPEAKER_FRONT_RIGHT) |
2/2 | 4 | 0x33 (SPEAKER_BACK_RIGHT SPEAKER_BACK_LEFTSPEAKER_FRONT_LEFT SPEAKER_FRONT_RIGHT) или 0x603 (SPEAKER_FRONT_LEFTSPEAKER_FRONT_RIGHTSPEAKER_SIDE_LEFTSPEAKER_SIDE_RIGHT) |
3/2 | 5 | 0x37 (SPEAKER_FRONT_LEFTSPEAKER_FRONT_RIGHTSPEAKER_FRONT_CENTERSPEAKER_BACK_RIGHT SPEAKER_BACK_LEFT) или 0x607 (SPEAKER_FRONT_LEFTSPEAKER_FRONT_RIGHTSPEAKER_FRONT_CENTERSPEAKER_SIDE_LEFTSPEAKER_SIDE_RIGHT) |
3/2 + LFE | 6 | 0x3F (SPEAKER_FRONT_LEFTSPEAKER_FRONT_RIGHTSPEAKER_FRONT_CENTERSPEAKER_LOW_FREQUENCYSPEAKER_BACK_LEFTSPEAKER_BACK_RIGHT) или 0x60F (SPEAKER_FRONT_LEFTSPEAKER_FRONT_RIGHTSPEAKER_FRONT_CENTERSPEAKER_LOW_FREQUENCYSPEAKER_SIDE_LEFTSPEAKER_SIDE_RIGHT) |
3/2/2 + LFE Примечание. Только Dolby Digital Plus. |
8 | 0x63F (SPEAKER_FRONT_LEFTSPEAKER_FRONT_RIGHTSPEAKER_FRONT_CENTERSPEAKER_LOW_FREQUENCYSPEAKER_BACK_LEFTSPEAKER_BACK_RIGHT SPEAKER_SIDE_LEFTSPEAKER_SIDE_RIGHT) |
Кроме того, с каналом LFE также могут отображаться конфигурации каналов 1/0, 2/0, 2/1, 3/1 и 2/2.
Типы вывода
Декодер звука Dolby поддерживает следующие выходные подтипы.
Subtype | Описание | Header |
---|---|---|
MFAudioFormat_Dolby_AC3_SPDIF | Звук Dolby AC-3, отформатированный для цифровых выходных данных S/PDIF. | mfapi.h |
KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS | Звук Dolby Digital Plus, отформатированный для цифрового вывода HDMI. | ksmedia.h |
MFAudioFormat_Float | 32-разрядный звук IEEE с плавающей запятой PCM Windows 10: стерео, 5.1, 7.1 Предыдущие версии: stereo, 5.1 |
mfapi.h |
MFAudioFormat_PCM | 16-разрядный звук PCM Windows 10: стерео, 5.1, 7.1 Предыдущие версии: stereo, 5.1 |
mfapi.h |
В следующей таблице перечислены обязательные и необязательные атрибуты для выходного типа носителя.
attribute | Описание | Remarks |
---|---|---|
MF_MT_MAJOR_TYPE | Основной тип. | Обязательный. Должен быть MFMediaType_Audio. |
MF_MT_SUBTYPE | Подтип звука. | Обязательный. Дополнительные сведения см. в предыдущей таблице. |
MF_MT_AUDIO_SAMPLES_PER_SECOND | Частота выборки в выборках в секунду. | Обязательный. Допустимые значения: 48000, 44100, 32000, 24000, 22050 и 16000. Частота выборки выходных данных должна быть идентична входной частоте выборки. Декодер не может изменить частоту выборки потока. |
MF_MT_AUDIO_NUM_CHANNELS | Количество каналов, включая низкочастотный канал (LFE), если он имеется. | Требуется для вывода PCM. Не требуется для цифрового вывода. Если тип входных данных — mono, stereo или dual-mono (без канала LFE), то для стереовыходов допустимое значение равно 2. В противном случае значение может быть следующим:
|
MF_MT_AUDIO_CHANNEL_MASK | Задает назначение звуковых каналов позициям говорящего. | Требуется для вывода PCM, если число каналов больше 2. Значение должно быть следующим:
|
MF_MT_AUDIO_BITS_PER_SAMPLE | Количество битов на выборку звука. | Требуется для вывода PCM. Значение должно быть равно 32 для MFAudioFormat_Float и 16 для MFAudioFormat_PCM. Не требуется для цифрового вывода. |
MF_MT_AUDIO_VALID_BITS_PER_SAMPLE | Количество допустимых битов звуковых данных в каждом образце звука. | Необязательно для выходных данных PCM. Если задано значение , значение должно быть идентично значению MF_MT_AUDIO_BITS_PER_SAMPLE. Не требуется для подтипов цифровых выходных данных. |
MF_MT_AUDIO_BLOCK_ALIGNMENT | Выравнивание блока в байтах. | Необязательно для выходных данных PCM. Не требуется для цифрового вывода. |
MF_MT_AUDIO_AVG_BYTES_PER_SECOND | Среднее число байтов в секунду. | Необязательно для выходных данных PCM. Не требуется для цифрового вывода. |
Атрибуты преобразования
Декодер звука Dolby реализует метод IMFTransform::GetAttributes . Приложение может использовать этот метод для получения или задания следующих атрибутов.
attribute | Описание |
---|---|
CODECAPI_AVDecAudioDualMono | Указывает, кодируется ли 2-канальный аудиопоток Dolby как стерео или двойной моно. Перед декодированием первого кадра Dolby значение eAVDecAudioDualMono_UnSpecified. После начала декодирования значение отражает последний кадр Dolby. Только для чтения. |
CODECAPI_AVDecAudioDualMonoReproMode | Указывает, как декодер воспроизводит звук с двумя монофонами. Значение по умолчанию — eAVDecAudioDualMonoReproMode_LEFT_MONO. Приложение может задать это свойство в любое время. Read/write. |
CODECAPI_AVDecCommonMeanBitRate | Для потоков Dolby Digital (AC-3) указывает скорость входного потока в битах в секунду. Для Dolby Digital Plus (E-AC3) значение всегда равно нулю. Только для чтения. |
CODECAPI_AVDecDDDynamicRangeScaleHigh | Высокоуровневый обрез, когда декодер выполняет динамическое управление диапазоном. Read/write. |
CODECAPI_AVDecDDDynamicRangeScaleLow | Низкоуровневый импульс, когда декодер выполняет динамическое управление диапазоном. Read/write. |
CODECAPI_AVDecDDOperationalMode | Режим управления сжатием. Read/write. |
CODECAPI_AVDecDDStereoDownMixMode | Тип стерео downmix. Это свойство применяется, если входные данные являются многоканальным потоком, а выходные данные — стереопотоком. Read/write. |
MFT_SUPPORT_DYNAMIC_FORMAT_CHANGE | Этот атрибут возвращает значение FALSE, указывающее, что декодер должен быть осушен, прежде чем будет задан новый тип входных данных. Read/write. |
Комментарии
Декодер принимает только необработанные потоки Dolby, как определено в A/52B. Полезные данные, такие как пакетные элементарные потоки (PES), не поддерживаются. Для Dolby Digital Plus декодер декодирует до 5,1 каналов. В Windows 10 потоки каналов версии 7.1 декодируются без downmix. В предыдущих версиях ОС, если поток является каналом 7.1, декодируется только 5.1-канал downmix. Если поток — Dolby Digital Plus с несколькими независимыми подпотоками, декодируется только независимый подпоток 0. Декодер пропускает другие независимые подпотоки. Кроме того, декодер пропускает все зависимые подпотоки. Декодер поддерживает расшифровку и декодирование потоков, защищенных технологией управления цифровыми правами (DRM).
Если тип входного носителя имеет конфигурацию канала, отличной от mono, stereo или dual-mono (все без канала LFE), декодер предоставляет два варианта для конфигураций выходного канала:
- 8-канальный выход (конфигурация канала 7.1)
- 6-канальный вывод (конфигурация канала 5.1)
- Стерео downmix
Если выбран стерео downmix, тип downmix можно задать в MFT с помощью свойства CODECAPI_AVDecDDStereoDownMixMode .
Если тип вывода MFAudioFormat_Dolby_AC3_SPDIF, каждый выходной буфер содержит 6144 байта. Буфер начинается с 8-байтового заголовка S/PDIF, за которым следует сжатый кадр AC-3, за которым следует нулевое заполнение до 6144 байт.
Если тип вывода KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS, каждый выходной буфер содержит 24 576 байт. Буфер начинается с 8-байтового заголовка S/PDIF, за которым следуют 1–6 сжатых кадров Dolby Digital Plus, соответствующих 1536 образцам PCM, за которым следует ноль заполнение до 24 576 байт. Для выходных данных HDMI упаковывается только независимый подпоток 0.
Декодер MFT регистрируется с помощью флага MFT_ENUM_FLAG_FIELDOFUSE, который указывает, что MFT, который должен быть разблокирован приложением перед использованием. Дополнительные сведения см. в разделе Ограничения поля использования.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 8 [классические приложения | Приложения UWP] |
Минимальная версия сервера |
Ни одна версия не поддерживается |
DLL |
|
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по