圧縮されたオーディオ形式のサブ形式 GUID
Windows 7 では、圧縮オーディオ形式のサポートを提供するために、新しいサブフォーマット GUID が Ksmedia.h ヘッダー ファイルに追加されました。 サブフォーマット GUID は、データフォーマットの特定のサブフォーマットを示します。 これらの形式は、非圧縮オーディオに関する Consumer Electronics Association (CEA) 標準によって定義されています。
CEA-861-D 標準の結果、CEA デバイスでサポートされていないオーディオ形式がそのようなデバイスに送信されないようにする必要があります。 高解像度マルチメディア インターフェイス (HDMI) や DisplayPort は CEA デバイスの例です。
ユーザー モード アクセスの場合、GUID は WAVEFORMATEXTENSIBLE の SubFormat メンバーと WAVEFORMATEXTENSIBLE_IEC61937 の FormatExt メンバーで指定されます。 オーディオ ドライバーのカーネル モード アクセスの場合、GUID は KSDATARANGE_AUDIO 構造の DataRange メンバーで指定されます。
使用可能な圧縮オーディオ形式の GUID を次の表に示します。
注: 利用可能なすべての形式が Windows 7 HD オーディオ クラス ドライバーでサポートされているわけではありません。 Windows 7 でサポートされている形式は、表内にアスタリスク (*) で示されています。
CEA 861 タイプ | SubFormat GUID | 説明 |
---|---|---|
0x00 |
ストリームを参照してください。 |
|
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 (Layer1 & 2) |
0x04 |
00000005-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_MPEG3 |
MPEG-3 (階層 3) |
0x05 |
00000004-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_MPEG2 |
MPEG-2 (マルチチャネル) |
0x06 |
00000006-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_AAC |
高度なオーディオ コーディング* (ADTS の MPEG-2/4 AAC) |
0x07 |
00000008-0000-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_DTS |
デジタル シアター サウンド (DTS) |
0x0a |
0000000a-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS |
Dolby Digital Plus |
0x0f |
未使用。 |
予約済み |
高ビット レートのオーディオ サンプル パケットで送信されるオーディオ形式の GUID を次の表に示します。
CEA 861 タイプ | SubFormat GUID | 説明 |
---|---|---|
0x0b |
0000000b-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_DTS_HD |
DTS-HD (24 ビット、95KHz) |
0x0c |
0000000c-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_MLP |
MAT(MLP) - Meridian Lossless Packing (ドルビーデジタル True HD - 24 ビット 196KHz/最大 18M bps、8 チャンネル) |
0x0e |
00000164-0000-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_WMA_PRO |
Windows Media Audio (WMA) Pro |
サードパーティ ソリューションで実装できる圧縮オーディオ形式の GUID を次の表に示します。
CEA 861 タイプ | SubFormat GUID | 説明 |
---|---|---|
0x08 |
00000008-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_ATRAC |
アダプティブ トランスフォーム アコースティック コーディング (ATRAC) |
0x09 |
00000009-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_ONE_BIT_AUDIO |
ワンビット オーディオ |
0x0D |
0000000d-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_DST |
ダイレクト ストリーム トランスポート (DST) |
次のコード例は、完全に機能する Dolby Digital Plus デコーダーを備えた HDMI シンクで使用するために、オーディオ ミニポート ドライバーが KSDATARANGE_AUDIO 構造を定義および初期化する方法を示しています。 このタイプのシンクは、44.1 および 48 KHz の転送速度をサポートします。
サンプリング レートが 48 KHz の場合、オーディオ ミニポート ドライバーは次のコードを使用して KSDATARANGE_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;
サンプリング レートが 44.1 KHz の場合、オーディオ ミニポート ドライバーは次のコードを使用して 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;