AVStream コーデックのハードウェア メディアの使用
プライベート メディアをサポートする AVStream ミニドライバーは、システム メモリへの中間転送なしで、デバイス ハードウェア内のデータを転送できます。
具体的には、2 つのフィルターが同じプライベート メディアとメディア インスタンスを共有する場合、メディア ファンデーションはデバイス ハードウェア内でのみメディアを転送します。 この転送は、関数をシステム メモリに取り込まずに行われます。 たとえば、デコーダーと同じデバイスのエンコーダーはプライベート メディアを共有できるため、パフォーマンスが大幅に向上します。
プライベート メディアを使用するには、ミニドライバーは、ピンの AVStrMiniPinProcess 関数で次の操作を行う必要があります。
ドライバーのカスタム メディアがピン接続用に選択されている場合 (たとえば、ピンのメディアが KSMEDIUMSETID_Standard でない場合)、ドライバーはプライベート バスを介してデータをルーティングする必要があります。 AVStream では、カスタム メディアを使用して接続されているピンのストリーム ポインター トランスポートは有効になりません。
ドライバーは、KsPinGetConnectedPinFileObjectを呼び出すことによって、接続されているピンを特定できます。
その後、ドライバーはバッファーに対して操作を実行し、カスタム メディアを介して接続されたピン/フィルター オブジェクトにルーティングできます。