QAbstractVideoBuffer Class
QAbstractVideoBuffer クラスは、ビデオデータの抽象化です。詳細...
| ヘッダー: | #include <QAbstractVideoBuffer> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Multimedia) target_link_libraries(mytarget PRIVATE Qt6::Multimedia) |
| qmake: | QT += multimedia |
| 以下のように: | Qt 6.8 |
パブリック型
| struct | MapData |
パブリック関数
| virtual | ~QAbstractVideoBuffer() |
| virtual QVideoFrameFormat | format() const = 0 |
| virtual QAbstractVideoBuffer::MapData | map(QVideoFrame::MapMode mode) = 0 |
| virtual void | unmap() |
詳細な説明
QVideoFrame クラスは、内部でQAbstractVideoBufferを利用して、ビデオデータのバッファを参照します。QAbstractVideoBufferのサブクラスを作成することで、事前に割り当てられたバッファや静的バッファからビデオフレームを構築することができます。このサブクラスはハードウェアバッファを含み、そのバッファをCPUメモリにマッピングすることでデータへのアクセスを実装することができます。
バッファの内容には、map() 関数を使用してバッファをメモリにマッピングすることでアクセスできます。この関数は、現在のビデオデータのプレーンレイアウトに関する情報を含む構造体を返します。
QVideoFrame 、QVideoFrameFormat 、およびQVideoFrame::MapModeも参照してください 。
メンバ関数のドキュメント
[virtual noexcept] QAbstractVideoBuffer::~QAbstractVideoBuffer()
ビデオバッファを破棄します。
[pure virtual] QVideoFrameFormat QAbstractVideoBuffer::format() const
基となるビデオバッファのQVideoFrameFormat を取得します。
このフォーマットは、QVideoFrame の生成時に利用可能である必要があります。QVideoFrame には、指定されたフォーマットのインスタンスが1つ格納され、これを切り離したり変更したりすることができます。
[pure virtual] QAbstractVideoBuffer::MapData QAbstractVideoBuffer::map(QVideoFrame::MapMode mode)
ビデオバッファの各プレーンをメモリにマッピングします。
マッピングされた現在のビデオデータのプレーンレイアウトに関する情報を含む `MapData ` 構造体を返します。マッピングに失敗した場合、このメソッドはデフォルトの構造体を返します。CPU メモリバッファの場合、データはすでにマッピング済みとみなされるため、この関数は事前に割り当てられた基盤データのプレーンレイアウトを単に返すだけです。
mode のmapは、マッピングされたメモリの内容をバッファから読み取るか、あるいはバッファに書き込むか、あるいはその両方を行うかを示します。mapモードにQVideoFrame::ReadOnly フラグが含まれている場合、マッピングされたメモリは初期マッピング時にバッファの内容で初期化されます。mapモードにQVideoFrame::WriteOnly フラグが含まれている場合、変更された可能性のあるマッピングされたメモリの内容は、アンマップ時にバッファに書き戻されます。
データへのアクセスが不要になった場合は、unmap 関数を呼び出して、マップされたメモリを解放し、必要に応じてバッファの内容を更新します。
ビデオデータの形式がマルチプレーナである場合、このメソッドはピクセルデータ全体を単一のプレーンとしてマッピングすることがあります。この場合、QVideoFrame を使用してバッファをマッピングすると、最初のプレーンの指定されたラインストライド、フレームの高さ、およびデータサイズに基づいて、追加のプレーンが計算されます。
[virtual] void QAbstractVideoBuffer::unmap()
map() 関数によってメモリマップされた領域を解放します。
MapMode がQVideoFrame::WriteOnly フラグを含んでいた場合、この関数はマップされたメモリの現在の内容をビデオフレームに書き戻します。
CPU ビデオバッファの場合、この関数はオーバーライドできない場合があります。unmap のデフォルトの実装は何も行いません。
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.