Декодер 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. В противном случае значение может быть следующим:
  • 2 для стерео downmix
  • 6 для конфигураций каналов 5.1
  • 8 для конфигураций каналов версии 7.1
MF_MT_AUDIO_CHANNEL_MASK Задает назначение звуковых каналов позициям говорящего. Требуется для вывода PCM, если число каналов больше 2. Значение должно быть следующим:
  • 0x3 для стереовыходов
  • 0x3F для выходных данных канала 5.1
  • 0x63F для вывода канала 7.1
Не требуется для цифрового вывода.
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
Msauddecmft.dll

См. также раздел

Объекты кодека