Share via


Especificación de intervalos de datos de WMA Pro

El archivo de encabezado Mmreg.h define el valor 0x0164 ser la etiqueta de formato de onda para WMA Pro-over-S/PDIF:

  #define WAVE_FORMAT_WMASPDIF  0x0164

El GUID de subtipo de formato correspondiente se puede especificar en términos de la etiqueta de formato de onda mediante la macro DEFINE_WAVEFORMATEX_GUID del archivo de encabezado Ksmedia.h de la siguiente manera:

  #define KSDATAFORMAT_SUBTYPE_WMA_SPDIF    \
                      DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_WMASPDIF)

En el ejemplo de código siguiente se muestra cómo un controlador de miniporte WaveCíclico o WavePci puede especificar las entradas de tabla KSDATARANGE_AUDIO para un pin que admita los formatos WMA Pro-over-S/PDIF y 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
  },
};

En este ejemplo de código, los intervalos de datos primero y segundo especifican formatos de datos WMA Pro-over-S/PDIF a velocidades de muestreo de 48 kHz y 44,1 kHz. Con estas dos opciones, una aplicación de audio puede reproducir una secuencia de audio WMA Pro grabada en cualquiera de estas dos velocidades de muestreo, suponiendo que el descodificador externo también puede controlar la frecuencia de muestreo.

El tamaño del marco de sincronización WMA Pro es el mismo en 48 kHz y 44,1 kHz, y ambos rangos de datos usan los mismos valores de parámetros pcM: dos canales y 16 bits por canal. Para obtener información sobre el uso de parámetros PCM para especificar intervalos de datos para los formatos WMA Pro-over-S/PDIF y AC-3 over-S/PDIF, vea S/PDIF Pass-Through Transmisión de flujos no PCM.

El tercer intervalo de datos especifica un formato de datos AC-3 over-S/PDIF. Para obtener más información, vea Especificar intervalos de datos ac-3.

En el ejemplo anterior no se habilita DirectSound para controlar los formatos WMA Pro-over-S/PDIF y AC-3 over-S/PDIF en Microsoft Windows 2000 SP2 y Windows 98 SE + revisión. Para habilitar esta funcionalidad, es necesario modificar el código de ejemplo para que, para cada uno de los tres intervalos de datos que usen el especificador KSDATAFORMAT_SPECIFIER_WAVEFORMATEX, se debe incluir un segundo intervalo de datos idéntico, salvo que usa el especificador KSDATAFORMAT_SPECIFIER_DSOUND en su lugar. Para obtener un ejemplo, vea Especificar intervalos de datos ac-3.