Compartir a través de


Descodificador de audio Dolby

El descodificador de audio Dolby es una transformación de Media Foundation (MFT) que descodifica los siguientes tipos de secuencia:

  • Dolby Digital, también llamado Dolby AC-3
  • Dolby Digital Plus, también llamado Enhanced AC-3 (E-AC-3)

Importante

En el caso de las versiones de Windows anteriores a Windows 8, la implementación de Microsoft de la tecnología Dolby Digital está restringida en términos del programa de licencias Dolby Digital para que lo usen las aplicaciones de Microsoft.

 

Para obtener más información sobre estos formatos, consulte el documento Advanced Television Systems Committee (ATSC) Digital Audio Compression Standard (AC-3, E-AC-3) Revision B.

El descodificador también puede convertir una transmisión Dolby Digital Plus al formato Dolby Digital para la salida AC-3 S/PIDF, o dar formato a una secuencia Dolby Digital Plus para la salida digital HDMI.

Identificador de clase

El identificador de clase (CLSID) del descodificador de audio Dolby se CLSID_CMSDDPlusDecMFT, definido en el archivo de encabezado wmcodecdsp.h.

Tipos de entrada

El descodificador de audio Dolby admite los siguientes subtipos de entrada.

Subtype Descripción Encabezado
MEDIASUBTYPE_DOLBY_AC3 Audio Dolby Digital. mfapi.h
MEDIASUBTYPE_DVM Audio Dolby Digital; consulte Subtipos de audio. Este subtipo se puede usar indistintamente con MEDIASUBTYPE_DOLBY_AC3.
wmcodecdsp.h
MFAudioFormat_Dolby_Digital_Plus Audio Dolby Digital Plus. mfapi.h

 

En la tabla siguiente se enumeran los atributos necesarios y opcionales para el tipo de medio de entrada.

Atributo Descripción Observaciones
MF_MT_MAJOR_TYPE Tipo principal. Necesario. Debe ser MFMediaType_Audio.
MF_MT_SUBTYPE Subtipo de audio. Necesario. Consulte la tabla anterior para obtener más información.
MF_MT_AUDIO_SAMPLES_PER_SECOND Frecuencia de muestreo, en muestras por segundo. Opcional. Los valores válidos son: 48000, 44100, 32000, 24000, 22050 y 16000. Si no se establece este atributo, el valor predeterminado es 48000.
Nota: Las secuencias Dolby AC-3 están limitadas a las tres velocidades más altas de esta lista.
MF_MT_AUDIO_NUM_CHANNELS Número de canales, incluido el canal de baja frecuencia (LFE), si está presente. Opcional. Los valores válidos están en el intervalo 1 (mono) a 8 (configuración del canal 7.1). Si no se establece este atributo, el valor predeterminado es 2 (estéreo).
MF_MT_AUDIO_CHANNEL_MASK Especifica la asignación de canales de audio a las posiciones del altavoz. Opcional. Si se especifica, el valor debe ser coherente con el número de canales de audio. Si no se establece el atributo, el descodificador usa una máscara de canal predeterminada, en función del número de canales.

 

En la tabla siguiente se enumeran las configuraciones de canal Dolby admitidas.

Configuración del canal Número de canales Máscaras de canal
1/0 (mono) 1 0x4 (SPEAKER_FRONT_CENTER)
2/0 (estéreo) o 1+1 (mono dual) 2 0x3 (SPEAKER_FRONT_RIGHT de SPEAKER_FRONT_LEFT)
3/0 3 0x7 (SPEAKER_FRONT_RIGHT de SPEAKER_FRONT_LEFTSPEAKER_FRONT_CENTER SPEAKER_FRONT_RIGHT)
2/1 3 0x103 (SPEAKER_BACK_CENTERSPEAKER_FRONT_LEFT SPEAKER_FRONT_RIGHT)
3/1 4 0x107 (SPEAKER_FRONT_LEFTSPEAKER_FRONT_RIGHTSPEAKER_FRONT_CENTER SPEAKER_BACK_CENTER)
2/2 4 0x33 (SPEAKER_FRONT_LEFTSPEAKER_FRONT_RIGHTSPEAKER_BACK_LEFT SPEAKER_BACK_RIGHT)
o
0x603 (SPEAKER_FRONT_LEFTSPEAKER_FRONT_RIGHTSPEAKER_SIDE_LEFT SPEAKER_SIDE_RIGHT)
3/2 5 0x37 (SPEAKER_FRONT_RIGHTSPEAKER_FRONT_CENTER SPEAKER_FRONT_RIGHT SPEAKER_BACK_LEFTSPEAKER_BACK_RIGHT de SPEAKER_FRONT_LEFT)
o
0x607 (SPEAKER_FRONT_LEFTSPEAKER_FRONT_RIGHT SPEAKER_FRONT_CENTERSPEAKER_SIDE_LEFT SPEAKER_SIDE_RIGHT)
3/2 + LFE 6 0x3F (SPEAKER_FRONT_LEFTSPEAKER_FRONT_RIGHT SPEAKER_FRONT_CENTERSPEAKER_LOW_FREQUENCYSPEAKER_BACK_LEFT SPEAKER_BACK_RIGHT)
o
0x60F (SPEAKER_FRONT_LEFTSPEAKER_FRONT_RIGHTSPEAKER_FRONT_CENTERSPEAKER_LOW_FREQUENCYSPEAKER_SIDE_RIGHTSPEAKER_SIDE_LEFT)
2/3/2 + LFE Nota: Dolby Digital Plus solo.
8 0x63F (SPEAKER_FRONT_LEFTSPEAKER_FRONT_RIGHT SPEAKER_FRONT_CENTERSPEAKER_LOW_FREQUENCYSPEAKER_BACK_LEFT SPEAKER_BACK_RIGHT SPEAKER_SIDE_LEFT SPEAKER_SIDE_RIGHT)

 

