estructura KS_VIDEOINFOHEADER2 (ksmedia.h)

En la estructura de KS_VIDEOINFOHEADER2 se describen los detalles de una secuencia de vídeo, incluida la configuración de bob o weave, la protección de copia y la relación de aspecto de píxeles.

Sintaxis

typedef struct tagKS_VIDEOINFOHEADER2 {
  RECT                rcSource;
  RECT                rcTarget;
  DWORD               dwBitRate;
  DWORD               dwBitErrorRate;
  REFERENCE_TIME      AvgTimePerFrame;
  DWORD               dwInterlaceFlags;
  DWORD               dwCopyProtectFlags;
  DWORD               dwPictAspectRatioX;
  DWORD               dwPictAspectRatioY;
  union {
    DWORD dwControlFlags;
    DWORD dwReserved1;
  };
  DWORD               dwReserved2;
  KS_BITMAPINFOHEADER bmiHeader;
} KS_VIDEOINFOHEADER2, *PKS_VIDEOINFOHEADER2;

Miembros

rcSource

Especifica un rectángulo de recorte que selecciona la parte de la señal de vídeo activa que se va a usar.

rcTarget

Especifica un rectángulo que indica qué parte del búfer de destino se va a usar.

dwBitRate

Especifica un valor que indica la velocidad de datos adecuada de la secuencia de vídeo, en bits por segundo.

dwBitErrorRate

Especifica un valor que indica la tasa de errores de datos de la secuencia de vídeo, en errores de bits por segundo.

AvgTimePerFrame

Especifica el tiempo medio por fotograma, en unidades de 100 nanosegundos.

dwInterlaceFlags

Especifica información de intercalación. Las marcas no definidas deben establecerse en cero o se puede rechazar la conexión. Este miembro se puede establecer en uno o varios valores or lógicos definidos en ksmedia.h:

Marca Descripción
KS_INTERLACE_IsInterlaced Indica una secuencia de interlación. Si es 0, los demás bits de KS_INTERLACE_Xxx son irrelevantes.
KS_INTERLACE_1FieldPerSample Indica un campo por ejemplo multimedia. Si es cero, indica dos campos por ejemplo multimedia.
KS_INTERLACE_Field1First Indica que el campo 1 es primero. Si es cero, indica que el campo 2 es primero. El campo superior de PAL es el campo 1, el campo superior de NTSC es el campo 2.
KS_INTERLACE_UNUSED No utilizado
KS_INTERLACE_FieldPatternMask Indica los bits usados para especificar el patrón de campo.
KS_INTERLACE_FieldPatField1Only Indica que una secuencia nunca contiene un campo 2.
KS_INTERLACE_FieldPatField2Only Indica que una secuencia nunca contiene un campo 1.
KS_INTERLACE_FieldPatBothRegular Indica que habrá un campo 2 para cada campo 1.
KS_INTERLACE_FieldPatBothIrregular Indica un patrón aleatorio de campo 1s y campo 2.
KS_INTERLACE_DisplayModeMask No es válido para la captura de vídeo.
KS_INTERLACE_DisplayModeBobOnly No es válido para la captura de vídeo.
KS_INTERLACE_DisplayModeWeaveOnly No es válido para la captura de vídeo.
KS_INTERLACE_DisplayModeBobOrWeave No es válido para la captura de vídeo.

dwCopyProtectFlags

Especifica un valor de KSCOPYPROTECTRestrictDuplication (0x00000001) para indicar si se debe restringir la duplicación de una secuencia. Si no está definido, especifique cero o se rechazará la conexión.

dwPictAspectRatioX

Especifica la dimensión x de la relación de aspecto de la imagen (por ejemplo, 16 para una pantalla de 16 × 9). El valor se expresa en pulgadas por pulgadas, no píxeles por píxeles.

dwPictAspectRatioY

Especifica la dimensión y de la relación de aspecto de la imagen (por ejemplo, 9 para 16 × pantalla 9). El valor se expresa en pulgadas por pulgadas, no píxeles por píxeles.

