デコーダーの要件
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]
VMR にサンプルを配信するデコーダーは、次の規則に従う必要があります。
- ビデオ フレームごとに 1 つのサブ画像フレームが VMR に配信されている必要があります。 2 つのフレームには、同じタイム スタンプが必要です。
- サブピックが変更されていない場合は、 IMemAllocator::GetBuffer メソッドの AM_GBF_NOTASYNCPOINT フラグを使用して、VMR に配信された最後のフレームを含むバッファーをアロケーターに強制的に返します。 サンプルに新しいタイム スタンプを配置し、VMR にもう一度配信するだけです。 サブピック名声が空白の場合は、引き続き配信する必要があります。 VMR は空のフレームを検出し、ビデオとブレンドしません。 このテストは VGA チップによって実行され、再生パフォーマンスには影響しません。
- ライブ ストリームを除くすべてのサンプルには、有効な開始タイム スタンプと停止タイム スタンプがアタッチされている必要があります。 (DVD はライブ ストリームではありません。
- メディア サンプルのタイム スタンプは連続している必要があります
- デコーダーは、グラフ ビルダーで使用するために VMR 対応として自身を識別する必要があります。
- サブ画像ストリームには、ピクセル単位のアルファ値が埋め込まれるようになりました。 ARGB4444 サーフェスタイプは、サブ画像に最適です。
- サブピックのストライドがサーフェス幅と同じであると想定しないでください。 これは必ずしも VMR の場合とは限りません。
関連トピック