QAbstractVideoBuffer Class

QAbstractVideoBufferクラスは、ビデオデータを抽象化したものです。詳細...

Header: #include <QAbstractVideoBuffer>
CMake: find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake: QT += multimedia
Since: 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 ()関数を使用してバッファをメモリにマッピングすることでアクセスできます。 ()関数は、現在のビデオデータの平面レイアウトに関する情報を含む構造体を返します。

QVideoFrameQVideoFrameFormatQVideoFrame::MapModeも参照のこと

メンバ関数ドキュメント

[virtual noexcept] QAbstractVideoBuffer::~QAbstractVideoBuffer()

ビデオバッファを破棄する。

[pure virtual] QVideoFrameFormat QAbstractVideoBuffer::format() const

基礎となるビデオバッファのQVideoFrameFormat を取得する。

フォーマットは、QVideoFrame の構築時に利用可能でなければならない。QVideoFrame は、指定されたフォーマットのインスタンスを含み、切り離して変更することができる。

[pure virtual] QAbstractVideoBuffer::MapData QAbstractVideoBuffer::map(QVideoFrame::MapMode mode)

ビデオバッファのプレーンをメモリにマッピングします。

マップされた現在のビデオデータのプレーンレイアウトに関する情報を含むMapData 構造体を返す。マッピングに失敗した場合、このメソッドはデフォルトの構造体を返す。CPU メモリ バッファの場合、データはすでにマップされていると見なされるため、この関数は、事前に割り当てられた基礎データのプレーン レイアウトを返すだけです。

マップmode は、マップされたメモリの内容をバッファから読み込んだりバッファに書き込んだりするかどうかを示します。マップモードにQVideoFrame::ReadOnly フラグが含まれている場合、マップされたメモリは、最初にマップされたときにバッファの内容で満たされます。マップモードにQVideoFrame::WriteOnly フラグが含まれている場合、マップが解除されると、変更された可能性のあるマップされたメモリの内容がバッファに書き戻される。

データへのアクセスが不要になると、unmap 関数が呼び出され、マップされたメモリが解放され、バッファの内容が更新されます。

ビデオデータのフォーマットがマルチプレーンである場合、このメソッドはピクセルデータ全体を単一プレーンとしてマッピングすることができます。この場合、QVideoFrame でバッファをマッピングすると、最初のプレーンの指定されたラインストライド、フレームの高さ、およびデータサイズから追加のプレーンが計算されます。

[virtual] void QAbstractVideoBuffer::unmap()

map() 関数によってマッピングされたメモリを解放する。

MapModeQVideoFrame::WriteOnly フラグが含まれていた場合、マップされたメモリの現在の内容がビデオフレームに書き戻されます。

CPU ビデオバッファの場合、この関数はオーバーライドされない。unmap のデフォルト実装は何もしない。

map()も参照してください

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。