dwControlFlags

En los sistemas operativos anteriores a Windows Vista, este miembro se denominaba dwReserved1 y era necesario que fuera cero. En Windows Vista, dwReserved1 se combinó en una unión con un nuevo miembro denominado dwControlFlags. Si se usa, dwControlFlags contiene un OR bit a bit de las marcas de la tabla siguiente.

Valor Descripción
AMCONTROL_USED Indica que se usan las marcas dwControlFlags .
AMCONTROL_PAD_TO_4x3 La imagen debe rellenarse y mostrarse en un área de 4 x 3.
AMCONTROL_PAD_TO_16x9 La imagen debe rellenarse y mostrarse en un área de 16 x 9.
AMCONTROL_COLORINFO_PRESENT La información de color adicional se encuentra en los 24 bits superiores del campo dwControlFlags .

La marca AMCONTROL_USED proporciona compatibilidad con versiones anteriores con filtros anteriores. Si no se establece la marca AMCONTROL_USED, se deben omitir los bits restantes de este campo. Si un filtro usa otras marcas, debe establecer la marca AMCONTROL_USED.

Los descodificadores usan las dos marcas de AMCONTROL_PAD_xxx para determinar la relación de aspecto del rectángulo de salida.

Si se establece la marca AMCONTROL_COLORINFO_PRESENT, significa que los 24 bits superiores del campo dwControlFlags se tratan como una estructura DXVA_ExtendedFormat .

Vea la sección Comentarios más adelante en este tema para obtener más información sobre dwControlFlags.

dwReserved1

Este miembro es por compatibilidad con versiones anteriores. Consulte dwControlFlags para obtener más información.

dwReserved2

Reservado para uso del sistema. Debe establecerse en cero o se rechazará la conexión.

bmiHeader

Indica una estructura KS_BITMAPINFOHEADER que contiene información de color y dimensión para el mapa de bits de imagen de vídeo.

Comentarios

Para describir una secuencia de vídeo sin bob o guardar la configuración, use KS_VIDEOINFOHEADER.

La estructura de KS_VIDEOINFOHEADER2 es idéntica a la estructura de VIDEOINFOHEADER2 DirectShow.

Los minicontroladores de captura que generan campos de vídeo (en lugar de fotogramas) deben usar la estructura KS_DATARANGE_VIDEO2 , que contiene la estructura KS_VIDEOINFOHEADER2.

Un filtro de origen puede solicitar que el filtro receptor tome solo una sección del vídeo proporcionando valores que definan eficazmente un rectángulo de recorte en el miembro rcSource . Sin embargo, si el filtro receptor no comprueba el rectángulo de recorte en la conexión, el filtro receptor simplemente representa todo el vídeo, ignorando eficazmente cualquier información de recorte que se pasa del filtro de origen al filtro receptor.

Lo ideal es que un filtro receptor compruebe rcSource y si el filtro receptor no admite la extracción de imágenes y el rectángulo no está vacío, rechaza la conexión. Un filtro debe usar la función Win32 SetRectEmpty para restablecer un rectángulo en todos los ceros (y establecer IsRectEmpty en más adelante comprobar el rectángulo).

El miembro rcTarget especifica el rectángulo de destino del vídeo. La mayoría de los filtros de origen establecen este miembro en todos los ceros. Un filtro de bajada puede solicitar que el vídeo se coloque en un área determinada de los búferes que proporciona. En este caso, llama a la función Win32 QueryAccept con un destino no vacío.

Si la marca AMCONTROL_COLORINFO_PRESENT se establece en el miembro dwControlFlags , puede convertir el valor dwControlFlags en una estructura DXVA_ExtendedFormat para tener acceso a la información de color extendida. Para obtener más información, consulte VIDEOINFOHEADER2.

Requisitos

Requisito Valor
Header ksmedia.h (incluye Ksmedia.h)

Consulte también

KS_BITMAPINFOHEADER

KS_DATARANGE_VIDEO2

KS_VIDEOINFOHEADER