PySide6.QtMultimedia.QAbstractVideoBuffer¶
- class QAbstractVideoBuffer¶
QAbstractVideoBuffer
类是视频数据的抽象。More_…在版本6.8中添加。
概要¶
虚拟方法¶
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
QVideoFrame
类内部使用QAbstractVideoBuffer
来引用视频数据的缓冲区。通过创建QAbstractVideoBuffer
的子类,您可以从预分配或静态缓冲区构建视频帧。该子类可以包含一个硬件缓冲区,并通过将缓冲区映射到CPU内存来实现对数据的访问。缓冲区的内容可以通过使用
map()
函数将缓冲区映射到内存来访问,该函数返回一个包含当前视频数据平面布局信息的结构。- abstract format()¶
- Return type:
获取底层视频缓冲区的
QVideoFrameFormat
。格式必须在构造
QVideoFrame
时可用。QVideoFrame
将包含给定格式的实例,可以分离和修改。将视频缓冲区的平面映射到内存。
返回一个包含当前映射视频数据的平面布局信息的
MapData
结构。如果映射失败,该方法返回默认结构。对于CPU内存缓冲区,数据被视为已经映射,因此该函数仅返回预分配底层数据的平面布局。地图模式
mode
指示映射内存的内容是否应从缓冲区读取和/或写入缓冲区。如果地图模式包括QVideoFrame::ReadOnly
标志,则在最初映射时,映射内存将填充缓冲区的内容。如果地图模式包括QVideoFrame::WriteOnly
标志,则在取消映射时,可能已修改的映射内存的内容将写回缓冲区。当不再需要访问数据时,调用
unmap
函数以释放映射的内存并可能更新缓冲区内容。如果视频数据的格式是多平面的,该方法可能会将整个像素数据映射为单个平面。在这种情况下,使用
QVideoFrame
映射缓冲区将根据第一个平面的指定行步幅、帧高度和数据大小计算额外的平面。- unmap()¶
释放由
map()
函数映射的内存。如果
MapMode
包含了QVideoFrame::WriteOnly
标志,这将把映射内存的当前内容写回视频帧。对于CPU视频缓冲区,该函数可能不会被重写。
unmap
的默认实现不执行任何操作。另请参阅
- class MapData¶
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
- PySide6.QtMultimedia.QAbstractVideoBuffer.MapData.planeCount¶
- PySide6.QtMultimedia.QAbstractVideoBuffer.MapData.bytesPerLine¶
- PySide6.QtMultimedia.QAbstractVideoBuffer.MapData.data¶
- PySide6.QtMultimedia.QAbstractVideoBuffer.MapData.dataSize¶