Partager via


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;