Freigeben über


KS_VIDEOINFOHEADER2 Struktur (ksmedia.h)

Die KS_VIDEOINFOHEADER2 Struktur beschreibt die Details eines Videostreams, einschließlich bob- oder weave-Einstellungen, Kopierschutz und Pixel-Seitenverhältnis.

Syntax

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;

Angehörige

rcSource

Gibt ein Clippingrechteck an, das den teil des zu verwendenden aktiven Videosignals auswählt.

rcTarget

Gibt ein Rechteck an, das angibt, welcher Teil des zu verwendenden Zielpuffers verwendet werden soll.

dwBitRate

Gibt einen Wert an, der die entsprechende Datenrate des Videodatenstroms in Bits pro Sekunde angibt.

dwBitErrorRate

Gibt einen Wert an, der die Datenfehlerrate des Videodatenstroms in Bitfehlern pro Sekunde angibt.

AvgTimePerFrame

Gibt die durchschnittliche Zeit pro Frame in 100 Nanosekundeneinheiten an.

dwInterlaceFlags

Gibt Interlace-Informationen an. Nicht definierte Flags müssen auf Null festgelegt werden, oder die Verbindung kann abgelehnt werden. Dieses Element kann auf einen oder mehrere (logische OR)-Werte festgelegt werden, die in ksmedia.hdefiniert sind:

Flagge Beschreibung
KS_INTERLACE_IsInterlaced Gibt einen Interlace-Datenstrom an. Wenn 0, sind die anderen KS_INTERLACE_Xxx Bits irrelevant.
KS_INTERLACE_1FieldPerSample Gibt ein Feld pro Medienbeispiel an. Gibt bei Null zwei Felder pro Medienbeispiel an.
KS_INTERLACE_Field1First Gibt an, dass Feld 1 zuerst ist. Wenn Null, gibt an, dass Feld 2 zuerst ist. Das oberste Feld in PAL ist Feld 1, das oberste Feld in NTSC ist Feld 2.
KS_INTERLACE_UNUSED Unbenutzt
KS_INTERLACE_FieldPatternMask Gibt die Bits an, die zum Angeben des Feldmusters verwendet werden.
KS_INTERLACE_FieldPatField1Only Gibt an, dass ein Datenstrom nie ein Feld 2 enthält.
KS_INTERLACE_FieldPatField2Only Gibt an, dass ein Datenstrom nie ein Feld 1 enthält.
KS_INTERLACE_FieldPatBothRegular Gibt an, dass für jedes Feld 1 ein Feld 2 vorhanden ist.
KS_INTERLACE_FieldPatBothIrregular Gibt ein zufälliges Muster von Feld 1s und Feld 2s an.
KS_INTERLACE_DisplayModeMask Ungültig für die Videoaufnahme.
KS_INTERLACE_DisplayModeBobOnly Ungültig für die Videoaufnahme.
KS_INTERLACE_DisplayModeWeaveOnly Ungültig für die Videoaufnahme.
KS_INTERLACE_DisplayModeBobOrWeave Ungültig für die Videoaufnahme.

dwCopyProtectFlags

Gibt einen KSCOPYPROTECTRestrictDuplication-Wert (0x00000001) an, um anzugeben, ob die Duplizierung eines Datenstroms eingeschränkt werden soll. Wenn nicht definiert, geben Sie null an, oder die Verbindung wird abgelehnt.

dwPictAspectRatioX

Gibt die x Dimension des Bildseitenverhältnisses an (z. B. 16 für eine 16 × 9-Anzeige). Der Wert wird in Zoll und nicht in Pixeln ausgedrückt.

dwPictAspectRatioY

Gibt die y Dimension des Bildseitenverhältnisses an (z. B. 9 für 16 × 9 Anzeige). Der Wert wird in Zoll und nicht in Pixeln ausgedrückt.

dwControlFlags

In Betriebssystemen vor Windows Vista wurde dieses Mitglied dwReserved1 benannt und musste null sein. In Windows Vista wurde dwReserved1 in einer Union mit einem neuen Mitglied namens dwControlFlagskombiniert. Bei Verwendung enthält dwControlFlags- ein bitweises OR der Flags in der folgenden Tabelle.

