Videoprozessor MFT
Der Videoprozessor MFT ist eine Microsoft Media Foundation Transformation (MFT), die Farbraumkonvertierung, Größenanpassung, Deinterlacing, Bildratenkonvertierung, Drehung, Zuschneiden, Entpacken der räumlichen linken und rechten Ansicht und Spiegelung durchführt.
CLSID
CLSID_VideoProcessorMFT
Schnittstellen
Eingabeformate
- MFVideoFormat_ARGB32
- MFVideoFormat_AYUV
- MFVideoFormat_I420
- MFVideoFormat_IYUV
- MFVideoFormat_NV11
- MFVideoFormat_NV12
- MFVideoFormat_RGB24
- MFVideoFormat_RGB32
- MFVideoFormat_RGB555
- MFVideoFormat_RGB565
- MFVideoFormat_RGB8
- MFVideoFormat_UYVY
- MFVideoFormat_v410
- MFVideoFormat_Y216
- MFVideoFormat_Y41P
- MFVideoFormat_Y41T
- MFVideoFormat_Y42T
- MFVideoFormat_YUY2
- MFVideoFormat_YV12
- MFVideoFormat_YVYU
Ausgabeformate
- MFVideoFormat_ARGB32
- MFVideoFormat_AYUV
- MFVideoFormat_I420
- MFVideoFormat_IYUV
- MFVideoFormat_NV12
- MFVideoFormat_RGB24
- MFVideoFormat_RGB32
- MFVideoFormat_RGB555
- MFVideoFormat_RGB565
- MFVideoFormat_UYVY
- MFVideoFormat_Y216
- MFVideoFormat_YUY2
- MFVideoFormat_YV12
Nicht jede Kombination aus Eingabe- und Ausgabeformaten wird unterstützt. Um zu testen, ob eine Konvertierung unterstützt wird, legen Sie den Eingabetyp fest, und rufen Sie dann IMFTransform::GetOutputAvailableType auf.
Weitere Informationen zu diesen Formaten finden Sie unter Video-Untertyp-GUIDs.
Hinweise
Eine Instanz des Videoprozessors kann auf eine der folgenden Arten erstellt werden:
- Durch Aufrufen von MFTEnumEx. Der Videoprozessor wird unter der Kategorie MFT_CATEGORY_VIDEO_PROCESSOR registriert.
- Rufen Sie dazu die COM-Funktion CoCreateInstance auf und übergeben Sie ihr die CLSID CLSID_VideoProcessorMFT.
Die folgenden Hinweise beziehen sich auf das Arbeiten mit Quellrechtecken und Zielrechtecken im Videoprozessor MFT. Quell- und Zielrechtecke werden mit IMFVideoProcessorControl::SetDestinationRectangle und SetSourceRectangle und manchmal mit IMFMediaEngineEx::UpdateVideoStream festgelegt.
- Das Quellrechteck sollte ausgerichtet und gerundet werden, um den Anforderungen des Farbformats des an den Videoprozessor eingegebenen Rahmens zu entsprechen. Dies ist wichtig, da Formate wie 420 und 422 Anforderungen an die Abmessungen und Offsets haben, die erstellt und darauf zugegriffen werden können. Beispielsweise wird ein Quellrechteck von {1, 0, 319, 240} (links, oben, rechts, unten) auf {2, 0, 320, 240} gerundet, wenn das Eingabeformat 420 ist.
- Sowohl das Ziel- als auch das Quellrechteck werden immer so geklammert, dass sie in ihre jeweiligen Rahmen passen: das Quellrechteck in den Quellrahmen und das Zielrechteck in den Zielrahmen. Dies bedeutet, dass negative Werte nicht sinnvoll sind – sie werden immer auf 0 geklemmt.
- Das Quellrechteck befindet sich im Koordinatensystem des Zielframes, abzüglich eines beliebigen Zielrechtecks. Dies bedeutet, dass Transformationen wie Drehungen im Quellrechteck „rückgängig gemacht“ werden. Sie brauchen also nicht zu wissen, ob das Video gedreht oder in 3D entpackt wurde. Sie könnten zum Beispiel ein Rechteck über dem Videotag zeichnen, die relativen Koordinaten (relativ zum Videotag) nehmen, sie normalisieren (Bereich 0 bis 1) und sie als Quellrechteck weitergeben und sie sollten wie erwartet funktionieren, selbst wenn das Video gedreht wird.
Der Videoprozessor unterstützt GPU-beschleunigte Videoverarbeitung mit Microsoft Direct3D 11. Weitere Informationen finden Sie unter MF_SA_D3D11_AWARE.
Stereoskopisches Video
Der Videoprozessor unterstützt den Entpackungsvorgang der Ansicht auf 3D-Videoframes:
Wenn das Eingabebild zwei Ansichten enthält, die in dasselbe Bild gepackt sind, kann der Videoprozessor die Ansichten in separate Puffer aufteilen oder die Basisansicht extrahieren und die zweite Ansicht verwerfen. Um das Entpacken der Ansicht zu aktivieren, legen Sie das Attribut MF_ENABLE_3DVIDEO_OUTPUT auf MF3DVideoOutputType_Stereo oder MF3DVideoOutputType_BaseView fest.
Anforderungen
Anforderung | Wert |
---|---|
Header |
|
Siehe auch