estructura KS_VBI_FRAME_INFO (ksmedia.h)

La estructura KS_VBI_FRAME_INFO extiende la estructura de KSSTREAM_HEADER para flujos de intervalo en blanco vertical (VBI).

Sintaxis

typedef struct tagKS_VBI_FRAME_INFO {
  ULONG                  ExtendedHeaderSize;
  DWORD                  dwFrameFlags;
  LONGLONG               PictureNumber;
  LONGLONG               DropCount;
  DWORD                  dwSamplingFrequency;
  KS_TVTUNER_CHANGE_INFO TvTunerChangeInfo;
  KS_VBIINFOHEADER       VBIInfoHeader;
} KS_VBI_FRAME_INFO, *PKS_VBI_FRAME_INFO;

Miembros

ExtendedHeaderSize

Especifica el tamaño de esta estructura.

dwFrameFlags

Especifica marcas que indican información adicional sobre el marco capturado. Durante la captura, el minidriver establece este miembro en uno de los siguientes valores definidos en ksmedia.h:

Marca Significado
KS_VBI_FLAG_FIELD1 Indica el primer campo de una secuencia de dos campos.
KS_VBI_FLAG_FIELD2 Indica el segundo campo de una secuencia de dos campos.
KS_VBI_FLAG_MV_PRESENT Indica el esquema de protección de Macrovision
KS_VBI_FLAG_MV_HARDWARE Indica la compatibilidad con hardware de Macrovision.
KS_VBI_FLAG_MV_DETECTED Indica que se detectó macrovision
KS_VBI_FLAG_TVTUNER_CHANGE Indica que la estructura de miembros TvTunerChangeInfo contiene datos válidos.
KS_VBI_FLAG_VBIINFOHEADER_CHANGE Indica que la estructura de miembros VBIInfoHeader contiene datos válidos.

PictureNumber

Especifica un recuento que representa el número de imagen actual. Inicialice o actualice este valor en la transición a KSSTATE_ACQUIRE.

DropCount

Especifica el número de imágenes que no se capturaron. Al capturar vídeo, el minidriver establece este miembro. Este contador debe incrementarse siempre que se deba capturar un marco, pero no lo era; esta condición suele surgir cuando no había búferes disponibles durante la captura. Inicialice o actualice este valor en la transición a KSSTATE_ACQUIRE.

dwSamplingFrequency

Especifica la frecuencia de muestreo en hercios (Hz).

TvTunerChangeInfo

Especifica información sobre el origen de datos VBI actual, incluido el código de país o región, el estándar de vídeo analógico y el canal. Este miembro solo es válido si dwFrameFlags especifica la marca KS_VBI_FLAG_TVTUNER_CHANGE.

VBIInfoHeader

Especifica información sobre el origen de datos VBI actual, incluida la línea de inicio, la línea final, la frecuencia de muestreo y el estándar de vídeo. Este miembro solo es válido si dwFrameFlags especifica la marca KS_VBI_FLAG_VBIINFOHEADER_CHANGE.

Comentarios

La estructura de KS_VBI_FRAME_INFO proporciona una manera de devolver información sobre un marco capturado, así como proporcionar información de optimización a los descodificadores de VBI.

El recuento de miembros PictureNumber representa el recuento de la imagen actual en función del formato usado para abrir la secuencia. Este recuento se calcula de una de estas dos maneras, dependiendo del dispositivo:

  1. Mida el tiempo desde que se inició la secuencia y divida por la duración del fotograma. Este método es adecuado para los dispositivos que no proporcionan su propio reloj. Por ejemplo: PictureNumber = (CurrentStreamTime − StartStreamTime) / FrameDuration

  2. Agregue el recuento de fotogramas capturados y el recuento de fotogramas quitados. Este método es adecuado para los dispositivos que proporcionan su propio reloj. Por ejemplo: PictureNumber = FramesCaptured + FramesDropped

Al calcular PictureNumber y DropCount, es importante usar la duración del fotograma especificada cuando se abrió la secuencia, lo que puede no coincidir necesariamente con la velocidad a la que el dispositivo está produciendo imágenes realmente. Por ejemplo, una cámara USB solo puede producir imágenes a 7,5 fps, pero un cliente podría abrir la secuencia a 8 fps. En este caso, todos los cálculos deben usar el número de 8 fps. Para obtener más información sobre cómo actualizar PictureNumber y DropCount , consulte Captura de vídeo.

El miembro dwSamplingFrequency no lo usan los códecs VBI de Microsoft, pero otros códecs WDM pueden usarse. Debe ser el mismo que VBIInfoHeader. Miembro SamplingFrequency . Un minidriver indica un cambio en la frecuencia de muestreo estableciendo el bit de KS_VBI_FLAG_VBIINFOHEADER_CHANGE en el miembro dwFrameFlags y rellenando todos los miembros, incluido dwSamplingFrequency, en la estructura VBIInfoHeader .

Requisitos

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

Consulte también

KSSTREAM_HEADER

KS_TVTUNER_CHANGE_INFO

KS_VBIINFOHEADER