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) |