次の方法で共有


IDirectXVideoProcessor::VideoProcessBlt メソッド (dxva2api.h)

1 つ以上の入力サンプルに対してビデオ 処理操作を実行し、Direct3D9 サーフェスに結果を書き込みます。

構文

HRESULT VideoProcessBlt(
  [in]  IDirect3DSurface9                 *pRenderTarget,
  [in]  const DXVA2_VideoProcessBltParams *pBltParams,
  [in]  const DXVA2_VideoSample           *pSamples,
  [in]  UINT                              NumSamples,
  [out] HANDLE                            *pHandleComplete
);

パラメーター

[in] pRenderTarget

Direct3D サーフェスの IDirect3DSurface9 インターフェイスへのポインター。 ビデオ処理操作の出力はこの画面に書き込まれます。 サーフェスには、次のいずれかの種類を指定できます。

  • DXVA2_VideoProcessRenderTarget フラグを使用して IDirectXVideoAccelerationService::CreateSurface を呼び出して作成されたサーフェス。 DXVA2_VideoSoftwareRenderTarget フラグを使用することもできますが、デバイス GUID がDXVA2_VideoProcSoftwareDevice (ソフトウェア ビデオ処理デバイス) の場合にのみ使用できます。
  • D3DUSAGE_RENDERTARGET使用フラグを持つ Direct3D デバイスから作成されたサーフェス。
  • Direct3D スワップ チェーン。

[in] pBltParams

実行するビデオ処理操作を記述する DXVA2_VideoProcessBltParams 構造体へのポインター。

[in] pSamples

入力サンプルを含む DXVA2_VideoSample 構造体の配列へのポインター。 配列には少なくとも 1 つの要素が必要です。

入力サンプルの最大数は、ヘッダー ファイル dxva2api.h で定義されている定数 MAX_DEINTERLACE_SURFACESによって指定されます。

[in] NumSamples

pSamples 配列内の要素の数。

[out] pHandleComplete

予約;NULL に設定 します

戻り値

このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。

リターン コード 説明
S_OK
メソッドが成功しました。
D3DERR_DRIVERINTERNALERROR
内部ドライバー エラー。
E_INVALIDARG
引数が無効です。

注釈

メソッドが戻ると、操作が完了していない可能性があります。

メソッドがE_INVALIDARGを返す場合は、次のチェックします。

  • 入力サンプルの数 (NumSamples) は 、MAX_DEINTERLACE_SURFACES以下である必要があります。
  • Direct3D サーフェスは VideoProcessBlt の有効なターゲットである必要があります。 詳細については、 pRT パラメーターの説明を参照してください。
  • pBltParams で指定されたプレゼンテーション時間 (TargetFrame) は、プライマリ ストリームからの現在の画像の開始時刻と終了時刻と一致する必要があります。 具体的には、終了時刻より小さく、開始時刻以上である必要があります。 pSamples 配列に後方参照図が含まれている場合、pSamples の最初のサンプルは現在の図ではない可能性があることに注意してください。 詳細については、「 入力サンプルの順序」を参照してください。
  • pBltParams で指定されたターゲット四角形 (TargetRect) は、変換先サーフェス (pRT) よりも大きくすることはできません。
  • pBltParams で指定された constriction サイズ (ConstrictionSize) は、ターゲットの四角形より 0 より小さいか大きくすることはできません。
  • 背景色のアルファ コンポーネントは opqaue である必要があります。
  • pBltParams で指定された ProcAmp 値は有効である必要があります。 ドライバーでサポートされている ProcAmp 設定の場合、これらの値は IDirectXVideoProcessor::GetProcAmpRange メソッドによって返される範囲内にある必要があります。
  • pBltParams で指定されたノイズフィルターと詳細フィルターは有効である必要があります。 ドライバーでサポートされているフィルターの場合、これらの値は IDirectXVideoProcessor::GetFilterPropertyRange メソッドによって返される範囲内にある必要があります。
  • pBltParams で指定されるアルファ値は、[0...1] の範囲内である必要があります。
  • pSamples で指定された各入力サンプルについて:
    • 開始時刻を終了時刻より大きくすることはできません。
    • 有効な IDirect3DSurface9 ポインターを指定する必要があります。
    • ソース四角形を入力サーフェスより大きくすることはできません。
    • 変換先の四角形は、変換先サーフェスより大きくすることはできません。
    • 平面アルファは 、[0....1] の範囲である必要があります。
  • すべての四角形 (ソース、変換先、ターゲット) では、四角形を反転 (左 > 右または上 > の下) にしたり、負の値を設定したりすることはできません。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー dxva2api.h

こちらもご覧ください

DXVA ビデオ処理

DXVA2_VideoSample

IDirectXVideoProcessor