Wert Beschreibung
AMCONTROL_USED Gibt an, dwControlFlags Flags verwendet werden.
AMCONTROL_PAD_TO_4x3 Das Bild sollte in einem Bereich von 4 x 3 aufgefüllt und angezeigt werden.
AMCONTROL_PAD_TO_16x9 Das Bild sollte in einem Bereich von 16 x 9 aufgefüllt und angezeigt werden.
AMCONTROL_COLORINFO_PRESENT Zusätzliche Farbinformationen sind in den oberen 24 Bits des dwControlFlags Felds enthalten.

Das AMCONTROL_USED-Flag bietet Abwärtskompatibilität mit älteren Filtern. Wenn das AMCONTROL_USED Flag nicht festgelegt ist, sollten die verbleibenden Bits in diesem Feld ignoriert werden. Wenn ein Filter andere Flags verwendet, sollte die AMCONTROL_USED-Kennzeichnung festgelegt werden.

Die beiden AMCONTROL_PAD_xxx Flags werden von Decodern verwendet, um das Seitenverhältnis des Ausgaberechtecks zu bestimmen.

Wenn das AMCONTROL_COLORINFO_PRESENT Flag festgelegt ist, bedeutet dies, dass die oberen 24 Bit des dwControlFlags-Felds als DXVA_ExtendedFormat Struktur behandelt werden.

Weitere Informationen zu dwControlFlagsfinden Sie im Abschnitt "Hinweise" weiter unten in diesem Thema.

dwReserved1

Dieses Mitglied ist aus Gründen der Abwärtskompatibilität. Weitere Informationen finden Sie unter dwControlFlags-.

dwReserved2

Reserviert für die Systemverwendung. Muss auf Null festgelegt werden, oder die Verbindung wird abgelehnt.

bmiHeader

Gibt eine KS_BITMAPINFOHEADER Struktur an, die Farb- und Dimensionsinformationen für die Videobildbitmap enthält.

Bemerkungen

Um einen Videostream ohne Bob- oder Weave-Einstellungen zu beschreiben, verwenden Sie KS_VIDEOINFOHEADER.

Die KS_VIDEOINFOHEADER2 Struktur ist identisch mit der DirectShow-VIDEOINFOHEADER2-Struktur.

Erfassen von Minidrivern, die Videofelder (anstelle von Frames) erzeugen, müssen die KS_DATARANGE_VIDEO2 Struktur verwenden, die die KS_VIDEOINFOHEADER2 Struktur enthält.

Ein Quellfilter kann anfordern, dass der Sinkfilter nur einen Abschnitt des Videos verwendet, indem Werte bereitgestellt werden, die ein Clippingrechteck im rcSource Member effektiv definieren. Wenn der Sinkfilter jedoch nicht auf das Clippingrechteck bei verbindung überprüft, rendert der Sinkfilter einfach alle Videoinhalte, wobei alle aus dem Quellfilter an den Sinkfilter übergebenen Clippinginformationen effektiv ignoriert werden.

Im Idealfall überprüft ein Senkenfilter rcSource- und wenn der Sinkfilter keine Bildextraktion unterstützt, und das Rechteck ist nicht leer, wird die Verbindung abgelehnt. Ein Filter sollte die Win32-Funktion SetRectEmpty- verwenden, um ein Rechteck auf alle Nullen zurückzusetzen (und IsRectEmpty- festlegen, um das Rechteck später zu überprüfen).

Das rcTarget-Element gibt das Zielrechteck für das Video an. Die meisten Quellfilter legen dieses Element auf alle Nullen fest. Ein nachgeschalteter Filter kann anfordern, dass das Video in einem bestimmten Bereich der puffer, die es bereitstellt, platziert wird. In diesem Fall ruft sie die Win32-Funktion QueryAccept- mit einem nicht zu hohen Ziel auf.

Wenn das AMCONTROL_COLORINFO_PRESENT Flag im dwControlFlags Member festgelegt ist, können Sie den dwControlFlags- wert in eine DXVA_ExtendedFormat Struktur umwandeln, um auf die erweiterten Farbinformationen zuzugreifen. Weitere Informationen finden Sie unter VIDEOINFOHEADER2.

Anforderungen

Anforderung Wert
Header- ksmedia.h (enthalten Ksmedia.h)

Siehe auch

KS_BITMAPINFOHEADER

KS_DATARANGE_VIDEO2

KS_VIDEOINFOHEADER