Agora Java API Reference for Android
Public Types | Public Attributes | List of all members
agora::media::base::ExternalVideoFrame Struct Reference

The external video frame. More...

#include <AgoraMediaBase.h>

Public Types

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 }
 The video buffer type. More...
 

Public Attributes

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
 
long long fenceObject
 
float matrix [16]
 
uint8_t * metadataBuffer
 
int metadataSize
 
uint8_t * alphaBuffer
 
bool fillAlphaBuffer
 
ALPHA_STITCH_MODE alphaStitchMode
 
void * d3d11Texture2d
 
int textureSliceIndex
 
Hdr10MetadataInfo hdr10MetadataInfo
 
ColorSpace colorSpace
 

Detailed Description

The external video frame.

Member Enumeration Documentation

◆ EGL_CONTEXT_TYPE

The EGL context type.

Enumerator
EGL_CONTEXT10 

0: When using the OpenGL interface (javax.microedition.khronos.egl.*) defined by Khronos

EGL_CONTEXT14 

0: When using the OpenGL interface (android.opengl.*) defined by Android

◆ VIDEO_BUFFER_TYPE

The video buffer type.

Enumerator
VIDEO_BUFFER_RAW_DATA 

1: The video buffer in the format of raw data.

VIDEO_BUFFER_ARRAY 

2: The video buffer in the format of raw data.

VIDEO_BUFFER_TEXTURE 

3: The video buffer in the format of Texture.

Member Data Documentation

◆ type

VIDEO_BUFFER_TYPE agora::media::base::ExternalVideoFrame::type

The video type. See VIDEO_BUFFER_TYPE.

◆ format

VIDEO_PIXEL_FORMAT agora::media::base::ExternalVideoFrame::format

The pixel format. See VIDEO_PIXEL_FORMAT.

◆ buffer

void* agora::media::base::ExternalVideoFrame::buffer

Video frame buffer.

◆ stride

int agora::media::base::ExternalVideoFrame::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

int agora::media::base::ExternalVideoFrame::height

Height of the incoming video frame.

◆ cropLeft

int agora::media::base::ExternalVideoFrame::cropLeft

Raw data related parameter. The number of pixels trimmed from the left. The default value is 0.

◆ cropTop

int agora::media::base::ExternalVideoFrame::cropTop

Raw data related parameter. The number of pixels trimmed from the top. The default value is 0.

◆ cropRight

int agora::media::base::ExternalVideoFrame::cropRight

Raw data related parameter. The number of pixels trimmed from the right. The default value is 0.

◆ cropBottom

int agora::media::base::ExternalVideoFrame::cropBottom

Raw data related parameter. The number of pixels trimmed from the bottom. The default value is 0.

◆ rotation

int agora::media::base::ExternalVideoFrame::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

long long agora::media::base::ExternalVideoFrame::timestamp

Timestamp (ms) of the incoming video frame. An incorrect timestamp results in frame loss or unsynchronized audio and video.

◆ eglContext

void* agora::media::base::ExternalVideoFrame::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

EGL_CONTEXT_TYPE agora::media::base::ExternalVideoFrame::eglType

This parameter only applies to video data in Texture format. Texture ID of the video frame.

◆ textureId

int agora::media::base::ExternalVideoFrame::textureId

This parameter only applies to video data in Texture format. Incoming 4 × 4 transformational matrix. The typical value is a unit matrix.

◆ fenceObject

long long agora::media::base::ExternalVideoFrame::fenceObject

[Texture related parameter] The fence object related to the textureId parameter, indicating the synchronization status of the video data in Texture format. The default value is 0

◆ matrix

float agora::media::base::ExternalVideoFrame::matrix[16]

[Texture related parameter] Incoming 4 × 4 transformational matrix. The typical value is a unit matrix.

◆ metadataBuffer

uint8_t* agora::media::base::ExternalVideoFrame::metadataBuffer

The MetaData buffer. The default value is NULL.

Note
The default maximum metadata size is 1024 bytes. If the input size exceeds the current metadata limit, the SDK truncates the payload to the effective limit.

◆ metadataSize

int agora::media::base::ExternalVideoFrame::metadataSize

The MetaData size. The default value is 0.

Note
The default maximum metadata size is 1024 bytes.

◆ alphaBuffer

uint8_t* agora::media::base::ExternalVideoFrame::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

bool agora::media::base::ExternalVideoFrame::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

ALPHA_STITCH_MODE agora::media::base::ExternalVideoFrame::alphaStitchMode

When the video frame contains alpha channel data, it represents the relative position of alphaBuffer and the video frame. See ALPHA_STITCH_MODE.

◆ d3d11Texture2d

void* agora::media::base::ExternalVideoFrame::d3d11Texture2d

This parameter only applies to video data in Windows Texture format. It represents a pointer to an object of typeID3D11Texture2D, which is used by a video frame.

◆ textureSliceIndex

int agora::media::base::ExternalVideoFrame::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 the ID3D11Texture2D array.

◆ hdr10MetadataInfo

Hdr10MetadataInfo agora::media::base::ExternalVideoFrame::hdr10MetadataInfo

metadata info used for hdr video data

◆ colorSpace

ColorSpace agora::media::base::ExternalVideoFrame::colorSpace

By default, the color space properties of video frames will apply the Full Range and BT.709 standard configurations.