The QVideoFrame class provides a representation of a frame of video data. 更多...
| 頭: | #include <QVideoFrame> |
| Since: | Qt 4.6 |
| enum | FieldType { ProgressiveFrame, TopField, BottomField, InterlacedFrame } |
| enum | PixelFormat { Format_Invalid, Format_ARGB32, Format_ARGB32_Premultiplied, Format_RGB32, ..., Format_User } |
| QVideoFrame () | |
| QVideoFrame (QAbstractVideoBuffer * buffer , const QSize & size , PixelFormat format ) | |
| QVideoFrame (int bytes , const QSize & size , int bytesPerLine , PixelFormat format ) | |
| QVideoFrame (const QImage & image ) | |
| QVideoFrame (const QVideoFrame & other ) | |
| ~QVideoFrame () | |
| uchar * | bits () |
| const uchar * | bits () const |
| int | bytesPerLine () const |
| qint64 | endTime () const |
| FieldType | fieldType () const |
| QVariant | handle () const |
| QAbstractVideoBuffer::HandleType | handleType () const |
| int | height () const |
| bool | isMapped () const |
| bool | isReadable () const |
| bool | isValid () const |
| bool | isWritable () const |
| bool | map (QAbstractVideoBuffer::MapMode mode ) |
| QAbstractVideoBuffer::MapMode | mapMode () const |
| int | mappedBytes () const |
| PixelFormat | pixelFormat () const |
| void | setEndTime (qint64 time ) |
| void | setFieldType (FieldType field ) |
| void | setStartTime (qint64 time ) |
| QSize | size () const |
| qint64 | startTime () const |
| void | unmap () |
| int | width () const |
| QVideoFrame & | operator= (const QVideoFrame & other ) |
| QImage::Format | imageFormatFromPixelFormat (PixelFormat format ) |
| PixelFormat | pixelFormatFromImageFormat (QImage::Format format ) |
The QVideoFrame class provides a representation of a frame of video data.
A QVideoFrame encapsulates the data of a video frame, and information about the frame.
The contents of a video frame can be mapped to memory using the map () function. While mapped the video data can accessed using the bits () function which returns a pointer to a buffer, the total size of which is given by the mappedBytes (), and the size of each line is given by bytesPerLine ()。返迴值對於 handle () function may be used to access frame data using the internal buffer's native APIs.
The video data in a QVideoFrame is encapsulated in a QAbstractVideoBuffer 。 QVideoFrame may be constructed from any buffer type by subclassing the QAbstractVideoBuffer 類。
注意: QVideoFrame is explicitly shared, any change made to video frame will also apply to any copies.
指定隔行掃描視頻幀所屬的字段。
| 常量 | 值 | 描述 |
|---|---|---|
QVideoFrame::ProgressiveFrame
|
0
|
幀非隔行掃描。 |
QVideoFrame::TopField
|
1
|
幀包含 top 字段。 |
QVideoFrame::BottomField
|
2
|
框架包含 bottom 字段。 |
QVideoFrame::InterlacedFrame
|
3
|
幀包含閤並的 top 和 bottom 字段。 |
枚舉視頻數據類型。
| 常量 | 值 | 描述 |
|---|---|---|
QVideoFrame::Format_Invalid
|
0
|
幀無效。 |
QVideoFrame::Format_ARGB32
|
1
|
使用 32 位 ARGB 格式 (0xAARRGGBB) 存儲幀。這相當於 QImage::Format_ARGB32 . |
QVideoFrame::Format_ARGB32_Premultiplied
|
2
|
使用預乘 32 位 ARGB 格式 (0xAARRGGBB) 存儲幀。這相當於 QImage::Format_ARGB32_Premultiplied . |
QVideoFrame::Format_RGB32
|
3
|
使用 32 位 RGB 格式 (0xffRRGGBB) 存儲幀。這相當於 QImage::Format_RGB32 |
QVideoFrame::Format_RGB24
|
4
|
The frame is stored using a 24-bit RGB format (8-8-8). This is equivalent to QImage::Format_RGB888 |
QVideoFrame::Format_RGB565
|
5
|
The frame is stored using a 16-bit RGB format (5-6-5). This is equivalent to QImage::Format_RGB16 . |
QVideoFrame::Format_RGB555
|
6
|
The frame is stored using a 16-bit RGB format (5-5-5). This is equivalent to QImage::Format_RGB555 . |
QVideoFrame::Format_ARGB8565_Premultiplied
|
7
|
The frame is stored using a 24-bit premultiplied ARGB format (8-6-6-5). |
QVideoFrame::Format_BGRA32
|
8
|
The frame is stored using a 32-bit ARGB format (0xBBGGRRAA). |
QVideoFrame::Format_BGRA32_Premultiplied
|
9
|
The frame is stored using a premultiplied 32bit BGRA format. |
QVideoFrame::Format_BGR32
|
10
|
The frame is stored using a 32-bit BGR format (0xBBGGRRff). |
QVideoFrame::Format_BGR24
|
11
|
The frame is stored using a 24-bit BGR format (0xBBGGRR). |
QVideoFrame::Format_BGR565
|
12
|
幀使用 16 位 BGR 格式 (5-6-5) 存儲。 |
QVideoFrame::Format_BGR555
|
13
|
幀使用 16 位 BGR 格式 (5-5-5) 存儲。 |
QVideoFrame::Format_BGRA5658_Premultiplied
|
14
|
The frame is stored using a 24-bit premultiplied BGRA format (5-6-5-8). |
QVideoFrame::Format_AYUV444
|
15
|
The frame is stored using a packed 32-bit AYUV format (0xAAYYUUVV). |
QVideoFrame::Format_AYUV444_Premultiplied
|
16
|
The frame is stored using a packed premultiplied 32-bit AYUV format (0xAAYYUUVV). |
QVideoFrame::Format_YUV444
|
17
|
The frame is stored using a 24-bit packed YUV format (8-8-8). |
QVideoFrame::Format_YUV420P
|
18
|
The frame is stored using an 8-bit per component planar YUV format with the U and V planes horizontally and vertically sub-sampled, i.e. the height and width of the U and V planes are half that of the Y plane. |
QVideoFrame::Format_YV12
|
19
|
The frame is stored using an 8-bit per component planar YVU format with the V and U planes horizontally and vertically sub-sampled, i.e. the height and width of the V and U planes are half that of the Y plane. |
QVideoFrame::Format_UYVY
|
20
|
The frame is stored using an 8-bit per component packed YUV format with the U and V planes horizontally sub-sampled (U-Y-V-Y), i.e. two horizontally adjacent pixels are stored as a 32-bit macropixel which has a Y value for each pixel and common U and V values. |
QVideoFrame::Format_YUYV
|
21
|
The frame is stored using an 8-bit per component packed YUV format with the U and V planes horizontally sub-sampled (Y-U-Y-V), i.e. two horizontally adjacent pixels are stored as a 32-bit macropixel which has a Y value for each pixel and common U and V values. |
QVideoFrame::Format_NV12
|
22
|
The frame is stored using an 8-bit per component semi-planar YUV format with a Y plane (Y) followed by a horizontally and vertically sub-sampled, packed UV plane (U-V). |
QVideoFrame::Format_NV21
|
23
|
The frame is stored using an 8-bit per component semi-planar YUV format with a Y plane (Y) followed by a horizontally and vertically sub-sampled, packed VU plane (V-U). |
QVideoFrame::Format_IMC1
|
24
|
The frame is stored using an 8-bit per component planar YUV format with the U and V planes horizontally and vertically sub-sampled. This is similar to the Format_YUV420P type, except that the bytes per line of the U and V planes are padded out to the same stride as the Y plane. |
QVideoFrame::Format_IMC2
|
25
|
The frame is stored using an 8-bit per component planar YUV format with the U and V planes horizontally and vertically sub-sampled. This is similar to the Format_YUV420P type, except that the lines of the U and V planes are interleaved, i.e. each line of U data is followed by a line of V data creating a single line of the same stride as the Y data. |
QVideoFrame::Format_IMC3
|
26
|
The frame is stored using an 8-bit per component planar YVU format with the V and U planes horizontally and vertically sub-sampled. This is similar to the Format_YV12 type, except that the bytes per line of the V and U planes are padded out to the same stride as the Y plane. |
QVideoFrame::Format_IMC4
|
27
|
The frame is stored using an 8-bit per component planar YVU format with the V and U planes horizontally and vertically sub-sampled. This is similar to the Format_YV12 type, except that the lines of the V and U planes are interleaved, i.e. each line of V data is followed by a line of U data creating a single line of the same stride as the Y data. |
QVideoFrame::Format_Y8
|
28
|
使用 8 位灰度格式存儲幀。 |
QVideoFrame::Format_Y16
|
29
|
使用 16 位綫性灰度格式存儲幀。小端在前。 |
QVideoFrame::Format_User
|
1000
|
用戶定義像素格式的起始值。 |
構造 null 視頻幀。
構造視頻幀從 buffer of the given pixel format and size (以像素為單位)。
注意: 這不會遞增視頻緩衝的引用計數。
構造視頻幀采用給定像素 format and size (以像素為單位)。
The bytesPerLine (步幅) 是每掃描行的長度 (以字節為單位),和 bytes 是必須為幀分配的總字節數。
構造視頻幀從 image .
注意: 這會構造無效視頻幀,若不存在等價圖像格式的幀類型。
另請參閱 pixelFormatFromImageFormat ().
構造副本為 other .
銷毀視頻幀。
返迴指嚮幀數據緩衝起始的指針。
此值纔有效當幀數據為 mapped .
另請參閱 map (), mappedBytes (),和 bytesPerLine ().
返迴指嚮幀數據緩衝起始的指針。
此值纔有效當幀數據為 mapped .
另請參閱 map (), mappedBytes (),和 bytesPerLine ().
返迴掃描行字節數。
注意: This is the bytes per line of the first plane only. The bytes per line of subsequent planes should be calculated as per the frame type.
此值纔有效當幀數據為 mapped .
另請參閱 bits (), map (),和 mappedBytes ().
Returns the presentation time when a frame should stop being displayed.
另請參閱 setEndTime ().
返迴隔行掃描視頻幀所屬的字段。
若不是隔行掃描視頻,這會返迴 WholeFrame。
另請參閱 setFieldType ().
返迴視頻幀緩衝的特定類型句柄。
For an OpenGL texture this would be the texture ID.
另請參閱 QAbstractVideoBuffer::handle ().
返迴視頻幀的句柄類型。
返迴視頻幀的高度。
[static]
QImage::Format
QVideoFrame::
imageFormatFromPixelFormat
(
PixelFormat
format
)
返迴圖像格式等效視頻幀像素 format 。若沒有等效格式 QImage::Format_Invalid 被返迴取而代之。
標識目前是否把視頻幀內容,映射到係統內存。
This is a convenience function which checks that the MapMode of the frame is not equal to QAbstractVideoBuffer::NotMapped .
Returns true if the contents of the video frame are mapped to system memory, and false otherwise.
另請參閱 mapMode () 和 QAbstractVideoBuffer::MapMode .
標識視頻幀映射內容,是否是從幀讀取當映射時。
這是方便校驗函數若 MapMode 包含 QAbstractVideoBuffer::WriteOnly 標誌。
返迴 true 若從視頻幀讀取映射內存內容,和 false 否則。
另請參閱 mapMode () 和 QAbstractVideoBuffer::MapMode .
標識視頻幀是否有效。
無效幀沒有關聯它的視頻緩衝。
返迴 true 若幀有效,和 false 若幀無效。
標識視頻幀的映射內容是否會持久化,當取消幀映射時。
這是方便校驗函數若 MapMode 包含 QAbstractVideoBuffer::WriteOnly 標誌。
返迴 true 若將更新視頻幀當取消映射時,否則返迴 false。
注意: 更改以隻讀方式映射幀數據的結果未定義。從屬緩衝實現,改變可能持久化,或更糟更改共享緩衝。
另請參閱 mapMode () 和 QAbstractVideoBuffer::MapMode .
Maps the contents of a video frame to memory.
映射 mode 指示映射內存內容是否應讀取自和/或寫入幀。若映射模式包括 QAbstractVideoBuffer::ReadOnly flag the mapped memory will be populated with the content of the video frame when mapped. If the map mode inclues the QAbstractVideoBuffer::WriteOnly flag the content of the mapped memory will be persisted in the frame when unmapped.
當映射時,可以直接訪問視頻幀內容透過指針返迴通過 bits () 函數。
When access to the data is no longer needed be sure to call the unmap () function to release the mapped memory.
Returns true if the buffer was mapped to memory in the given mode 和 false 否則。
另請參閱 unmap (), mapMode (),和 bits ().
返迴將視頻幀映射到係統內存中的模式。
另請參閱 map () 和 QAbstractVideoBuffer::MapMode .
返迴由映射幀數據所占據的字節數。
此值纔有效當幀數據為 mapped .
另請參閱 map ().
返迴視頻幀的顔色格式。
[static]
PixelFormat
QVideoFrame::
pixelFormatFromImageFormat
(
QImage::Format
format
)
Returns an video pixel format equivalent to an image format 。若不存在等價格式,返迴 QVideoFrame::InvalidType 代替。
設置呈現 time when a frame should stop being displayed.
另請參閱 endTime ().
設置 field 屬於隔行掃描視頻幀。
另請參閱 fieldType ().
設置呈現 time when the frame should be displayed.
另請參閱 startTime ().
Returns the size of a video frame.
Returns the presentation time when the frame should be displayed.
另請參閱 setStartTime ().
釋放內存映射通過 map () 函數。
若 MapMode 包括 QAbstractVideoBuffer::WriteOnly 標誌,則這會把映射內存當前內容堅持到視頻幀。
另請參閱 map ().
返迴視頻幀的寬度。
賦值內容對於 other to a video frame.