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