モーション補正コールバック
DirectX ビデオ アクセラレーションでは、デジタル ビデオ デコード処理の高速化のために DirectDraw ドライバーで提供され、DVD サブ画像のサポートなどの目的でアルファ ブレンドがサポートされる、以下のモーション補正コールバック関数を使用します。
モーション補正コールバック関数は、DirectX ビデオ アクセラレーション インターフェイスのデバイス ドライバー側で構成されます。 モーション補正コールバック関数は、DD_MOTIONCOMPCALLBACKS 構造体のメンバーによって指定されます。 モーション補正コールバック関数へのアクセスが起きるしくみは、以下の流れのとおりです。
デバイス ドライバーの DdMoCompGetGuids で生成された IAMVideoAccelerator::GetVideoAcceleratorGUIDs から GUID が届きます。
ダウンストリーム入力ピンの IAMVideoAccelerator::GetUncompFormatsSupported への呼び出しによって、デバイス ドライバーの DdMoCompGetFormats からデータが返されます。
関連する処理の開始時に、デコーダーの IAMVideoAcceleratorNotify::GetCreateVideoAcceleratorData の出力ピンからの DXVA_ConnectMode データ構造がデバイス ドライバーの DdMoCompCreate に渡され、これによりビデオ アクセラレーション オブジェクトのことがデコーダーに通知されます。
デバイス ドライバーの DdMoCompGetBuffInfo で生成されたデータが、IAMVideoAccelerator::GetCompBufferInfo から返されます。
IAMVideoAccelerator::Execute を使用して送信されたバッファーを、デバイス ドライバーの DdMoCompRender が受信します。
IAMVideoAccelerator::QueryRenderStatus を使用してデバイス ドライバーの DdMoCompQueryStatus が呼び出されます。 DdMoCompQueryStatus からの DDERR_WASSTILLDRAWING のリターン コードは、ホスト デコーダーによって IAMVideoAccelerator::QueryRenderStatus からの E_PENDING のリターン コードとして認識されます。
IAMVideoAccelerator::BeginFrame に送信されたデータを、デバイス ドライバーの DdMoCompBeginFrame が受信します。 IAMVideoAccelerator::BeginFrame への応答でホスト デコーダーによって E_PENDING が認識されるには、DdMoCompBeginFrame からの DDERR_WASSTILLDRAWING のリターン コードが必要です。
IAMVideoAccelerator::EndFrame に送信されたデータが、デバイス ドライバーの DdMoCompEndFrame に受信されます。
関連する処理の終了時に、デバイス ドライバーの DdMoCompDestroy を使用して、現在のビデオ アクセラレーション オブジェクトが今後は使用されないことがドライバーに通知されます。これにより、ドライバーは必要なクリーンアップを実行できるようになります。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示