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) |