QAbstractVideoBuffer Class
Die Klasse QAbstractVideoBuffer ist eine Abstraktion für Videodaten. Mehr...
Kopfzeile: | #include <QAbstractVideoBuffer> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Multimedia) target_link_libraries(mytarget PRIVATE Qt6::Multimedia) |
qmake: | QT += multimedia |
Seit: | Qt 6.8 |
Öffentliche Typen
struct | MapData |
Öffentliche Funktionen
virtual | ~QAbstractVideoBuffer() |
virtual QVideoFrameFormat | format() const = 0 |
virtual QAbstractVideoBuffer::MapData | map(QVideoFrame::MapMode mode) = 0 |
virtual void | unmap() |
Detaillierte Beschreibung
Die Klasse QVideoFrame verwendet intern einen QAbstractVideoBuffer, um einen Puffer mit Videodaten zu referenzieren. Wenn Sie eine Unterklasse von QAbstractVideoBuffer erstellen, können Sie Videobilder aus vorab zugewiesenen oder statischen Puffern konstruieren. Die Unterklasse kann einen Hardwarepuffer enthalten und den Zugriff auf die Daten implementieren, indem der Puffer dem CPU-Speicher zugeordnet wird.
Auf den Inhalt eines Puffers kann zugegriffen werden, indem der Puffer mit der Funktion map() auf den Speicher abgebildet wird, die eine Struktur mit Informationen über das Ebenenlayout der aktuellen Videodaten zurückgibt.
Siehe auch QVideoFrame, QVideoFrameFormat, und QVideoFrame::MapMode.
Dokumentation der Mitgliedsfunktionen
[virtual noexcept]
QAbstractVideoBuffer::~QAbstractVideoBuffer()
Zerstört einen Videopuffer.
[pure virtual]
QVideoFrameFormat QAbstractVideoBuffer::format() const
Ruft QVideoFrameFormat des zugrunde liegenden Videopuffers ab.
Das Format muss bei der Erstellung von QVideoFrame verfügbar sein. QVideoFrame enthält eine Instanz des angegebenen Formats, die abgetrennt und geändert werden kann.
[pure virtual]
QAbstractVideoBuffer::MapData QAbstractVideoBuffer::map(QVideoFrame::MapMode mode)
Ordnet die Ebenen eines Videopuffers dem Speicher zu.
Gibt eine Struktur MapData zurück, die Informationen über das Ebenenlayout der zugeordneten aktuellen Videodaten enthält. Wenn die Zuordnung fehlschlägt, gibt die Methode die Standardstruktur zurück. Bei CPU-Speicherpuffern wird davon ausgegangen, dass die Daten bereits zugeordnet sind, so dass die Funktion nur das Ebenenlayout der vorab zugewiesenen zugrunde liegenden Daten zurückgibt.
Die Map mode gibt an, ob der Inhalt des gemappten Speichers aus dem Puffer gelesen und/oder in den Puffer geschrieben werden soll. Wenn der Abbildungsmodus das Flag QVideoFrame::ReadOnly
enthält, wird der abgebildete Speicher mit dem Inhalt des Puffers gefüllt, wenn er ursprünglich abgebildet wird. Enthält der Zuordnungsmodus das Flag QVideoFrame::WriteOnly
, wird der Inhalt des möglicherweise geänderten zugeordneten Speichers in den Puffer zurückgeschrieben, wenn die Zuordnung aufgehoben wird.
Wenn der Zugriff auf die Daten nicht mehr benötigt wird, wird die Funktion unmap aufgerufen, um den zugeordneten Speicher freizugeben und möglicherweise den Pufferinhalt zu aktualisieren.
Wenn das Format der Videodaten multiplanar ist, kann die Methode die gesamten Pixeldaten als eine einzige Ebene zuordnen. In diesem Fall werden bei der Abbildung eines Puffers mit QVideoFrame zusätzliche Ebenen aus dem angegebenen Zeilenabstand der ersten Ebene, der Bildhöhe und der Datengröße berechnet.
[virtual]
void QAbstractVideoBuffer::unmap()
Gibt den von der Funktion map() gemappten Speicher frei.
Wenn die Funktion MapMode das Flag QVideoFrame::WriteOnly
enthielt, wird der aktuelle Inhalt des gemappten Speichers zurück in das Videobild geschrieben.
Bei CPU-Videopuffern darf die Funktion nicht überschrieben werden. Die Standardimplementierung von unmap
tut nichts.
Siehe auch map().
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.