ExternalVideoFrame
The external video frame.
struct ExternalVideoFrame { ExternalVideoFrame() : type(VIDEO_BUFFER_RAW_DATA), format(VIDEO_PIXEL_DEFAULT), buffer(NULL), stride(0), height(0), cropLeft(0), cropTop(0), cropRight(0), cropBottom(0), rotation(0), timestamp(0), eglContext(NULL), eglType(EGL_CONTEXT10), textureId(0), metadataBuffer(NULL), metadataSize(0), alphaBuffer(NULL), fillAlphaBuffer(false), alphaStitchMode(0), d3d11Texture2d(NULL), textureSliceIndex(0){} enum EGL_CONTEXT_TYPE { EGL_CONTEXT10 = 0, EGL_CONTEXT14 = 1, }; enum VIDEO_BUFFER_TYPE { VIDEO_BUFFER_RAW_DATA = 1, VIDEO_BUFFER_ARRAY = 2, VIDEO_BUFFER_TEXTURE = 3, }; VIDEO_BUFFER_TYPE type; VIDEO_PIXEL_FORMAT format; void* buffer; int stride; int height; int cropLeft; int cropTop; int cropRight; int cropBottom; int rotation; long long timestamp; void *eglContext; EGL_CONTEXT_TYPE eglType; int textureId; float matrix[16]; uint8_t* metadataBuffer; int metadataSize; uint8_t* alphaBuffer; bool fillAlphaBuffer; int alphaStitchMode; void *d3d11Texture2d; int textureSliceIndex; };
Attributes
- type
-
The video type. See VIDEO_BUFFER_TYPE.
- format
- The pixel format. See VIDEO_PIXEL_FORMAT.
- buffer
- Video frame buffer.
- stride
- Line spacing of the incoming video frame, which must be in pixels instead of bytes. For textures, it is the width of the texture.
- height
- Height of the incoming video frame.
- eglContext
- This parameter only applies to video data in Texture format.
- When using the OpenGL interface (javax.microedition.khronos.egl.*) defined by Khronos, set eglContext to this field.
- When using the OpenGL interface (android.opengl.*) defined by Android, set eglContext to this field.
- eglType
- This parameter only applies to video data in Texture format. Texture ID of the video frame.
- textureId
- This parameter only applies to video data in Texture format. Incoming 4 × 4 transformational matrix. The typical value is a unit matrix.
- metadataBuffer
- This parameter only applies to video data in Texture format. The MetaData buffer. The default value is
NULL
. - metadataSize
- This parameter only applies to video data in Texture format. The MetaData size. The default value is
0
. - 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. - 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.
- fillAlphaBuffer
- This parameter only applies to video data in BGRA or RGBA format. Whether to extract the alpha channel data from the video frame and automatically fill it into alphaBuffer:
true:Extract and fill the alpha channel data.
false
: (Default) Do not extract and fill the Alpha channel data.
Note: For video data in BGRA or RGBA format, you can set the Alpha channel data in either of the following ways:- Automatically by setting this parameter to
true
. - Manually through the alphaBuffer parameter.
- alphaStitchMode
- When the video frame contains alpha channel data, it represents the relative position of alphaBuffer and the video frame. See ALPHA_STITCH_MODE.
- textureSliceIndex
- This parameter only applies to video data in Windows Texture format. It represents an index of an
ID3D11Texture2D
texture object used by the video frame in theID3D11Texture2D
array. - cropLeft
- Raw data related parameter. The number of pixels trimmed from the left. The default value is 0.
- cropTop
- Raw data related parameter. The number of pixels trimmed from the top. The default value is 0.
- cropRight
- Raw data related parameter. The number of pixels trimmed from the right. The default value is 0.
- cropBottom
- Raw data related parameter. The number of pixels trimmed from the bottom. The default value is 0.
- rotation
- Raw data related parameter. The clockwise rotation of the video frame. You can set the rotation angle as 0, 90, 180, or 270. The default value is 0.
- timestamp
- Timestamp (ms) of the incoming video frame. An incorrect timestamp results in frame loss or unsynchronized audio and video.