Además, las configuraciones de canal 1/0, 2/0, 3/0, 2/1, 3/1 y 2/2 también pueden aparecer con un canal LFE.

Tipos de salida

El descodificador de audio Dolby admite los siguientes subtipos de salida.

Subtype Descripción Encabezado
MFAudioFormat_Dolby_AC3_SPDIF Audio Dolby AC-3 con formato de salida digital S/PDIF. mfapi.h
KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS Audio Dolby Digital Plus con formato para la salida digital HDMI. ksmedia.h
MFAudioFormat_Float Audio PCM de punto flotante IEEE de 32 bits
Windows 10: estéreo, 5.1, 7.1
Versiones anteriores: estéreo, 5.1
mfapi.h
MFAudioFormat_PCM Audio PCM de 16 bits
Windows 10: estéreo, 5.1, 7.1
Versiones anteriores: estéreo, 5.1
mfapi.h

 

En la tabla siguiente se enumeran los atributos obligatorios y opcionales para el tipo de medio de salida.

Atributo Descripción Observaciones
MF_MT_MAJOR_TYPE Tipo principal. Necesario. Debe ser MFMediaType_Audio.
MF_MT_SUBTYPE Subtipo de audio. Necesario. Consulte la tabla anterior para obtener más información.
MF_MT_AUDIO_SAMPLES_PER_SECOND Frecuencia de muestreo, en muestras por segundo. Necesario. Los valores válidos son: 48000, 44100, 32000, 24000, 22050 y 16000. La frecuencia de muestreo de salida debe ser idéntica a la frecuencia de muestreo de entrada. El descodificador no puede cambiar la frecuencia de muestreo de la secuencia.
MF_MT_AUDIO_NUM_CHANNELS Número de canales, incluido el canal de baja frecuencia (LFE), si está presente. Obligatorio para la salida de PCM.
No es necesario para la salida digital.
Si el tipo de entrada es mono, estéreo o dual-mono (todo sin canal LFE), el único valor válido es 2, para la salida estéreo. De lo contrario, el valor puede ser:
  • 2 para la mezcla vertical estéreo
  • 6 para configuraciones de canal 5.1
  • 8 para configuraciones de canal 7.1
MF_MT_AUDIO_CHANNEL_MASK Especifica la asignación de canales de audio a las posiciones del altavoz. Necesario para la salida de PCM si el número de canales es mayor que 2. El valor debe ser:
  • 0x3 para la salida estéreo
  • 0x3F para la salida del canal 5.1
  • 0x63F para la salida del canal 7.1
No es necesario para la salida digital.
MF_MT_AUDIO_BITS_PER_SAMPLE Número de bits por muestra de audio. Obligatorio para la salida de PCM. El valor debe ser 32 para MFAudioFormat_Float y 16 para MFAudioFormat_PCM.
No es necesario para la salida digital.
MF_MT_AUDIO_VALID_BITS_PER_SAMPLE Número de bits válidos de datos de audio en cada muestra de audio. Opcional para la salida de PCM. Si se establece, el valor debe ser idéntico a MF_MT_AUDIO_BITS_PER_SAMPLE.
No es necesario para los subtipos de salida digital.
MF_MT_AUDIO_BLOCK_ALIGNMENT Alineación de bloques, en bytes. Opcional para la salida de PCM. No es necesario para la salida digital.
MF_MT_AUDIO_AVG_BYTES_PER_SECOND Número medio de bytes por segundo. Opcional para la salida de PCM. No es necesario para la salida digital.

 

