The QAbstractVideoBuffer class is an abstraction for video data.
The QVideoFrame class makes use of a QAbstractVideoBuffer internally to reference a buffer of video data. Creating a subclass of QAbstractVideoBuffer will allow you to construct video frames from preallocated or static buffers.
The contents of a buffer can be accessed by mapping the buffer to memory using the QAbstractVideoBuffer.map() function which returns a pointer to memory containing the contents of the the video buffer. The memory returned by QAbstractVideoBuffer.map() is released by calling the QAbstractVideoBuffer.unmap() function.
The QAbstractVideoBuffer.handle() of a buffer may also be used to manipulate it’s contents using type specific APIs. The type of a buffer’s handle is given by the QAbstractVideoBuffer.handleType() function.
See also
| Parameter: | type – HandleType |
|---|
Constructs an abstract video buffer of the given type .
Enumerates how a video buffer’s data is mapped to memory.
| Constant | Description |
|---|---|
| QAbstractVideoBuffer.NotMapped | The video buffer has is not mapped to memory. |
| QAbstractVideoBuffer.ReadOnly | The mapped memory is populated with data from the video buffer when mapped, but the content of the mapped memory may be discarded when unmapped. |
| QAbstractVideoBuffer.WriteOnly | The mapped memory in unitialized when mapped, and the content will be used to populate the video buffer when unmapped. |
| QAbstractVideoBuffer.ReadWrite | The mapped memory is populated with data from the video buffer, and the video buffer is repopulated with the content of the mapped memory. |
Identifies the type of a video buffers handle.
| Constant | Description |
|---|---|
| QAbstractVideoBuffer.NoHandle | The buffer has no handle, its data can only be accessed by mapping the buffer. |
| QAbstractVideoBuffer.GLTextureHandle | The handle of the buffer is an OpenGL texture ID. |
| QAbstractVideoBuffer.UserHandle | Start value for user defined handle types. |
See also
| Return type: | QVariant |
|---|
Returns a type specific handle to the data buffer.
The type of the handle is given by QAbstractVideoBuffer.handleType() function.
See also
| Return type: | HandleType |
|---|
Returns the type of a video buffer’s handle.
See also
| Parameter: | mode – MapMode |
|---|---|
| Return type: | uchar |
Maps the contents of a video buffer to memory.
The map mode indicates whether the contents of the mapped memory should be read from and/or written to the buffer. If the map mode includes the QAbstractVideoBuffer.ReadOnly flag the mapped memory will be populated with the content of the video buffer when mapped. If the map mode includes the QAbstractVideoBuffer.WriteOnly flag the content of the mapped memory will be persisted in the buffer when unmapped.
When access to the data is no longer needed be sure to call the QAbstractVideoBuffer.unmap() function to release the mapped memory.
Returns a pointer to the mapped memory region, or a null pointer if the mapping failed. The size in bytes of the mapped memory region is returned in numBytes , and the line stride in bytesPerLine .
When access to the data is no longer needed be sure to QAbstractVideoBuffer.unmap() the buffer.
Note
Writing to memory that is mapped as read-only is undefined, and may result in changes to shared data.
| Return type: | MapMode |
|---|
Returns the mode a video buffer is mapped in.
See also
| Parameter: | arg__1 – QAbstractVideoBuffer |
|---|---|
| Return type: | QAbstractVideoBuffer |
Releases the memory mapped by the QAbstractVideoBuffer.map() function
If the QAbstractVideoBuffer.MapMode included the QAbstractVideoBuffer.WriteOnly flag this will persist the current content of the mapped memory to the video frame.
See also