AVStream コーデックのハードウェア メディアの使用

プライベート メディアをサポートする AVStream ミニドライバーは、システム メモリへの中間転送なしで、デバイス ハードウェア内のデータを転送できます。

具体的には、2 つのフィルターが同じプライベート メディアとメディア インスタンスを共有する場合、メディア ファンデーションはデバイス ハードウェア内でのみメディアを転送します。 この転送は、関数をシステム メモリに取り込まずに行われます。 たとえば、デコーダーと同じデバイスのエンコーダーはプライベート メディアを共有できるため、パフォーマンスが大幅に向上します。

プライベート メディアを使用するには、ミニドライバーは、ピンの AVStrMiniPinProcess 関数で次の操作を行う必要があります。

  1. ドライバーのカスタム メディアがピン接続用に選択されている場合 (たとえば、ピンのメディアが KSMEDIUMSETID_Standard でない場合)、ドライバーはプライベート バスを介してデータをルーティングする必要があります。 AVStream では、カスタム メディアを使用して接続されているピンのストリーム ポインター トランスポートは有効になりません。

  2. ドライバーは、KsPinGetConnectedPinFileObjectを呼び出すことによって、接続されているピンを特定できます。

  3. その後、ドライバーはバッファーに対して操作を実行し、カスタム メディアを介して接続されたピン/フィルター オブジェクトにルーティングできます。