Freigeben über


KS_VBI_FRAME_INFO Struktur (ksmedia.h)

Die KS_VBI_FRAME_INFO-Struktur erweitert die KSSTREAM_HEADER-Struktur für VBI-Datenströme (Vertical Blanking Interval).

Syntax

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;

Member

ExtendedHeaderSize

Gibt die Größe dieser Struktur an.

dwFrameFlags

Gibt Flags an, die zusätzliche Informationen zum erfassten Frame angeben. Während der Aufzeichnung legt der Minidriver diesen Member auf einen der folgenden Werte fest, die in ksmedia.h definiert sind:

Flag Bedeutung
KS_VBI_FLAG_FIELD1 Gibt das erste Feld einer Zweifeldsequenz an.
KS_VBI_FLAG_FIELD2 Gibt das zweite Feld einer Zweifeldsequenz an.
KS_VBI_FLAG_MV_PRESENT Gibt das Makrovision-Schutzschema an.
KS_VBI_FLAG_MV_HARDWARE Gibt die Unterstützung der Macrovision-Hardware an.
KS_VBI_FLAG_MV_DETECTED Gibt an, dass Macrovision erkannt wurde.
KS_VBI_FLAG_TVTUNER_CHANGE Gibt an, dass die TvTunerChangeInfo-Memberstruktur gültige Daten enthält.
KS_VBI_FLAG_VBIINFOHEADER_CHANGE Gibt an, dass die VBIInfoHeader-Memberstruktur gültige Daten enthält.

PictureNumber

Gibt eine Anzahl an, die die aktuelle Bildnummer darstellt. Initialisieren oder aktualisieren Sie diesen Wert beim Übergang in KSSTATE_ACQUIRE.

DropCount

Gibt die Anzahl von Bildern an, die nicht erfasst wurden. Beim Aufzeichnen von Videos legt der Minidriver diesen Member fest. Dieser Indikator sollte immer dann erhöht werden, wenn ein Frame erfasst werden sollte, aber nicht. Diese Bedingung tritt normalerweise auf, wenn während der Erfassung keine Puffer verfügbar waren. Initialisieren oder aktualisieren Sie diesen Wert beim Übergang in KSSTATE_ACQUIRE.

dwSamplingFrequency

Gibt die Samplingfrequenz in Hertz (Hz) an.

TvTunerChangeInfo

Gibt Informationen zur aktuellen VBI-Datenquelle an, einschließlich Länder-/Regionscode, analogem Videostandard und Kanal. Dieser Member ist nur gültig, wenn dwFrameFlags das flag KS_VBI_FLAG_TVTUNER_CHANGE angibt.

VBIInfoHeader

Gibt Informationen zur aktuellen VBI-Datenquelle an, einschließlich Startzeile, Endzeile, Samplinghäufigkeit und Videostandard. Dieser Member ist nur gültig, wenn dwFrameFlags das KS_VBI_FLAG_VBIINFOHEADER_CHANGE-Flag angibt.

Hinweise

Die KS_VBI_FRAME_INFO-Struktur bietet eine Möglichkeit, Informationen zu einem erfassten Frame zurückzugeben und Optimierungsinformationen für VBI-Decoder bereitzustellen.

Die PictureNumber-Memberanzahl stellt die Anzahl des aktuellen Bilds basierend auf dem Format dar, das zum Öffnen des Datenstroms verwendet wird. Diese Anzahl wird je nach Gerät auf zwei Arten berechnet:

  1. Messen Sie die Zeit seit dem Start des Datenstroms, und dividieren Sie durch die Framedauer. Diese Methode eignet sich für Geräte, die keine eigene Uhr bereitstellen. Beispiel: PictureNumber = (CurrentStreamTime − StartStreamTime) / FrameDuration

  2. Fügen Sie die Anzahl der erfassten Frames und die Anzahl der gelöschten Frames hinzu. Diese Methode eignet sich für Geräte, die eine eigene Uhr bereitstellen. Beispiel: PictureNumber = FramesCaptured + FramesDropped

Bei der Berechnung von PictureNumber und DropCount ist es wichtig, die beim Öffnen des Datenstroms angegebene Framedauer zu verwenden, die möglicherweise nicht unbedingt mit der Rate übereinstimmt, mit der das Gerät tatsächlich Bilder erzeugt. Beispielsweise kann eine USB-Kamera nur Bilder mit 7,5 fps erzeugen, aber ein Client könnte den Stream mit 8 fps öffnen. In diesem Fall sollten alle Berechnungen die 8 fps-Zahl verwenden. Weitere Informationen zum Aktualisieren von PictureNumber und DropCount finden Sie unter Videoaufnahme.

Der dwSamplingFrequency-Member wird nicht von Microsoft VBI-Codecs verwendet, kann aber von anderen WDM-Codecs verwendet werden. Er muss mit dem VBIInfoHeader identisch sein. SamplingFrequency-Member . Ein Minidriver gibt eine Änderung der Stichprobenhäufigkeit an, indem das KS_VBI_FLAG_VBIINFOHEADER_CHANGE Bit im dwFrameFlags-Element festgelegt und alle Elemente, einschließlich dwSamplingFrequency, in der VBIInfoHeader-Struktur ausgefüllt werden.

Anforderungen

Anforderung Wert
Header ksmedia.h (include Ksmedia.h)

Weitere Informationen

KSSTREAM_HEADER

KS_TVTUNER_CHANGE_INFO

KS_VBIINFOHEADER