Partager via


Décodeur audio Dolby

Le décodeur audio Dolby est une transformation Media Foundation (MFT) qui décode les types de flux suivants :

  • Dolby Digital, également appelé Dolby AC-3
  • Dolby Digital Plus, également appelé Enhanced AC-3 (E-AC-3)

Important

Pour les versions de Windows antérieures à Windows 8, l’implémentation Microsoft de la technologie Dolby Digital est limitée, conformément aux termes du programme de licenceS Dolby Digital, à l’utilisation par les applications Microsoft.

 

Pour plus d’informations sur ces formats, consultez le document ATSC (Digital Audio Compression Standard) (AC-3, E-AC-3) Revision B.

Le décodeur peut également convertir un flux Dolby Digital Plus au format Dolby Digital pour une sortie AC-3 S/PIDF, ou mettre en forme un flux Dolby Digital Plus pour une sortie numérique HDMI.

Identificateur de classe

L’identificateur de classe (CLSID) du décodeur audio Dolby est CLSID_CMSDDPlusDecMFT, défini dans le fichier d’en-tête wmcodecdsp.h.

Types d’entrée

Le décodeur audio Dolby prend en charge les sous-types d’entrée suivants.

Subtype Description En-tête
MEDIASUBTYPE_DOLBY_AC3 Audio Dolby Digital. mfapi.h
MEDIASUBTYPE_DVM Audio Dolby Digital ; consultez Sous-types audio. Ce sous-type peut être utilisé de manière interchangeable avec MEDIASUBTYPE_DOLBY_AC3.
wmcodecdsp.h
MFAudioFormat_Dolby_Digital_Plus Audio Dolby Digital Plus. mfapi.h

 

Le tableau suivant répertorie les attributs obligatoires et facultatifs pour le type de média d’entrée.

Attribut Description Notes
MF_MT_MAJOR_TYPE Type principal. Obligatoire. Doit être MFMediaType_Audio.
MF_MT_SUBTYPE Sous-type audio. Obligatoire. Pour plus d’informations, consultez le tableau précédent.
MF_MT_AUDIO_SAMPLES_PER_SECOND Taux d’échantillonnage, en échantillons par seconde. Optionnel. Les valeurs valides sont : 48000, 44100, 32000, 24000, 22050 et 16000. Si cet attribut n’est pas défini, la valeur par défaut est 48000.
Note: Les flux Dolby AC-3 sont limités aux trois taux les plus élevés de cette liste.
MF_MT_AUDIO_NUM_CHANNELS Nombre de canaux, y compris le canal basse fréquence (LFE), le cas échéant. Optionnel. Les valeurs valides sont comprises entre 1 (mono) et 8 (configuration de canal 7.1). Si cet attribut n’est pas défini, la valeur par défaut est 2 (stéréo).
MF_MT_AUDIO_CHANNEL_MASK Spécifie l’affectation des canaux audio aux positions d’orateur. Optionnel. Si elle est spécifiée, la valeur doit être cohérente avec le nombre de canaux audio. Si l’attribut n’est pas défini, le décodeur utilise un masque de canal par défaut, en fonction du nombre de canaux.

 

Le tableau suivant répertorie les configurations de canal Dolby prises en charge.

Configuration du canal Nombre de canaux Masques de canal
1/0 (mono) 1 0x4 (SPEAKER_FRONT_CENTER)
2/0 (stéréo) ou 1+1 (double mono) 2 0x3 (SPEAKER_FRONT_RIGHT SPEAKER_FRONT_LEFT)
3/0 3 0x7 (SPEAKER_FRONT_CENTERSPEAKER_FRONT_RIGHTSPEAKER_FRONT_LEFT)
2/1 3 0x103 (SPEAKER_BACK_CENTERSPEAKER_FRONT_RIGHTSPEAKER_FRONT_LEFT)
3/1 4 0x107 (SPEAKER_FRONT_LEFTSPEAKER_FRONT_RIGHTSPEAKER_BACK_CENTER SPEAKER_FRONT_CENTER)
2/2 4 0x33 (SPEAKER_FRONT_LEFTSPEAKER_FRONT_RIGHTSPEAKER_BACK_RIGHT SPEAKER_BACK_LEFT)
ou
0x603 (SPEAKER_SIDE_RIGHTSPEAKER_FRONT_RIGHTSPEAKER_FRONT_LEFTSPEAKER_SIDE_LEFT)
3/2 5 0x37 (SPEAKER_FRONT_LEFTSPEAKER_FRONT_RIGHTSPEAKER_FRONT_CENTERSPEAKER_BACK_LEFTSPEAKER_BACK_RIGHT)
ou
0x607 (SPEAKER_SIDE_RIGHT SPEAKER_FRONT_LEFT SPEAKER_FRONT_RIGHTSPEAKER_FRONT_CENTER SPEAKER_SIDE_LEFT)
3/2 + LFE 6 0x3F (SPEAKER_FRONT_LEFTSPEAKER_FRONT_RIGHTSPEAKER_FRONT_CENTERSPEAKER_LOW_FREQUENCY SPEAKER_BACK_RIGHTSPEAKER_BACK_LEFT)
ou
0x60F (SPEAKER_FRONT_LEFTSPEAKER_FRONT_RIGHTSPEAKER_FRONT_CENTERSPEAKER_LOW_FREQUENCY SPEAKER_SIDE_RIGHTSPEAKER_SIDE_LEFT)
3/2/2 + LFE Remarque : Dolby Digital Plus uniquement.
8 0x63F (SPEAKER_FRONT_LEFTSPEAKER_FRONT_RIGHTSPEAKER_FRONT_CENTERSPEAKER_LOW_FREQUENCY SPEAKER_BACK_LEFTSPEAKER_BACK_RIGHTSPEAKER_SIDE_LEFTSPEAKER_SIDE_RIGHT)

 

