QAbstractVideoBuffer Class
Die Klasse „QAbstractVideoBuffer“ ist eine Abstraktion für Videodaten. Mehr...
| Header: | #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() |
Ausführliche Beschreibung
Die Klasse „ QVideoFrame “ nutzt intern eine „QAbstractVideoBuffer“-Klasse, um auf einen Puffer mit Videodaten zu verweisen. Durch das Erstellen einer Unterklasse von „QAbstractVideoBuffer“ können Sie Videobilder aus vorab zugewiesenen oder statischen Puffern erstellen. Die Unterklasse kann einen Hardware-Puffer enthalten und den Zugriff auf die Daten implementieren, indem sie den Puffer in den CPU-Speicher abbildet.
Auf den Inhalt eines Puffers kann zugegriffen werden, indem der Puffer mithilfe der Funktion ` map()` in den Speicher abgebildet wird; diese Funktion gibt eine Struktur zurück, die Informationen über das Ebenenlayout der aktuellen Videodaten enthält.
Siehe auch „ QVideoFrame “, „ QVideoFrameFormat “ und „ QVideoFrame::MapMode “.
Dokumentation der Member-Funktionen
[virtual noexcept] QAbstractVideoBuffer::~QAbstractVideoBuffer()
Löscht 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 vom Typ „ 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 gelten die Daten als bereits zugeordnet, sodass die Funktion lediglich das Ebenenlayout der vorab zugewiesenen zugrunde liegenden Daten zurückgibt.
Die Zuordnungsstruktur ` mode ` gibt an, ob der Inhalt des zugeordneten Speichers aus dem Puffer gelesen und/oder in diesen geschrieben werden soll. Enthält der Zuordnungsmodus das Flag ` QVideoFrame::ReadOnly `, wird der zugeordnete Speicher bei der erstmaligen Zuordnung mit dem Inhalt des Puffers gefüllt. Enthält der Zuordnungsmodus das Flag ` QVideoFrame::WriteOnly `, wird der Inhalt des möglicherweise geänderten zugeordneten Speichers beim Aufheben der Zuordnung zurück in den Puffer geschrieben.
Wenn kein Zugriff mehr auf die Daten benötigt wird, wird die Funktion „ unmap “ aufgerufen, um den abgebildeten Speicher freizugeben und gegebenenfalls den Inhalt des Puffers zu aktualisieren.
Wenn das Format der Videodaten mehrplänig ist, kann die Methode die gesamten Pixeldaten als eine einzige Ebene zuordnen. In diesem Fall werden beim Zuordnen eines Puffers mit ` QVideoFrame ` zusätzliche Ebenen anhand des angegebenen Zeilenschritts der ersten Ebene, der Rahmenhöhe und der Datengröße berechnet.
[virtual] void QAbstractVideoBuffer::unmap()
Gibt den von der Funktion ` map()` zugeordneten Speicher frei.
Wenn bei der Funktion ` MapMode ` das Flag ` QVideoFrame::WriteOnly ` gesetzt war, wird der aktuelle Inhalt des zugeordneten Speichers zurück in den Videorahmen geschrieben.
Bei CPU-Videopuffern darf die Funktion nicht überschrieben werden. Die Standardimplementierung von ` unmap ` führt keine Aktion aus.
Siehe auch ` map()`.
© 2026 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.