Spécification de plages de données WMA Pro
Le fichier d’en-tête Mmreg.h définit la valeur 0x0164 comme balise de format d’onde pour WMA Pro-over-S/PDIF :
#define WAVE_FORMAT_WMASPDIF 0x0164
Le GUID de sous-type format correspondant peut être spécifié en termes de balise wave-format à l’aide de la macro DEFINE_WAVEFORMATEX_GUID du fichier d’en-tête Ksmedia.h comme suit :
#define KSDATAFORMAT_SUBTYPE_WMA_SPDIF \
DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_WMASPDIF)
L’exemple de code suivant montre comment un pilote miniport WaveCyclique ou WavePci peut spécifier les entrées de table KSDATARANGE_AUDIO pour une broche qui prend en charge les formats WMA Pro-over-S/PDIF et AC-3-over-S/PDIF :
static KSDATARANGE_AUDIO PinDataRangesSpdifOut[] =
{
// 48-kHz WMA Pro over S/PDIF
{
{
sizeof(KSDATARANGE_AUDIO),
0,
0,
0,
STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
STATICGUIDOF(KSDATAFORMAT_SUBTYPE_WMA_SPDIF),
STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
},
2, // Max number of channels
16, // Minimum number of bits per sample
16, // Maximum number of bits per channel
48000, // Minimum rate
48000 // Maximum rate
},
// 44.1-kHz WMA Pro over S/PDIF
{
{
sizeof(KSDATARANGE_AUDIO),
0,
0,
0,
STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
STATICGUIDOF(KSDATAFORMAT_SUBTYPE_WMA_SPDIF),
STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
},
2, // Max number of channels
16, // Minimum number of bits per sample
16, // Maximum number of bits per channel
44100, // Minimum rate
44100 // Maximum rate
},
// 48-kHz AC-3 over S/PDIF
{
{
sizeof(KSDATARANGE_AUDIO),
0,
0,
0,
STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
STATICGUIDOF(KSDATAFORMAT_SUBTYPE_AC3_SPDIF),
STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
},
2, // Max number of channels
16, // Minimum number of bits per sample
16, // Maximum number of bits per channel
48000, // Minimum rate
48000 // Maximum rate
},
};
Dans cet exemple de code, les première et deuxième plages de données spécifient des formats de données WMA Pro-over-S/PDIF à des taux d’échantillonnage de 48 kHz et 44,1 kHz. Avec ces deux options, une application audio peut lire un flux audio WMA Pro enregistré à l’une de ces deux fréquences d’échantillonnage, en supposant que le décodeur externe peut également gérer le taux d’échantillonnage.
La taille de trame de synchronisation WMA Pro est identique à 48 kHz et 44,1 kHz, et les deux plages de données utilisent les mêmes valeurs de paramètre PCM: deux canaux et 16 bits par canal. Pour plus d’informations sur l’utilisation des paramètres PCM afin de spécifier des plages de données pour les formats WMA Pro-over-S/PDIF et AC-3-over-S/PDIF, consultez Transmission de flux non PCM S/PDIF Pass-Through.
La troisième plage de données spécifie un format de données AC-3-over-S/PDIF. Pour plus d’informations, consultez Spécification de plages de données AC-3.
L’exemple précédent n’autorise pas DirectSound à gérer les formats WMA Pro-over-S/PDIF et AC-3-over-S/PDIF non PCM sur Microsoft Windows 2000 SP2 et Windows 98 SE + correctif logiciel. Pour activer cette fonctionnalité, l’exemple de code doit être modifié de sorte que, pour chacune des trois plages de données qui utilise le spécificateur KSDATAFORMAT_SPECIFIER_WAVEFORMATEX, une deuxième plage de données identique soit incluse, sauf qu’elle utilise le spécificateur KSDATAFORMAT_SPECIFIER_DSOUND à la place. Pour obtenir un exemple, consultez Spécification de plages de données AC-3.