Décodeur AAC

Le décodeur Microsoft Media Foundation AAC est une Media Foundation transformation qui décode les profils de codage audio avancé (AAC) et d’efficacité élevée (HE-AAC) suivants :

  • Profil LC (Multichannel) MPEG-2 AAC
  • MPEG-4 HE-AAC v1 (Multichannel) avec le cœur AAC-LC.
  • MPEG-4 HE-AAC V2 (stéréo) avec le cœur AAC-LC.

Le décodeur AAC prend en charge les flux AAC bruts sans en-tête ni AAC dans un flux de transport de données audio (ADTS).

à partir de Windows 8, le décodeur AAC prend également en charge le décodage des flux de transport audio MPEG-4 avec une couche multiplex (LATM) et une couche de synchronisation (garantie). Il peut également convertir un flux LATM/garantie en ADTS.

Identificateur de classe

L’identificateur de classe (CLSID) de l’encodeur AAC est CLSID _ CMSAACDecMFT, défini dans le fichier d’en-tête wmcodecdsp. h.

Types de médias

Le décodeur AAC prend en charge les types de média suivants.

Types d’entrée

Le décodeur AAC prend en charge les sous-types audio suivants :

Subtype Description En-tête
MFAudioFormat_AAC AAC brut ou ADTS AAC.
Pour ce sous-type, le type de média donne le taux d’échantillonnage et le nombre de canaux avant l’application des outils de réplication en bande spectrale (SBR) et de la stéréo paramétrique (PS), le cas échéant. L’effet de l’outil SBR est de doubler le taux d’échantillonnage décodé par rapport au taux d’échantillonnage AAC-LC de base. L’effet de l’outil PS est de décoder le stéréo à partir d’un flux en AAC-LC Core à canaux mono.
Ce sous-type est équivalent à MEDIASUBTYPE_MPEG_HEAAC, défini dans wmcodecdsp. h. Consultez GUID de sous-type audio.
La source du fichier MPEG-4 et l’analyseur ADTS génèrent ce sous-type.
mfapi. h
MEDIASUBTYPE_RAW_AAC1 AAC brut.
Ce sous-type est utilisé pour l’AAC contenu dans un fichier AVI avec la balise de format audio égale à WAVE_FORMAT_RAW_AAC1 (0x00FF).
Pour ce sous-type, le type de média donne le taux d’échantillonnage et le nombre de canaux après l’application des outils SBR et PS, le cas échéant.
wmcodecdsp. h

Pour configurer le décodeur AAC, définissez les attributs suivants sur le type de média d’entrée.

Attribut Description Notes
MF_MT_MAJOR_TYPE Type principal. Doit être MFMediaType_Audio.
MF_MT_SUBTYPE Sous-type audio. Pour plus d’informations, reportez-vous à la description précédente.
MF_MT_AAC_AUDIO_PROFILE_LEVEL_INDICATION Profil et niveau audio.
facultatif. S’applique uniquement aux MFAudioFormat_AAC.
La valeur de cet attribut est le champ audioProfileLevelIndication , tel que défini par la norme ISO/IEC 14496-3.
S’il est inconnu, défini à zéro ou à 0xFE (« aucun profil audio n’est spécifié »).
MF_MT_AAC_PAYLOAD_TYPE Type de charge utile.
S’applique uniquement aux MFAudioFormat_AAC. Le décodeur prend en charge les types de charge utile suivants :
  • 0 : AAC brut. Le flux contient uniquement des éléments raw_data_block (), comme défini par MPEG-2.
  • 1 : ADTS. Le flux contient un adts_sequence (), tel que défini par MPEG-2. Une seule raw_data_block () par adts_frame () est autorisée.
  • 3 : flux de transport audio avec une couche de synchronisation (garantie) et une couche multiplex (LATM). Parmi les trois types de garantie, seul AudioSyncStream est pris en charge. La couche multiplex est AudioMuxElement, restreinte à un programme audio et une couche.
MF_MT_AAC_PAYLOAD_TYPE est facultatif. Si cet attribut n’est pas spécifié, la valeur par défaut 0 est utilisée, qui spécifie que le flux contient uniquement des éléments raw_data_block.
MF_MT_AUDIO_BITS_PER_SAMPLE Profondeur de bits souhaitée du fichier audio PCM décodé.
MF_MT_AUDIO_CHANNEL_MASK Spécifie l’affectation des canaux audio aux positions des haut-parleurs. Optionnel. Pour plus d’informations, consultez mettre en forme les contraintes.
MF_MT_AUDIO_NUM_CHANNELS Nombre de canaux, y compris le canal à fréquence faible (LFE), le cas échéant.
L’interprétation de cette valeur dépend du sous-type de média, comme décrit précédemment.
MF_MT_AUDIO_SAMPLES_PER_SECOND Taux d’échantillonnage, en échantillons par seconde.
L’interprétation de cette valeur dépend du sous-type de média, comme décrit précédemment.
MF_MT_USER_DATA Informations de mise en forme supplémentaires. La valeur de cet attribut dépend du sous-type.
  • MFAudioFormat_AAC: contient la partie de la structure HEAACWAVEINFO qui apparaît après la structure WAVEFORMATEX (autrement dit, après le membre wfx ). Cela est suivi des données AudioSpecificConfig (), telles que définies par la norme ISO/IEC 14496-3.
  • MEDIASUBTYPE_RAW_AAC1: contient les données AudioSpecificConfig (). Ces données doivent apparaître. dans le cas contraire, le décodeur rejettera le type de média.
