Compartir a través de


estructura DXVAHD_STREAM_DATA (dxvahd.h)

Contiene datos por secuencia para el método IDXVAHD_VideoProcessor::VideoProcessBltHD .

Sintaxis

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

Miembros

Enable

Especifica si esta secuencia de entrada está habilitada. Si el valor es TRUE, el método VideoProcessBltHD divide esta secuencia en la superficie de salida. De lo contrario, la secuencia no se divide. El número máximo de secuencias que se pueden habilitar a la vez se da en el miembro MaxInputStreams de la estructura DXVAHD_VPDEVCAPS .

OutputIndex

Número de índice de base cero del marco de salida. Vea la sección Comentarios.

InputFrameOrField

Número de índice de base cero del marco o campo de entrada. Vea la sección Comentarios.

PastFrames

Número de marcos de referencia anteriores. Este valor debe ser menor o igual que el valor del miembro PastFrames de la estructura DXVAHD_VPCAPS .

FutureFrames

Número de fotogramas de referencia futuros. Este valor debe ser menor o igual que el valor del miembro FutureFrames de la estructura DXVAHD_VPCAPS .

ppPastSurfaces

Puntero a una matriz de punteros IDirect3DSurface9 , asignados por el autor de la llamada. Esta matriz contiene los fotogramas de referencia anteriores para la operación de procesamiento de vídeo. El número de elementos de la matriz es igual al valor del miembro PastFrames .

pInputSurface

Puntero a la interfaz IDirect3DSurface9 de una superficie de Microsoft Direct3D que contiene el marco de entrada actual.

ppFutureSurfaces

Puntero a una matriz de punteros IDirect3DSurface9 , asignados por el autor de la llamada. Esta matriz contiene los fotogramas de referencia futuros para la operación de procesamiento de vídeo. El número de elementos de la matriz es igual al valor del miembro FutureFrames .

Comentarios

Superficies de entrada

Las superficies de Direct3D deben asignarse en el grupo de memoria especificado por el miembro InputPool de la estructura DXVAHD_VPDEVCAPS . Se pueden usar los siguientes tipos de superficie: Los marcos de referencia pasados y futuros deben colocarse en las matrices en orden temporal, de más antiguo a más reciente. Por ejemplo, si T es el marco de entrada actual, las matrices se ordenarían de la siguiente manera:
  • ppPastSurfaces: { ..., T-3, T-2, T-1 }
  • ppInputSurface: T
  • ppFutureSurfaces: { T+1, T+2, T+3, ... }
La estructura DXVAHD_VPCAPS especifica el número de fotogramas de referencia necesarios para obtener la mejor calidad de desinterlacing. Si la aplicación proporciona menos fotogramas de referencia, el dispositivo volverá a algoritmos de desinterlacación más sencillos. Si no se proporcionan fotogramas de referencia, el dispositivo puede usar el desinterlacing bob. Estos son algunos casos en los que una aplicación podría proporcionar menos marcos de referencia:
  • Al principio o al final de la secuencia de vídeo
  • Con entrada progresiva
  • Durante una transición entre la entrada progresiva e entrelazada
  • Para una substream que no requiere una alta calidad de desinterlazado
  • Al quitar fotogramas

Índices de entrada y salida

Los miembros OutputIndex y InputFrameOrField se usan para correlacionar fotogramas de entrada o campos con marcos de salida. El valor del miembro OutputIndex es cíclico y se restablece a cero después de cada ciclo.

Estos son algunos patrones de ejemplo:

  • Vídeo progresivo a velocidad normal. Cada fotograma de entrada genera un fotograma de salida.
    • Índice de salida: 0, 0, 0, 0, ...
    • Índice de entrada: 0, 1, 2, 3, ...
  • Vídeo entrelazado a velocidad normal. Cada marco entrelazado (dos campos) genera dos fotogramas de salida.
    • Índice de salida: 0, 1, 0, 1, ...
    • Índice de entrada: 0, 1, 2, 3, ...
  • Vídeo progresivo a la velocidad de salida de 2/1. Cada fotograma de entrada genera un fotograma de salida.
    • Índice de salida: 0, 1, 0, 1, ...
    • Índice de entrada: 0, 1, 2, 3, ...
  • Vídeo entrelazado a una velocidad de salida de 1/2. Cada fotograma entrelazado genera un fotograma de salida. (Los dos campos se combinan para crear un marco).
    • Índice de salida: 0, 0, 0, 0, ...
    • Índice de entrada: 0, 2, 4, 6, ...

Requisitos

   
Cliente mínimo compatible Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 R2 [solo aplicaciones de escritorio]
Encabezado dxvahd.h

Consulte también

DXVA-HD

Estructuras de vídeo de Direct3D

Estructuras de Media Foundation