Share via


WMA Pro 데이터 범위 지정

헤더 파일 Mmreg.h는 WMA Pro-over-S/PDIF에 대한 웨이브 형식 태그로 0x0164 값을 정의합니다.

  #define WAVE_FORMAT_WMASPDIF  0x0164

해당 format-subtype GUID는 다음과 같이 헤더 파일 Ksmedia.h의 DEFINE_WAVEFORMATEX_GUID 매크로를 사용하여 웨이브 형식 태그 측면에서 지정할 수 있습니다.

  #define KSDATAFORMAT_SUBTYPE_WMA_SPDIF    \
                      DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_WMASPDIF)

다음 코드 예제에서는 WaveCyclic 또는 WavePci 미니포트 드라이버가 WMA Pro-over-S/PDIF 및 AC-3 over-S/PDIF 형식을 지원하는 핀에 대한 KSDATARANGE_AUDIO 테이블 항목을 지정하는 방법을 보여 줍니다.

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
  },
};

이 코드 예제에서 첫 번째 및 두 번째 데이터 범위는 48kHz 및 44.1kHz의 샘플 속도로 WMA Pro-over-S/PDIF 데이터 형식을 지정합니다. 이러한 두 옵션을 사용하면 외부 디코더가 샘플 속도도 처리할 수 있다고 가정하여 오디오 애플리케이션이 이러한 두 샘플 속도 중 하나로 기록된 WMA Pro 오디오 스트림을 재생할 수 있습니다.

WMA Pro 동기화 프레임 크기는 48kHz와 44.1kHz 모두에서 동일하며 두 데이터 범위는 동일한 PCM 매개 변수 값(채널 2개 및 채널당 16비트)을 사용합니다. PCM 매개 변수를 사용하여 WMA Pro-over-S/PDIF 및 AC-3 over-S/PDIF 형식에 대한 데이터 범위를 지정하는 방법에 대한 자세한 내용은 비 PCM 스트림의 S/PDIF Pass-Through 전송을 참조하세요.

세 번째 데이터 범위는 AC-3 over-S/PDIF 데이터 형식을 지정합니다. 자세한 내용은 AC-3 데이터 범위 지정을 참조하세요.

앞의 예제에서는 DirectSound가 Microsoft Windows 2000 SP2 및 Windows 98 SE + 핫픽스의 비 PCM WMA Pro-over-S/PDIF 및 AC-3 over-S/PDIF 형식을 처리할 수 없습니다. 이 기능을 사용하려면 지정자 KSDATAFORMAT_SPECIFIER_WAVEFORMATEX 사용하는 세 개의 데이터 범위 각각에 대해 지정자 KSDATAFORMAT_SPECIFIER_DSOUND 대신 사용한다는 점을 제외하고 동일한 두 번째 데이터 범위를 포함해야 하므로 샘플 코드를 수정해야 합니다. 예제는 AC-3 데이터 범위 지정을 참조하세요.