GUID de sous-format pour les formats audio compressés
Pour Windows 7, de nouvelles GUID de sous-format ont été ajoutées au fichier d’en-tête Ksmedia.h pour prendre en charge les formats audio compressés. Les GUID de sous-format indiquent la sous-forme spécifique d’un format de données. Ces formats sont définis par la norme CEA (Consumer Electronics Association) pour l’audio non compressé.
En conséquence de la norme CEA-861-D, vous devez vous assurer que les formats audio qui ne sont pas pris en charge par un appareil CEA ne sont pas transmis à un tel appareil. L’interface multimédia haute définition (HDMI) et DisplayPort sont des exemples d’appareils CEA.
Pour l’accès en mode utilisateur, les GUID sont spécifiés dans le membre SubFormat de WAVEFORMATEXTENSIBLE et dans le membre FormatExt de WAVEFORMATEXTENSIBLE_IEC61937. Pour l’accès en mode noyau pour les pilotes audio, les GUID sont spécifiés dans le membre DataRange de la structure KSDATARANGE_AUDIO .
Les GUID des formats audio compressés disponibles sont répertoriés dans le tableau suivant.
Notez que tous les formats disponibles ne sont pas pris en charge par le pilote de classe audio Windows 7 HD. Les formats pris en charge par Windows 7 sont indiqués dans les tables avec un astérisque (*).
Type CEA 861 | GUID de sous-format | Description |
---|---|---|
0x00 |
Reportez-vous au flux. |
|
0x01 |
00000000-0000-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_WAVEFORMATEX |
IEC 60958 PCM |
0x02 |
00000092-0000-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL |
AC-3 |
0x03 |
00000003-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_MPEG1 |
MPEG-1 (Couche 1 &2) |
0x04 |
00000005-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_MPEG3 |
MPEG-3 (couche 3) |
0x05 |
00000004-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_MPEG2 |
MPEG-2 (Multichannel) |
0x06 |
00000006-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_AAC |
Codage audio avancé* (MPEG-2/4 AAC dans ADTS) |
0x07 |
0000008-0000-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_DTS |
Digital Theater Sound (DTS) |
0x0A |
000000a-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS |
Dolby Digital Plus |
0x0f |
Inutilisé. |
Reserved |
Les GUID pour les formats audio transmis dans des exemples de paquets audio à débit binaire élevé sont répertoriés dans le tableau suivant.
Type CEA 861 | GUID de sous-format | Description |
---|---|---|
0x0b |
0000000b-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_DTS_HD |
DTS-HD (24 bits, 95KHz) |
0x0c |
0000000c-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_MLP |
MAT(MLP)- Emballage sans perte de méridien (Dolby Digital True HD - 24 bits 196KHz/jusqu’à 18 M bps, 8 canaux) |
0x0e |
00000164-0000-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_WMA_PRO |
Windows Media Audio (WMA) Pro |
Les GUID pour les formats audio compressés qui peuvent être implémentés par des solutions tierces sont répertoriés dans le tableau suivant.
Type CEA 861 | GUID de sous-format | Description |
---|---|---|
0x08 |
0000008-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_ATRAC |
Codage acoustique de transformation adaptative (ATRAC) |
0x09 |
0000009-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_ONE_BIT_AUDIO |
Audio un bit |
0x0d |
000000d-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_DST |
Transport direct de flux (DST) |
L’exemple de code suivant montre comment un pilote de miniport audio définit et initialise une structure KSDATARANGE_AUDIO à utiliser avec un récepteur HDMI doté d’un décodeur Dolby Digital Plus entièrement fonctionnel. Un récepteur de ce type prend en charge les taux de transfert de 44,1 et 48 KHz.
Pour un taux d’échantillonnage de 48 KHz, un pilote audio miniport utilise le code suivant pour définir et initialiser une structure KSDATARANGE_AUDIO. Ce code montre les plages de données exposées par le pilote de miniport audio :
//Define and initialize KSDATARANGE_AUDIO structure
// for use with a sample rate of 48 KHz.
KSDATARANGE_AUDIO drDDPlus48;
drDDPlus48.DataRange.FormatSize = sizeof(KSDATARANGE_AUDIO);
drDDPlus48.DataRange.Flags = 0; // Ignored.
drDDPlus48.DataRange.SampleSize = 0; // Ignored.
drDDPlus48.DataRange.Reserved = 0;
drDDPlus48.DataRange.MajorFormat = KSDATAFORMAT_TYPE_AUDIO;
drDDPlus48.DataRange.SubFormat = KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS;
drDDPlus48.DataRange.Specifier = KSDATAFORMAT_SPECIFIER_WAVEFORMATEX;
drDDPlus48.MaximumChannels = 2
drDDPlus48.MinimumBitsPerSample = 16; // All encoded data is transmitted at
drDDPlus48.MaximumBitsPerSample = 16; // 16 bits over IEC 60958.
drDDPlus48.MinimumSampleFrequency = 192000; // 48 KHz * 4.
drDDPlus48.MaximumSampleFrequency = 192000;
Pour un taux d’échantillonnage de 44,1 KHz, un pilote audio miniport utilise le code suivant pour définir et initialiser une structure KSDATARANGE_AUDIO :
//Define and initialize KSDATARANGE_AUDIO structure
// for use with a sample rate of 41.1 KHz.
KSDATARANGE_AUDIO drDDPlus44;
drDDPlus44.DataRange.FormatSize = sizeof(KSDATARANGE_AUDIO);
drDDPlus44.DataRange.Flags = 0 // Ignored.
drDDPlus44.DataRange.SampleSize = 0 // Ignored.
drDDPlus44.DataRange.Reserved = 0;
drDDPlus44.DataRange.MajorFormat = KSDATAFORMAT_TYPE_AUDIO;
drDDPlus44.DataRange.SubFormat = KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS;
drDDPlus44.DataRange.Specifier = KSDATAFORMAT_SPECIFIER_WAVEFORMATEX;
drDDPlus44.MaximumChannels = 2
drDDPlus44.MinimumBitsPerSample = 16; // All encoded data is transmitted at
drDDPlus44.MaximumBitsPerSample = 16; // 16 bits over IEC 60958.
drDDPlus44.MinimumSampleFrequency = 176400; // 44.1 KHz * 4
drDDPlus44.MaximumSampleFrequency = 176400;