La longueur des données AudioSpecificConfig () est de 2 octets pour AAC-LC ou HE-AAC avec signal implicite de SBR/PS. Elle est supérieure à 2 octets pour le HE-AAC avec signalement explicite de SBR/PS.
La valeur de audioObjectType telle que définie dans AudioSpecificConfig () doit être 2, ce qui indique AAC-LC. La valeur de extensionAudioObjectType doit être 5 pour SBR ou 29 pour PS.

Types de sortie

Le décodeur prend en charge les types de sortie suivants :

Subtype Description
MFAudioFormat_Float Audio à virgule flottante IEEE.
MFAudioFormat_PCM audio PCM 16 bits.
MFAudioFormat_AAC Requiert Windows 8.
Ce type de sortie peut être utilisé pour convertir un flux AAC au format garantie/LATM au format ADTS.
Pour convertir un flux garantie/LATM en un flux ADTS, définissez le type d’entrée sur MFAudioFormat_AAC avec le type de charge utile 3 (garantie). Définissez ensuite le type de sortie sur MFAudioFormat_AAC avec le type de charge utile 1 (ADTS). Le décodeur reformatera le conainter sans décoder le flux binaire.
[!Note]
Le décodeur n’inscrit pas MFAudioFormat_AAC comme type de sortie. Toutefois, si l’application définit le type d’entrée comme décrit, la méthode IMFTransform :: GetOutputAvailableType retourne MFAudioFormat_AAC dans la liste des types de sortie disponibles.


Si le flux d’entrée contient plus de deux canaux, le décodeur AAC fournit deux options pour le format de sortie :

  • La même configuration de canal que le type d’entrée.
  • Pliure en stéréo.

Contraintes de format

Le taux d’échantillonnage audio décodé doit être l’un des suivants, après l’application de SBR (le cas échéant) :

  • 8 kHz
  • 11,025 kHz
  • 12 kHz
  • 16 kHz
  • 22,05 kHz
  • 24 kHz
  • 32 kHz
  • 44,1 kHz
  • 48 kHz

Les taux d’échantillonnage supérieurs à 48 kHz ne sont pas pris en charge.

Le décodeur prend en charge jusqu’à 6 canaux audio. Pour chaque configuration de haut-parleur, le décodeur s’attend à ce que les éléments syntaxiques AAC apparaissent dans un certain ordre. Le tableau suivant répertorie les configurations de conférencier prises en charge. La troisième colonne de la table répertorie les éléments syntaxiques attendus et leur ordre, en utilisant la notation suivante :

  • <SCE1 > : le single_channel_element (SCE) associé au haut-parleur central.
  • <SCE2 > : SCE associée au haut-parleur central.
  • <CPE1 > : le channel_pair_element (CPE) associé aux haut-parleurs frontaux.
  • <CPE2 > : CPE associé aux haut-parleurs Back (ou Side)
  • <LFE > : le lfe_channel_element (LFE).

Pour plus d’informations sur ces éléments syntaxiques, reportez-vous à la norme ISO/IEC 13818-7.

Configuration Masque de canal Éléments syntaxiques AAC
Mono SPEAKER_FRONT_CENTER <SCE1>
Stéréo ou double mono SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT <CPE1>
2/1 SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_CENTER <CPE1 > < SCE1>
2/2 SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT <CPE1 > < CPE2>
3/0 SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER <SCE1 > < CPE1>
3/1 SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER | SPEAKER_BACK_CENTER <SCE1 > < CPE1 > < SCE2>
3/2 SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT <SCE1 > < CPE1 > < CPE2>
3/2 + LFE SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT <SCE1 > < CPE1 > < CPE2 > < LFE>

Pour les AAC bruts, chaque exemple d’entrée doit contenir exactement une trame compressée AAC complète.

Pour ADTS, chaque exemple d’entrée peut contenir plusieurs images audio, ainsi que des frames partiels, qui peuvent s’étendre sur des limites d’échantillon. Chaque en-tête ADTS doit être suivi d’une trame AAC.

