MSDV ドライバ

MSDV は、DV カムコーダ用 Microsoft® Windows® Driver Model (WDM) ドライバである。このドライバは、アプリケーションに WDM ビデオ キャプチャ フィルタとして公開される。MSDV はそのフィルタの参照ページに記述されているインターフェイスのサブセットをサポートする。ユーザーのシステムで DV カムコーダが使える場合は、"Video Capture Sources" カテゴリ (CLSID_VideoInputDeviceCategory) および "WDM Streaming Rendering Devices" カテゴリ (AM_KSCATEGORY_RENDER) にカムコーダが現れる。そのフレンドリ名は、"Microsoft DV Camera and VCR" またはこれが各国語にローカライズされた名前になる。このフィルタをフィルタ グラフに追加するには、ICreateDevEnum インターフェイスを使う。詳細については、「デバイスとフィルタの列挙」を参照すること。

MSDV は、カムコーダを制御するために、IAMExtDeviceIAMExtTransportIAMTimecodeReader インターフェイスを公開する。

MSDV には出力ピンが 2 つある。1 つは、インターリーブされたオーディオ-ビデオ データを出力し、もう 1 つはオーディオを含まないビデオ データを出力する。同時にレンダリングできる出力ピンは 1 つだけである。MSDV の入力ピンは 1 つで、コンピュータからカムコーダにデータを伝送する役割を持つ。カムコーダはキャプチャと送信を同時に行えないので、MSDV は入力と出力を同時に接続することはできない。サポートされている DV フォーマットについては、「DV ビデオ サブタイプ」を参照すること。

MSDV の使用上のヒント :

  • フィルタ グラフ マネージャがピンを MSDV 自身の入力ピンに接続しようと試みるため、IGraphBuilder::Render メソッドは MSDV の出力ピンをレンダリングしない。MSDV は接続を拒否するため、メソッドは失敗する。代わりに、IGraphBuilder::Connect または ICaptureGraphBuilder2::RenderStream を使うこと。
  • フィルタ グラフに MSDV が含まれる場合、MSDV は、グラフに基準クロックを提供しなければならない。DirectX 8.0 からは、フィルタ グラフ マネージャが自動的に MSDV を基準クロックとして選択する。それより前のバージョンでは、フィルタ グラフ マネージャで IMediaFilter::SetSyncSource メソッドを呼び出さなければならない。詳細については、「DirectShow のタイムとクロック」を参照すること。
  • デバイスによっては、IAMExtDeviceIAMExtTransportIAMTimeCodeReader のいくつかのメソッドが、HRESULT 値ではなく WIN32 エラー コードを返す場合がある。可能なエラー コードは次のとおりである。
エラー コード 説明
ERROR_TIMEOUT 外部デバイス コマンドがタイム アウトになった。
ERROR_REQ_NOT_ACCEP デバイスがこの外部デバイス コマンドを受け付けなかった。
ERROR_NOT_SUPPORTED デバイスがこの外部デバイス コマンドをサポートしていない。
ERROR_REQUEST_ABORTED 外部デバイス コマンドが中断された。デバイスが削除されたか、バスがリセットされた可能性がある。

デバイスの情報

Windows Millennium Edition および Windows XP では、DV フィルタのデバイス モニカは、"FriendlyName" プロパティの他に "Description" プロパティもサポートする。このプロパティは、INF ファイルから取得したデバイスの記述を返す。この記述には通常、デバイスのブランド名が含まれる。ただし、デバイス モデルによってはこのプロパティがサポートされない場合がある。

デバイス モニカの詳細については、「システム デバイス列挙子の使用」を参照すること。

クロック タイム

MSDV は、1394 データ パケットに含まれる 1394 バス クロックを使ってクロックを派生する。MSDV は、これらの値を使って DV メディア サンプルにタイム スタンプする。このソース クロックはコンピュータ システム クロックではないので、このタイムは最終的にはコンピュータ システム クロックからドリフトする。しかし、上記のように、Filter Graph Manager はデフォルトで MSDV をグラフ基準クロックとして選択する。

IAMDroppedFrame インターフェイスは、ドライバの現在のドロップしたフレーム数を報告する。この値は、ある時間での実際にドロップしたフレーム数とは完全に一致しない。フレームがドロップした場合は、システムがバランスされてないことを意味する (データ製造数がデータ消費数より多い)。たとえば、ユーザーのハード ディスクが DV キャプチャ レートをサポートするほど速くない場合である。

参照