MSDV ドライバーの DVINFO フィールド設定
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]
このセクションでは、MSDV ドライバーが DVINFO 構造体を埋める方法について説明します。
構造体は DVINFO
、MSDV と他のフィルター間のピン接続の形式ブロックを定義します。 既定では、DV デバイスからキャプチャする場合は DV スプリッター フィルターが使用され、デバイスへの送信時には DV Mux フィルターが使用されます。 ただし、アプリケーションは独自のカスタム フィルターを提供する場合があるため、MSDV によって形式ブロックがどのように設定されるかを DVINFO
理解すると便利です。
構造体には DVINFO
、次の情報が含まれています。
- 1 番目と 2 番目のオーディオ ブロック用の 2 つのオーディオ補助 (AAUX) ソース パック。
- 1 番目と 2 番目のオーディオ ブロック用の 2 つの AAUX ソース管理パック。
- ビデオ補助 (VAUX) ソース パック。
- VAUX ソース管理パック。
DV ストリーム内のすべてのフレームには、AAUX パックと VAUX パックが含まれています。 ただし、 DVINFO
フォーマット ブロックは静的であり、ピン接続の確立にのみ使用されます。 MSDV ドライバーが接続すると、ストリーム内の AAUX パックまたは VAUX パックは調べられません。 代わりに、DV デバイスの次の特性に基づいて、一連の既定値が使用されます。
- デバイスがコンシューマー形式 (DVCR) またはプロフェッショナル形式 (DVCPRO) をサポートしているかどうか
- 信号の種類
- 形式が NTSC か PAL かを指定します。 (デバイスがこの情報を報告しない場合、MSDV の既定値は NTSC 設定になります)
ストリーミングが開始されたら、DV スプリッターなどのユーザー モード フィルターで、各 DV フレームの実際の内容を調べる必要があります。 情報はフレーム間で変更される可能性があるため、フィルターで動的な形式変更を実行する必要がある場合があります。 たとえば、オーディオ レートが変更された場合、フィルターでオーディオの種類を再ネゴシエーションする必要がある場合があります。
タイプ 1 DV ファイルをキャプチャすると、 DVINFO
構造体はストリーム形式 ('strf') チャンクとしてファイルに書き込まれます。 このデータは、MSDV によって提供されるフォーマット ブロックから直接取得されます。 ご注意のように、ストリームの実際のコンテンツは異なる場合があります。 各フレームの AAUX パックと VAUX パックを調べるのはアプリケーションの責任です。
次のトピックでは、MSDV で使用されるすべてのフィールドの一覧を示すテーブルを見つけることができます。
これらの表を読む場合は、次の仕様を参照してください。
- IEC 61834
- SMPTE 314M
- SMPTE 370
各テーブルでは、最初の列にフィールド コードが示され、その後にビット数が続きます (かっこ内)。 残りの列はフィールド値を示します。 AAUX および VAUX フィールドの多くはピン接続には関係ありません。この場合、MSDV はダミー値を設定します。 パック全体の数値は、各テーブルの下部に表示されます。
各テーブルの後のメモは、選択したフィールドに関する詳細情報を提供します。 詳細な説明については、仕様を参照してください。 また、SMPTE 314M/SMPTE 370 では IEC 61834 と同じ意味を持たないフィールドもあります。
注意
現在、DirectShow では DVCPRO 形式はサポートされていません。 DVCPRO 形式の一覧の値は、今後使用するために定義されます。
関連トピック