En outre, les configurations de canal 1/0, 2/0, 3/0, 2/1, 3/1 et 2/2 peuvent également apparaître avec un canal LFE.

Types de sortie

Le décodeur audio Dolby prend en charge les sous-types de sortie suivants.

Subtype Description En-tête
MFAudioFormat_Dolby_AC3_SPDIF Audio Dolby AC-3 mis en forme pour la sortie numérique S/PDIF. mfapi.h
KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS Dolby Digital Plus audio mis en forme pour la sortie numérique HDMI. ksmedia.h
MFAudioFormat_Float Audio PCM à virgule flottante IEEE 32 bits
Windows 10 : stéréo, 5.1, 7.1
Versions précédentes : stéréo, 5.1
mfapi.h
MFAudioFormat_PCM Audio PCM 16 bits
Windows 10 : stéréo, 5.1, 7.1
Versions précédentes : stéréo, 5.1
mfapi.h

 

Le tableau suivant répertorie les attributs obligatoires et facultatifs pour le type de média de sortie.

Attribut Description Notes
MF_MT_MAJOR_TYPE Type principal. Obligatoire. Doit être MFMediaType_Audio.
MF_MT_SUBTYPE Sous-type audio. Obligatoire. Pour plus d’informations, consultez le tableau précédent.
MF_MT_AUDIO_SAMPLES_PER_SECOND Taux d’échantillonnage, en échantillons par seconde. Obligatoire. Les valeurs valides sont : 48000, 44100, 32000, 24000, 22050 et 16000. Le taux d’échantillonnage de sortie doit être identique au taux d’échantillonnage d’entrée. Le décodeur ne peut pas modifier le taux d’échantillonnage du flux.
MF_MT_AUDIO_NUM_CHANNELS Nombre de canaux, y compris le canal basse fréquence (LFE), le cas échéant. Obligatoire pour la sortie PCM.
Non nécessaire pour la sortie numérique.
Si le type d’entrée est mono, stéréo ou double mono (tous sans canal LFE), la seule valeur valide est 2, pour la sortie stéréo. Sinon, la valeur peut être :
  • 2 pour le mixage stéréo
  • 6 pour les configurations de canal 5.1
  • 8 pour les configurations de canal 7.1
MF_MT_AUDIO_CHANNEL_MASK Spécifie l’affectation des canaux audio aux positions d’orateur. Obligatoire pour la sortie PCM si le nombre de canaux est supérieur à 2. La valeur doit être :
  • 0x3 pour la sortie stéréo
  • 0x3F pour la sortie de canal 5.1
  • 0x63F pour la sortie de canal 7.1
Non nécessaire pour la sortie numérique.
MF_MT_AUDIO_BITS_PER_SAMPLE Nombre de bits par exemple audio. Obligatoire pour la sortie PCM. La valeur doit être 32 pour MFAudioFormat_Float et 16 pour MFAudioFormat_PCM.
Non nécessaire pour la sortie numérique.
MF_MT_AUDIO_VALID_BITS_PER_SAMPLE Nombre de bits de données audio valides dans chaque exemple audio. Facultatif pour la sortie PCM. Si elle est définie, la valeur doit être identique à MF_MT_AUDIO_BITS_PER_SAMPLE.
Non nécessaire pour les sous-types de sortie numérique.
MF_MT_AUDIO_BLOCK_ALIGNMENT Alignement des blocs, en octets. Facultatif pour la sortie PCM. Non nécessaire pour la sortie numérique.
MF_MT_AUDIO_AVG_BYTES_PER_SECOND Nombre moyen d’octets par seconde. Facultatif pour la sortie PCM. Non nécessaire pour la sortie numérique.

 

