VideoFrame
Configurations of the video frame.
struct VideoFrame { VideoFrame(): type(VIDEO_PIXEL_DEFAULT), width(0), height(0), yStride(0), uStride(0), vStride(0), yBuffer(NULL), uBuffer(NULL), vBuffer(NULL), rotation(0), renderTimeMs(0), avsync_type(0), metadata_buffer(NULL), metadata_size(0), sharedContext(0), textureId(0), d3d11Texture2d(NULL), alphaBuffer(NULL), alphaStitchMode(0), pixelBuffer(NULL), metaInfo(NULL){ memset(matrix, 0, sizeof(matrix)); } VIDEO_PIXEL_FORMAT type; int width; int height; int yStride; int uStride; int vStride; uint8_t* yBuffer; uint8_t* uBuffer; uint8_t* vBuffer; int rotation; int64_t renderTimeMs; int avsync_type; uint8_t* metadata_buffer; int metadata_size; void* sharedContext; int textureId; void* d3d11Texture2d; float matrix[16]; uint8_t* alphaBuffer; int alphaStitchMode; void* pixelBuffer; IVideoFrameMetaInfo* metaInfo; };
Note that the buffer provides a pointer to a pointer. This interface cannot modify the pointer of the buffer, but it can modify the content of the buffer.
Attributes
- type
- The pixel format. See VIDEO_PIXEL_FORMAT.
- width
- The width of the video, in pixels.
- height
- The height of the video, in pixels.
- yStride
- For YUV data, the line span of the Y buffer; for RGBA data, the total data length.Attention: When dealing with video data, it is necessary to process the offset between each line of pixel data based on this parameter, otherwise it may result in image distortion.
- uStride
- For YUV data, the line span of the U buffer; for RGBA data, the value is 0.Attention: When dealing with video data, it is necessary to process the offset between each line of pixel data based on this parameter, otherwise it may result in image distortion.
- vStride
- For YUV data, the line span of the V buffer; for RGBA data, the value is 0.Attention: When dealing with video data, it is necessary to process the offset between each line of pixel data based on this parameter, otherwise it may result in image distortion.
- yBuffer
- For YUV data, the pointer to the Y buffer; for RGBA data, the data buffer.
- uBuffer
- For YUV data, the pointer to the U buffer; for RGBA data, the value is 0.
- vBuffer
- For YUV data, the pointer to the V buffer; for RGBA data, the value is 0.
- rotation
- The clockwise rotation of the video frame before rendering. Supported values include 0, 90, 180, and 270 degrees.
- renderTimeMs
- The Unix timestamp (ms) when the video frame is rendered. This timestamp can be used to guide the rendering of the video frame. This parameter is required.
- avsync_type
- Reserved for future use.
- metadata_buffer
- This parameter only applies to video data in Texture format. The MetaData buffer. The default value is
NULL
. - metadata_size
- This parameter only applies to video data in Texture format. The MetaData size. The default value is
0
. - sharedContext
- This parameter only applies to video data in Texture format. EGL Context.
- textureId
- This parameter only applies to video data in Texture format. Texture ID.
- d3d11Texture2d
- This parameter only applies to video data in Windows Texture format. It represents a pointer to an object of type
ID3D11Texture2D
, which is used by a video frame. - matrix
- This parameter only applies to video data in Texture format. Incoming 4 × 4 transformational matrix. The typical value is a unit matrix.
- alphaBuffer
-
The alpha channel data output by using portrait segmentation algorithm. This data matches the size of the video frame, with each pixel value ranging from [0,255], where 0 represents the background and 255 represents the foreground (portrait).
By setting this parameter, you can render the video background into various effects, such as transparent, solid color, image, video, etc.
- alphaStitchMode
- When the video frame contains alpha channel data, it represents the relative position of alphaBuffer and the video frame. See ALPHA_STITCH_MODE.
- metaInfo
-
The meta information in the video frame. To use this parameter, please contact technical support.