Le décodeur AAC ne prend pas en charge les éléments suivants :

  • Profil principal, Sample-Rate profil Scalable (SRS) ou profil de prédiction à long terme (LTP).
  • Format d’échange de données audio (ADIF).
  • Flux de transport LATM/LAOS.
  • Couplage des éléments de canal. Le décodeur ignore les images audio avec l’opération.
  • AAC-LC avec une taille d’image 960-Sample. Seuls 1024-les exemples de frames sont pris en charge.

Attributs de transformation

Le décodeur AAC implémente la méthode IMFTransform :: GetAttributes . Les applications peuvent utiliser cette méthode pour récupérer ou définir les attributs suivants.

Attribut Description
CODECAPI_AVDecAudioDualMono Spécifie si le contenu audio à 2 canaux est encodé en stéréo ou en double mono. Traiter en lecture seule.
CODECAPI_AVDecAudioDualMonoReproMode Spécifie comment le décodeur reproduit un double audio mono. La valeur par défaut est eAVDecAudioDualMonoReproMode_LEFT_MONO: sortie CH1 vers les haut-parleurs gauche et droit.
Les applications peuvent définir cette propriété pour modifier le comportement par défaut.
MFT_SUPPORT_DYNAMIC_FORMAT_CHANGE Le décodeur AAC ne gère pas les modifications de format dynamiques et doit être vidé ou vidé avant qu’un nouveau type de média d’entrée soit défini. Traiter cet attribut comme étant en lecture seule.
[!Note]
Le décodeur AAC signale incorrectement la valeur true pour cet attribut.


dans Windows 7, le décodeur signale incorrectement la valeur TRUE pour cet attribut. dans Windows 8, le décodeur signale false, qui est la valeur correcte

Exemples de types de média

Voici un exemple de type de média d’entrée nécessaire pour un flux de 6 canaux, 48-kHz AAC-LC, à l’aide d’une charge AAC brute :

Attribut Valeur
MF_MT_MAJOR_TYPE MFMediaType_Audio
MF_MT_SUBTYPE MFAudioFormat_AAC
MF_MT_AUDIO_SAMPLES_PER_SECOND 48 000
MF_MT_AUDIO_NUM_CHANNELS 6
MF_MT_AAC_PAYLOAD_TYPE 0
MF_MT_USER_DATA {0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0xb0}
MF_MT_AAC_AUDIO_PROFILE_LEVEL_INDICATION 0x2a (facultatif)

Les 12 premiers octets de MF_MT_USER_DATA correspondent aux membres de la structure HEAACWAVEINFO suivants :

  • wPayloadType = 0 (AAC brut)
  • wAudioProfileLevelIndication = 0X2a (profil AAC, niveau 4)
  • wStructType = 0

Les deux derniers octets de MF_MT_USER_DATA contenir la valeur de AudioSpecificConfig (), comme défini par MPEG-4.

  • AudioSpecificConfig. audioObjectType = 2 (AAC LC) (5 bits)
  • AudioSpecificConfig. samplingFrequencyIndex = 3 (4 bits)
  • AudioSpecificConfig. channelConfiguration = 6 (4 bits)
  • GASpecificConfig. frameLengthFlag = 0 (1 bit)
  • GASpecificConfig. dependsOnCoreCoder = 0 (1 bit)
  • GASpecificConfig. extensionFlag = 0 (1 bit)

À partir de ce type d’entrée, utilisez le type de média de sortie suivant pour recevoir le fichier audio PCM à virgule flottante 32 bits à 6 canaux du décodeur :

Attribut Valeur
MF_MT_MAJOR_TYPE MFMediaType_Audio
MF_MT_SUBTYPE MFAudioFormat_Float
MF_MT_AUDIO_BITS_PER_SAMPLE 32
MF_MT_AUDIO_SAMPLES_PER_SECOND 48 000
MF_MT_AUDIO_NUM_CHANNELS 6
MF_MT_AUDIO_AVG_BYTES_PER_SECOND 1152000 (facultatif)
MF_MT_AUDIO_BLOCK_ALIGNMENT 24 (facultatif)
MF_MT_AUDIO_CHANNEL_MASK 0x3F (facultatif)

si la mise à jour du supplément Platform pour Windows vista est installée, le décodeur audio AAC est disponible sur Windows vista, mais il est accessible sur Windows vista uniquement à l’aide du lecteur Source.

Spécifications

Condition requise Valeur
Client minimal pris en charge
applications de [ bureau Windows 7 uniquement]
Serveur minimal pris en charge
Windows Serveur 2008 R2, [ applications de bureau uniquement]
DLL
Msmpeg2adec.dll sur Windows 7 ;
MSAudDecMFT.dll sur Windows 8

Voir aussi

Objets codec

Types de média AAC

Types de média audio

Décodeur audio Microsoft MPEG-1/DD/AAC

Prise en charge MPEG-4 dans Media Foundation

Formats multimédias pris en charge dans Media Foundation