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:- Uma superfície de vídeo do tipo DXVAHD_SURFACE_TYPE_VIDEO_INPUT ou DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE. Consulte IDXVAHD_Device::CreateVideoSurface.
- Uma superfície de destino de renderização do decodificador do tipo DXVA2_VideoDecoderRenderTarget. Consulte IDirectXVideoAccelerationService::CreateSurface.
- Uma superfície simples fora da tela.
- ppPastSurfaces: { ..., T-3, T-2, T-1 }
- ppInputSurface: T
- ppFutureSurfaces: { T+1, T+2, T+3, ... }
- 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 |