Agora RTC Objective-C API Reference Refactor

Data Fields
VideoFrame Struct Reference

## Data Fields
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
ALPHA_STITCH_MODE | alphaStitchMode
void * | pixelBuffer
IVideoFrameMetaInfo * | metaInfo
Hdr10MetadataInfo | hdr10MetadataInfo
ColorSpace | colorSpace

## Detailed Description

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.

## Constructor & Destructor Documentation

## ◆ VideoFrame()

VideoFrame | ( |  | ) |
| inline

## Field Documentation

## ◆ type

VIDEO_PIXEL_FORMAT type

The pixel format. See `VIDEO_PIXEL_FORMAT`.

## ◆ width

int width

The width of the video, in pixels.

## ◆ height

int height

The height of the video, in pixels.

## ◆ yStride

int yStride

For YUV data, the line span of the Y buffer; for RGBA data, the total data length.

Note
  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

int uStride

For YUV data, the line span of the U buffer; for RGBA data, the value is 0.

Note
  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

int vStride

For YUV data, the line span of the V buffer; for RGBA data, the value is 0.

Note
  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

uint8_t* yBuffer

For YUV data, the pointer to the Y buffer; for RGBA data, the data buffer.

## ◆ uBuffer

uint8_t* uBuffer

For YUV data, the pointer to the U buffer; for RGBA data, the value is 0.

## ◆ vBuffer

uint8_t* vBuffer

For YUV data, the pointer to the V buffer; for RGBA data, the value is 0.

## ◆ rotation

int rotation

The clockwise rotation of the video frame before rendering. Supported values include 0, 90, 180, and 270 degrees.

## ◆ renderTimeMs

int64_t 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

int avsync_type

Reserved for future use.

## ◆ metadata_buffer

uint8_t* metadata_buffer

This parameter only applies to video data in Texture format. The MetaData buffer. The default value is `NULL`.

## ◆ metadata_size

int metadata_size

This parameter only applies to video data in Texture format. The MetaData size. The default value is `0`.

## ◆ sharedContext

void* sharedContext

This parameter only applies to video data in Texture format. EGL Context.

## ◆ textureId

int textureId

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

## ◆ d3d11Texture2d

void* 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

float matrix[16]

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

## ◆ alphaBuffer

uint8_t* 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.

Note
  Make sure that `alphaBuffer` is exactly the same size as the video frame (width × height), otherwise it may cause the app to crash.

## ◆ alphaStitchMode

ALPHA_STITCH_MODE alphaStitchMode

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

## ◆ pixelBuffer

void* pixelBuffer

The type of CVPixelBufferRef, for iOS and macOS only.

## ◆ metaInfo

IVideoFrameMetaInfo* metaInfo

The meta information in the video frame. To use this parameter, contact `technical support`.

## ◆ hdr10MetadataInfo

Hdr10MetadataInfo hdr10MetadataInfo

metadata info used for hdr video data

## ◆ colorSpace

ColorSpace colorSpace

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