Compartilhar via


estrutura DXVAHD_STREAM_DATA (dxvahd.h)

Contém dados por fluxo para o método IDXVAHD_VideoProcessor::VideoProcessBltHD .

Sintaxe

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

Membros

Enable

Especifica se esse fluxo de entrada está habilitado. Se o valor for TRUE, o método VideoProcessBltHD exibirá esse fluxo na superfície de saída. Caso contrário, o fluxo não será blitted. O número máximo de fluxos que podem ser habilitados ao mesmo tempo é fornecido no membro MaxInputStreams da estrutura DXVAHD_VPDEVCAPS .

OutputIndex

O número de índice baseado em zero do quadro de saída. Consulte Observações.

InputFrameOrField

O número de índice baseado em zero do quadro ou campo de entrada. Consulte Observações.

PastFrames

O número de quadros de referência anteriores. Esse valor deve ser menor ou igual ao valor do membro PastFrames da estrutura DXVAHD_VPCAPS .

FutureFrames

O número de quadros de referência futuros. Esse valor deve ser menor ou igual ao valor do membro FutureFrames da estrutura DXVAHD_VPCAPS .

ppPastSurfaces

Um ponteiro para uma matriz de ponteiros IDirect3DSurface9 , alocados pelo chamador. Essa matriz contém os quadros de referência anteriores para a operação de processamento de vídeo. O número de elementos na matriz é igual ao valor do membro PastFrames .

pInputSurface

Um ponteiro para a interface IDirect3DSurface9 de uma superfície do Microsoft Direct3D que contém o quadro de entrada atual.

ppFutureSurfaces

Um ponteiro para uma matriz de ponteiros IDirect3DSurface9 , alocados pelo chamador. Essa matriz contém os quadros de referência futuros para a operação de processamento de vídeo. O número de elementos na matriz é igual ao valor do membro FutureFrames .

Comentários

Superfícies de entrada

As superfícies direct3D devem ser alocadas no pool de memória especificado pelo membro InputPool da estrutura DXVAHD_VPDEVCAPS . Os seguintes tipos de superfície podem ser usados: Os quadros de referência passados e futuros devem ser colocados nas matrizes em ordem temporal, do mais antigo ao mais recente. Por exemplo, se T for o quadro de entrada atual, as matrizes serão ordenadas da seguinte maneira:
  • ppPastSurfaces: { ..., T-3, T-2, T-1 }
  • ppInputSurface: T
  • ppFutureSurfaces: { T+1, T+2, T+3, ... }
A estrutura DXVAHD_VPCAPS especifica o número de quadros de referência necessários para obter a melhor qualidade de desinterlacagem. Se o aplicativo fornecer menos quadros de referência, o dispositivo retornará para algoritmos de desinterlacização mais simples. Se nenhum quadro de referência for fornecido, o dispositivo poderá usar bob deinterlacing. Aqui estão alguns casos em que um aplicativo pode fornecer menos quadros de referência:
  • No início ou no final da sequência de vídeo
  • Com entrada progressiva
  • Durante uma transição entre entrada progressiva e entrelaçada
  • Para um substream que não requer alta qualidade de desinterlacagem
  • Ao soltar quadros

Índices de entrada e saída

Os membros OutputIndex e InputFrameOrField são usados para correlacionar quadros de entrada ou campos com quadros de saída. O valor do membro OutputIndex é cíclico e é redefinido para zero após cada ciclo.

Aqui estão alguns exemplos de padrões:

  • Vídeo progressivo no ritmo normal. Cada quadro de entrada produz um quadro de saída.
    • Índice de saída: 0, 0, 0, 0, ...
    • Índice de entrada: 0, 1, 2, 3, ...
  • Vídeo entrelaçado no ritmo normal. Cada quadro entrelaçado (dois campos) produz dois quadros de saída.
    • Índice de saída: 0, 1, 0, 1, ...
    • Índice de entrada: 0, 1, 2, 3, ...
  • Vídeo progressivo a uma taxa de saída de 2/1. Cada quadro de entrada produz um quadro de saída.
    • Índice de saída: 0, 1, 0, 1, ...
    • Índice de entrada: 0, 1, 2, 3, ...
  • Vídeo entrelaçado a uma taxa de saída de 1/2. Cada quadro entrelaçado produz um quadro de saída. (Os dois campos são combinados para criar um quadro.)
    • Índice de saída: 0, 0, 0, 0, ...
    • Índice de entrada: 0, 2, 4, 6, ...

Requisitos

   
Cliente mínimo com suporte Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Cabeçalho dxvahd.h

Confira também

DXVA-HD

Estruturas de vídeo direct3D

Estruturas do Media Foundation