estructura KS_VIDEO_STREAM_CONFIG_CAPS (ksmedia.h)
La estructura de KS_VIDEO_STREAM_CONFIG_CAPS describe la configuración y las capacidades de una secuencia de vídeo, incluido el estándar de vídeo analógico (por ejemplo, NTSC, PAL o SECAM), el escalado y las capacidades de recorte; velocidades de fotogramas mínimas y máximas; y velocidades de datos mínimas y máximas.
Sintaxis
typedef struct _KS_VIDEO_STREAM_CONFIG_CAPS {
GUID guid;
ULONG VideoStandard;
SIZE InputSize;
SIZE MinCroppingSize;
SIZE MaxCroppingSize;
int CropGranularityX;
int CropGranularityY;
int CropAlignX;
int CropAlignY;
SIZE MinOutputSize;
SIZE MaxOutputSize;
int OutputGranularityX;
int OutputGranularityY;
int StretchTapsX;
int StretchTapsY;
int ShrinkTapsX;
int ShrinkTapsY;
LONGLONG MinFrameInterval;
LONGLONG MaxFrameInterval;
LONG MinBitsPerSecond;
LONG MaxBitsPerSecond;
} KS_VIDEO_STREAM_CONFIG_CAPS, *PKS_VIDEO_STREAM_CONFIG_CAPS;
Miembros
guid
GUID que especifica el tipo de formato de vídeo. Los valores posibles son:
KSDATAFORMAT_SPECIFIER_VIDEOINFO
KSDATAFORMAT_SPECIFIER_VIDEOINFO2
KSDATAFORMAT_SPECIFIER_ANALOGVIDEO
KSDATAFORMAT_SPECIFIER_VBI
KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO
KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO
Este GUID es idéntico a la enumeración directShow AM_MEDIA_TYPE. Para obtener más información sobre AM_MEDIA_TYPE, consulte la documentación del SDK de DirectX.
VideoStandard
Especifica los estándares de vídeo analógicos admitidos por la secuencia. Este miembro se puede establecer en uno o varios valores (lógicamente ORed) de la enumeración KS_AnalogVideoStandard .
InputSize
Especifica el tamaño de la señal entrante. InputSize indica el ancho y alto del rectángulo de imagen, en píxeles. Esta es la señal más grande que el filtro puede digitalizar con cada píxel restante único.
MinCroppingSize
Especifica el rectángulo de recorte más pequeño permitido, tal como se especifica en el miembro rcSource de la estructura KS_VIDEOINFOHEADER , que está asociado al miembro DataRange .
MaxCroppingSize
Especifica el rectángulo de recorte más grande permitido, tal como se especifica en el miembro rcSource de la estructura KS_VIDEOINFOHEADER, que está asociado al miembro DataRange .
CropGranularityX
Especifica la granularidad horizontal del tamaño de recorte. Por ejemplo, se pueden especificar anchos válidos como incluso múltiplo de cuatro.
CropGranularityY
Especifica la granularidad vertical del tamaño de recorte. Por ejemplo, se pueden especificar alturas válidas como incluso múltiplo de cuatro.
CropAlignX
Especifica la alineación horizontal del rectángulo de recorte dentro de InputSize. Por ejemplo, el minidriver podría especificar que los rectángulos válidos deben iniciarse en un límite que sea un múltiplo de cuatro.
CropAlignY
Especifica la alineación vertical del rectángulo de recorte dentro de InputSize. Por ejemplo, el minidriver podría especificar que los rectángulos válidos deben iniciarse en un límite que sea un múltiplo de cuatro.
MinOutputSize
Especifica el mapa de bits más pequeño que este pin puede producir.
MaxOutputSize
Especifica el mapa de bits más grande que este pin puede producir.
OutputGranularityX
Especifica la granularidad del ancho del mapa de bits de salida.
OutputGranularityY
Especifica la granularidad del alto del mapa de bits de salida.
StretchTapsX
Especifica uno de los valores siguientes para indicar cómo el filtro puede ajustar el ancho de la imagen.
Valor | Significado |
---|---|
0 | El filtro no se puede estirar. |
1 | El filtro usa el doble de píxeles para lograr el ajuste. |
2 | El filtro usa interpolación (2 pulsaciones). |
3 | El filtro usa una forma de interpolación de orden superior (más suave). |
StretchTapsY
Especifica uno de los valores siguientes para indicar cómo el filtro puede ajustar el alto de la imagen.
Valor | Significado |
---|---|
0 | El filtro no se puede estirar. |
1 | El filtro usa el doble de píxeles para lograr el ajuste. |
2 | El filtro usa interpolación (2 pulsaciones). |
3 | El filtro usa una forma de interpolación de orden superior (más suave). |
ShrinkTapsX
Especifica uno de los valores siguientes para indicar cómo el filtro puede reducir el ancho de la imagen.
Valor | Significado |
---|---|
0 | El filtro no se puede reducir. |
1 | El filtro elimina algunas filas de píxeles para lograr la reducción. |
2 | El filtro usa interpolación (2 pulsaciones). |
3 | El filtro usa una forma de interpolación de orden superior (más suave). |
ShrinkTapsY
Especifica uno de los valores siguientes para indicar cómo el filtro puede reducir el alto de la imagen.
Valor | Significado |
---|---|
0 | El filtro no se puede reducir. |
1 | El filtro elimina algunas columnas de píxeles para lograr la reducción. |
2 | El filtro usa interpolación (2 pulsaciones). |
3 | El filtro usa una forma de interpolación de orden superior (más suave). |
MinFrameInterval
Especifica la velocidad de fotogramas mínima permitida. Este valor solo se aplica a los filtros de captura.
MaxFrameInterval
Especifica la velocidad de fotogramas máxima permitida. Este valor solo se aplica a los filtros de captura.
MinBitsPerSecond
Especifica la velocidad de datos mínima, en bits por segundo, que este pin puede producir.
MaxBitsPerSecond
Especifica la velocidad de datos máxima, en bits por segundo, que este pin puede producir.
Comentarios
La estructura de KS_VIDEO_STREAM_CONFIG_CAPS es idéntica a la estructura de VIDEO_STREAM_CONFIG_CAPS DirectShow.
Es importante comprender las relaciones entre los miembros de esta estructura. Por ejemplo, supongamos los siguientes valores para algunos de los miembros de la estructura:
MinCroppingSize = (160, 120)
MaxCroppingSize = (320, 240)
CropGranularityX = 4
CropGranularityY = 8
Estos valores indican que los tamaños de recorte válidos comienzan en MinCroppingSize y aumentan en pasos en la dirección x por CropGranularityX y en la dirección y por CropGranularityY. En este caso, el valor x puede ser de 160 a 320 píxeles, en los pasos de cuatro, y el valor y puede estar en cualquier lugar de 120 a 240 píxeles en pasos de ocho.
En el escenario de ejemplo, algunos de los tamaños válidos son:
160 × 120, 164 × 120, 168 × 120, 172 × 120, etc.
160 × 128, 164 × 128, 168 × 128, 172 × 128, etc.
160 × 136, 164 × 136, 168 × 136, 172 × 136, etc.
CropAlignX y CropAlignY indican dónde se puede ubicar el rectángulo de recorte dentro del rectángulo de tamaño de entrada. Dado un rectángulo de recorte de 160 × 120 y un valor de 2 para CropAlignX y un valor de 4 para CropAlignY, algunos de los valores válidos para el miembro rcSource de la estructura KS_VIDEOINFOHEADER serían:
(0, 0, 160, 120)
(2, 0, 162, 120)
(2, 4, 162, 124)
(2, 8, 162, 128)
Para un rectángulo de recorte de 320 × 240 y los mismos valores de alineación de recorte, (2, 4, 322, 244) es un ejemplo de los muchos rectángulos válidos.
Los miembros MinCroppingSize, MaxCroppingSize, CropGranularityX, CropGranularityY, CropAlignX y CropAlignY descritos anteriormente funcionan juntos para especificar qué valores de rcSource son válidos para la estructura de KS_VIDEOINFOHEADER que describe el tipo de medio del pin de salida. Los miembros de estructura restantes (MinOutputSize, MaxOutputSize, OutputGranularityX y OutputGranularityY) describen los miembros biWidth y biHeight de la estructura KS_BITMAPINFOHEADER , que se encuentra en el tipo de medio del pin KS_VIDEOINFOHEADER estructura.
Requisitos
Requisito | Valor |
---|---|
Header | ksmedia.h (incluya Ksmedia.h) |