Transformar atributos

El descodificador de audio Dolby implementa el método IMFTransform::GetAttributes . La aplicación puede usar este método para obtener o establecer los siguientes atributos.

Atributo Descripción
CODECAPI_AVDecAudioDualMono Especifica si una secuencia de audio Dolby de 2 canales está codificada como estéreo o dual-mono. Antes de descodificar el primer fotograma Dolby, el valor es eAVDecAudioDualMono_UnSpecified. Después de comenzar la descodificación, el valor refleja el fotograma Dolby más reciente.
Solo lectura.
CODECAPI_AVDecAudioDualMonoReproMode Especifica cómo el descodificador reproduce audio dual mono. El valor predeterminado es eAVDecAudioDualMonoReproMode_LEFT_MONO. La aplicación puede establecer esta propiedad en cualquier momento.
Lectura/escritura
CODECAPI_AVDecCommonMeanBitRate Para las secuencias Dolby Digital (AC-3), especifica la velocidad de bits de la secuencia de entrada en bits por segundo. Para Dolby Digital Plus (E-AC3), el valor siempre es cero.
Solo lectura.
CODECAPI_AVDecDDDynamicRangeScaleHigh Corte de alto nivel cuando el descodificador realiza el control de intervalo dinámico.
Lectura/escritura
CODECAPI_AVDecDDDynamicRangeScaleLow Potenciación de bajo nivel cuando el descodificador realiza el control de intervalo dinámico.
Lectura/escritura
CODECAPI_AVDecDDOperationalMode Modo de control de compresión.
Lectura/escritura
CODECAPI_AVDecDDStereoDownMixMode Tipo de mezcla vertical estéreo. Esta propiedad se aplica cuando la entrada es una secuencia multicanal y la salida es una secuencia estéreo.
Lectura/escritura
MFT_SUPPORT_DYNAMIC_FORMAT_CHANGE Este atributo devuelve FALSE, lo que indica que el descodificador debe purgarse antes de establecer un nuevo tipo de entrada.
Lectura/escritura

 

Comentarios

El descodificador solo acepta secuencias Dolby sin formato, tal y como se define en A/52B. No se admiten cargas como flujos elementales paqueteizados (PES). Para Dolby Digital Plus, el descodificador descodifica hasta 5.1 canales. En Windows 10, las secuencias de canal 7.1 se descodifican sin mezcla vertical. En versiones anteriores del sistema operativo, si la secuencia es 7.1 canales, solo se descodificará la mezcla de canal 5.1. Si la secuencia es Dolby Digital Plus con más de una substream independiente, solo se descodifica la substream independiente 0. El descodificador omite otras substreams independientes. Además, el descodificador omite todas las substreams dependientes. El descodificador admite el descifrado y la descodificación de secuencias protegidas por la tecnología de Digital Rights Management (DRM).

Si el tipo de medio de entrada tiene una configuración de canal distinta de mono, estéreo o dual-mono (todo sin canal LFE), el descodificador proporciona dos opciones para las configuraciones del canal de salida:

  • Salida de 8 canales (configuración de canal 7.1)
  • Salida de 6 canales (configuración de canal 5.1)
  • Mezcla de bajada estéreo

Si se selecciona la mezcla vertical estéreo, el tipo de mezcla vertical se puede establecer en el MFT mediante la propiedad CODECAPI_AVDecDDStereoDownMixMode .

Si el tipo de salida es MFAudioFormat_Dolby_AC3_SPDIF, cada búfer de salida contiene 6144 bytes. El búfer comienza con un encabezado S/PDIF de 8 bytes, seguido de un marco AC-3 comprimido, seguido de relleno cero a 6144 bytes.

Si el tipo de salida es KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS, cada búfer de salida contiene 24 576 bytes. El búfer comienza con un encabezado S/PDIF de 8 bytes, seguido de 1–6 fotogramas comprimidos Dolby Digital Plus correspondientes a 1536 muestras de PCM, seguido de relleno cero a 24 576 bytes. En el caso de la salida HDMI, solo se empaqueta la substream 0 independiente.

El descodificador MFT se registra con la marca MFT_ENUM_FLAG_FIELDOFUSE, lo que indica que la aplicación debe desbloquear la MFT antes de su uso. Para obtener más información, vea Campo de restricciones de uso.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows 8 [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible
No se admite ninguno
Archivo DLL
Msauddecmft.dll

Consulte también

Objetos de códec