Share via


KS_VIDEOINFOHEADER2-Struktur (ksmedia.h)

Die KS_VIDEOINFOHEADER2-Struktur beschreibt die Details eines Videostreams, einschließlich Bob- oder Webeinstellungen, Kopierschutz und Pixelseitenverhä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;

Member

rcSource

Gibt ein Beschneidungsrechteck an, das den zu verwendenden Teil des aktiven Videosignals auswählt.

rcTarget

Gibt ein Rechteck an, das angibt, welcher Teil des 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 Videostreams 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, andernfalls kann die Verbindung abgelehnt werden. Dieser Member kann auf einen oder mehrere (logische OR)-Werte festgelegt werden, die in ksmedia.h definiert sind:

Flag Beschreibung
KS_INTERLACE_IsInterlaced Gibt einen Interlacestream an. Wenn 0, sind die anderen KS_INTERLACE_Xxx Bits irrelevant.
KS_INTERLACE_1FieldPerSample Gibt ein Feld pro Medienbeispiel an. Wenn null, gibt zwei Felder pro Medienbeispiel an.
KS_INTERLACE_Field1First Gibt an, dass Feld 1 zuerst ist. Wenn null, gibt an, dass Feld 2 an erster Stelle steht. Oberstes Feld in PAL ist Feld 1, oberstes Feld in NTSC Ist Feld 2.
KS_INTERLACE_UNUSED Nicht verwendet
KS_INTERLACE_FieldPatternMask Gibt die Bits an, die zum Angeben des Feldmusters verwendet werden.
KS_INTERLACE_FieldPatField1Only Gibt an, dass ein Stream nie ein Feld 2 enthält.
KS_INTERLACE_FieldPatField2Only Gibt an, dass ein Stream 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, der angibt, 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 Anzeige mit 16 × 9). Der Wert wird in Zoll für 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 für Zoll und nicht in Pixeln ausgedrückt.

dwControlFlags

In Betriebssystemen vor Windows Vista trug dieses Element den Namen dwReserved1 und musste null sein. In Windows Vista wurde dwReserved1 in einer Union mit einem neuen Member namens dwControlFlags kombiniert. Bei Verwendung enthält dwControlFlags ein bitweises OR der Flags in der folgenden Tabelle.

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

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

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 Bits des dwControlFlags-Felds als DXVA_ExtendedFormat-Struktur behandelt werden.

Weitere Informationen zu dwControlFlags finden Sie weiter unten in diesem Thema im Abschnitt Hinweise.

dwReserved1

Dieser Member dient der Abwärtskompatibilität. Weitere Informationen finden Sie unter dwControlFlags .

dwReserved2

Ist für das System reserviert. Muss auf 0 festgelegt werden, sonst wird die Verbindung abgelehnt.

bmiHeader

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

Hinweise

Verwenden Sie KS_VIDEOINFOHEADER, um einen Videostream ohne Bob- oder Webeinstellungen zu beschreiben.

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

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 Senkenfilter nur einen Abschnitt des Videos einnimmt, indem Werte bereitgestellt werden, die effektiv ein Beschneidungsrechteck im rcSource-Element definieren. Wenn der Senkenfilter jedoch nicht nach dem Beschneidungsrechteck bei der Verbindung sucht, rendert der Senkenfilter einfach das gesamte Video und ignoriert effektiv alle Clippinginformationen, die vom Quellfilter an den Senkenfilter übergeben werden.

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

Das rcTarget-Element gibt das Zielrechteck für das Video an. Die meisten Quellfilter legen diesen Member auf alle Nullen fest. Ein Downstreamfilter kann anfordern, dass das Video in einem bestimmten Bereich der puffert, die es bereitstellt. In diesem Fall wird die Win32-Funktion QueryAccept mit einem nicht leeren Ziel aufgerufen.

Wenn das flag AMCONTROL_COLORINFO_PRESENT im dwControlFlags-Element 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 (include Ksmedia.h)

Weitere Informationen

KS_BITMAPINFOHEADER

KS_DATARANGE_VIDEO2

KS_VIDEOINFOHEADER