次の方法で共有


DXVAHD_STREAM_DATA 構造体 (dxvahd.h)

IDXVAHD_VideoProcessor::VideoProcessBltHD メソッドのストリームごとのデータが含まれます。

構文

typedef struct _DXVAHD_STREAM_DATA {
  BOOL              Enable;
  UINT              OutputIndex;
  UINT              InputFrameOrField;
  UINT              PastFrames;
  UINT              FutureFrames;
  IDirect3DSurface9 **ppPastSurfaces;
  IDirect3DSurface9 *pInputSurface;
  IDirect3DSurface9 **ppFutureSurfaces;
} DXVAHD_STREAM_DATA;

メンバー

Enable

この入力ストリームを有効にするかどうかを指定します。 値が TRUE の場合、 VideoProcessBltHD メソッドは、このストリームを出力サーフェイスに blit します。 それ以外の場合、ストリームは blitted されません。 一度に有効にできるストリームの最大数は、DXVAHD_VPDEVCAPS構造体の MaxInputStreams メンバーに指定されます。

OutputIndex

出力フレームの 0 から始まるインデックス番号。 「解説」を参照してください。

InputFrameOrField

入力フレームまたはフィールドの 0 から始まるインデックス番号。 「解説」を参照してください。

PastFrames

過去の参照フレームの数。 この値は、DXVAHD_VPCAPS構造体の PastFrames メンバーの値以下である必要があります。

FutureFrames

将来の参照フレームの数。 この値は、DXVAHD_VPCAPS構造体の FutureFrames メンバーの値以下である必要があります。

ppPastSurfaces

呼び出し元によって割り当てられた IDirect3DSurface9 ポインターの配列へのポインター。 この配列には、ビデオ処理操作の過去の参照フレームが含まれています。 配列内の要素の数は、 PastFrames メンバーの値と等しくなります。

pInputSurface

現在の入力フレームを含む Microsoft Direct3D サーフェスの IDirect3DSurface9 インターフェイスへのポインター。

ppFutureSurfaces

呼び出し元によって割り当てられた IDirect3DSurface9 ポインターの配列へのポインター。 この配列には、ビデオ処理操作の将来の参照フレームが含まれています。 配列内の要素の数は、 FutureFrames メンバーの値と等しくなります。

解説

入力サーフェス

Direct3D サーフェスは、DXVAHD_VPDEVCAPS構造体の InputPool メンバーによって指定されたメモリ プールに割り当てる必要があります。 次のサーフェスタイプを使用できます。 過去と将来の参照フレームは、最も古いものから最新のものまで、一時的な順序で配列に配置する必要があります。 たとえば、 T が現在の入力フレームの場合、配列は次のように並べ替えられます。
  • ppPastSurfaces: { ..., T-3, T-2, T-1 }
  • ppInputSurface: T
  • ppFutureSurfaces: { T+1, T+2, T+3, ... }
DXVAHD_VPCAPS構造体は、最適なインターレース解除品質を得るために必要な参照フレームの数を指定します。 アプリケーションで提供される参照フレームが少ない場合、デバイスはより単純なインターレース解除アルゴリズムにフォールバックします。 参照フレームが指定されていない場合、デバイスは bob deinterlacing を使用できます。 アプリケーションで提供される参照フレームが少なくなる場合を次に示します。
  • ビデオ シーケンスの先頭または末尾
  • プログレッシブ入力を使用
  • プログレッシブ入力とインターレース入力の間の遷移中
  • 高いインターレース品質を必要としないサブストリームの場合
  • フレームのドロップ中

入力インデックスと出力インデックス

OutputIndex メンバーと InputFrameOrField メンバーは、入力フレームまたはフィールドを出力フレームと関連付けるために使用されます。 OutputIndex メンバーの値は循環型であり、各サイクルの後に 0 にリセットされます。

パターンの例を次に示します。

  • 通常の速度でのプログレッシブ ビデオ。 各入力フレームは、1 つの出力フレームを生成します。
    • 出力インデックス: 0、0、0、0、...
    • 入力インデックス: 0、1、2、3、...
  • 通常のレートでインターレースされたビデオ。 各インターレース フレーム (2 つのフィールド) では、2 つの出力フレームが生成されます。
    • 出力インデックス: 0、1、0、1、...
    • 入力インデックス: 0、1、2、3、...
  • 2/1出力レートのプログレッシブビデオ。 各入力フレームは、1 つの出力フレームを生成します。
    • 出力インデックス: 0、1、0、1、...
    • 入力インデックス: 0、1、2、3、...
  • 1/2出力レートでインターレースされたビデオ。 インターレースされた各フレームは、1 つの出力フレームを生成します。 (2 つのフィールドがブレンドされ、1 つのフレームが作成されます)。
    • 出力インデックス: 0、0、0、0、...
    • 入力インデックス: 0、2、4、6、...

要件

   
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
Header dxvahd.h

関連項目

DXVA-HD

Direct3D ビデオ構造

Media Foundation Structures