Transformer les attributs

Le décodeur audio Dolby implémente la méthode IMFTransform::GetAttributes . L’application peut utiliser cette méthode pour obtenir ou définir les attributs suivants.

Attribut Description
CODECAPI_AVDecAudioDualMono Spécifie si un flux audio Dolby 2 canaux est encodé en stéréo ou double mono. Avant que la première image Dolby ne soit décodée, la valeur est eAVDecAudioDualMono_UnSpecified. Une fois le décodage commencé, la valeur reflète l’image Dolby la plus récente.
Lecture seule.
CODECAPI_AVDecAudioDualMonoReproMode Spécifie la façon dont le décodeur reproduit l’audio double mono. La valeur par défaut est eAVDecAudioDualMonoReproMode_LEFT_MONO. L’application peut définir cette propriété à tout moment.
En lecture/écriture.
CODECAPI_AVDecCommonMeanBitRate Pour les flux Dolby Digital (AC-3), spécifie le débit binaire du flux d’entrée en bits par seconde. Pour Dolby Digital Plus (E-AC3), la valeur est toujours égale à zéro.
Lecture seule.
CODECAPI_AVDecDDDynamicRangeScaleHigh Coupe de haut niveau lorsque le décodeur effectue un contrôle de plage dynamique.
En lecture/écriture.
CODECAPI_AVDecDDDynamicRangeScaleLow Boost de bas niveau lorsque le décodeur effectue un contrôle de plage dynamique.
En lecture/écriture.
CODECAPI_AVDecDDOperationalMode Mode de contrôle de compression.
En lecture/écriture.
CODECAPI_AVDecDDStereoDownMixMode Type de mélange inférieur stéréo. Cette propriété s’applique lorsque l’entrée est un flux multicanal et que la sortie est un flux stéréo.
En lecture/écriture.
MFT_SUPPORT_DYNAMIC_FORMAT_CHANGE Cet attribut retourne FALSE, indiquant que le décodeur doit être vidé avant qu’un nouveau type d’entrée soit défini.
En lecture/écriture.

 

Notes

Le décodeur accepte uniquement les flux Dolby bruts, tels que définis par A/52B. Les charges utiles telles que les flux élémentaires par paquets (PES) ne sont pas prises en charge. Pour Dolby Digital Plus, le décodeur décode jusqu’à 5.1 canaux. Sur Windows 10, les flux de canaux 7.1 sont décodés sans mixage inférieur. Sur les versions précédentes du système d’exploitation, si le flux est 7.1 canaux, seul le mix inférieur de canal 5.1 sera décodé. Si le flux est Dolby Digital Plus avec plusieurs sous-flux indépendants, seul le sous-flux indépendant 0 est décodé. Le décodeur ignore d’autres sous-flux indépendants. En outre, le décodeur ignore tous les sous-flux dépendants. Le décodeur prend en charge le déchiffrement et le décodage des flux protégés par la technologie DRM (Digital Rights Management).

Si le type de média d’entrée a une configuration de canal autre que mono, stéréo ou double mono (le tout sans canal LFE), le décodeur fournit deux options pour les configurations de canal de sortie :

  • Sortie à 8 canaux (configuration de canal 7.1)
  • Sortie à 6 canaux (configuration de canal 5.1)
  • Mixage stéréo

Si stéréo downmix est sélectionné, le type de downmix peut être défini sur le MFT à l’aide de la propriété CODECAPI_AVDecDDStereoDownMixMode .

Si le type de sortie est MFAudioFormat_Dolby_AC3_SPDIF, chaque mémoire tampon de sortie contient 6 144 octets. La mémoire tampon commence par un en-tête S/PDIF de 8 octets, suivi d’une image AC-3 compressée, suivie d’un remplissage zéro à 6 144 octets.

Si le type de sortie est KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS, chaque mémoire tampon de sortie contient 24 576 octets. La mémoire tampon commence par un en-tête S/PDIF de 8 octets, suivi de 1 à 6 images Dolby Digital Plus compressées correspondant à 1 536 exemples PCM, suivies d’un remplissage nul à 24 576 octets. Pour la sortie HDMI, seul le sous-flux indépendant 0 est emballé.

Le décodeur MFT est inscrit avec l’indicateur MFT_ENUM_FLAG_FIELDOFUSE, ce qui indique que le MFT doit être déverrouillé par l’application avant utilisation. Pour plus d’informations, consultez Restrictions de champ d’utilisation.

Configuration requise

Condition requise Valeur
Client minimal pris en charge
Windows 8 [applications de bureau | Applications UWP]
Serveur minimal pris en charge
Aucun pris en charge
DLL
Msauddecmft.dll

Voir aussi

Objets codec