Agora RTC Objective-C API Reference Refactor

Public Member Functions
ILocalVideoTrack Class Referenceabstract

Inherits IVideoTrack.

## Public Member Functions
virtual void | setEnabled (bool enable)=0
virtual int | setVideoEncoderConfiguration (const VideoEncoderConfiguration &config)=0
virtual int | setSimulcastStreamMode (SIMULCAST_STREAM_MODE mode, const SimulcastStreamConfig &config)=0
virtual LOCAL_VIDEO_STREAM_STATE | getState ()=0
virtual bool | getStatistics (LocalVideoTrackStats &stats)=0
virtual VideoTrackType | getType () OPTIONAL_OVERRIDE
virtual bool | addVideoFilter (agora_refptr< IVideoFilter > filter, media::base::VIDEO_MODULE_POSITION position=media::base::POSITION_POST_CAPTURER, const char *id=NULL)=0
virtual bool | removeVideoFilter (agora_refptr< IVideoFilter > filter, media::base::VIDEO_MODULE_POSITION position=media::base::POSITION_POST_CAPTURER, const char *id=NULL)=0
virtual bool | hasVideoFilter (const char *id, media::base::VIDEO_MODULE_POSITION position=media::base::POSITION_POST_CAPTURER)=0
virtual bool | addRenderer (agora_refptr< IVideoSinkBase > videoRenderer, media::base::VIDEO_MODULE_POSITION position=media::base::POSITION_PRE_RENDERER)=0
virtual bool | removeRenderer (agora_refptr< IVideoSinkBase > videoRenderer, media::base::VIDEO_MODULE_POSITION position=media::base::POSITION_PRE_RENDERER)=0
virtual int | enableVideoFilter (const char *id, bool enable)
virtual int | setFilterProperty (const char *id, const char *key, const char *json_value)
virtual int | getFilterProperty (const char *id, const char *key, char *json_value, size_t buf_size)

## Detailed Description

`ILocalVideoTrack` is the basic class for local video tracks, providing the main methods of local video tracks. You can create a local video track by calling one of the following methods:

- `createCameraVideoTrack`
- `createScreenVideoTrack`
- `createMixedVideoTrack`
- `createCustomVideoTrack`
- `createMediaPlayerVideoTrack`

After creating local video tracks, you can publish one or more local video tracks by calling publishVideo.

## Constructor & Destructor Documentation

## ◆ ~ILocalVideoTrack()

~ILocalVideoTrack | ( |  | ) |
| inlineprotected

## Member Function Documentation

## ◆ setEnabled()

virtual void setEnabled | ( | bool | enable | ) |
| pure virtual

Enables or disables the local video track.

Once the local video track is enabled, the SDK allows for local video capturing, processing, and encoding.

Parameters

  enable | Determines whether to enable the local video track. `true`: Enable the local video track. `false`: Disable the local video track.

## ◆ setVideoEncoderConfiguration()

virtual int setVideoEncoderConfiguration | ( | const VideoEncoderConfiguration & | config | ) |
| pure virtual

Sets the video encoder configuration.

Each video encoder configuration corresponds to a set of video parameters, including the resolution, frame rate, bitrate, and video orientation.

The configurations specified in this method are the maximum values under ideal network conditions. If the video engine cannot render the video using the specified parameters due to poor network conditions, the configurations further down the list are considered until a successful configuration is found.

Parameters

  config | The reference to the video encoder configuration. See VideoEncoderConfiguration.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ setSimulcastStreamMode()

virtual int setSimulcastStreamMode | ( | SIMULCAST_STREAM_MODE | mode,
|  | const SimulcastStreamConfig & | config
| ) |  |
| pure virtual

Set simulcast stream mode, enable, disable or auto enable

Parameters

  mode | Determines simulcast stream mode. See SIMULCAST_STREAM_MODE.
  config | The reference to the configurations for the simulcast stream mode. See SimulcastStreamConfig.

Returns
  - 0: Success.
  - < 0: Failure.

## ◆ getState()

virtual LOCAL_VIDEO_STREAM_STATE getState | ( |  | ) |
| pure virtual

Gets the state of the local video stream.

Returns
  The current state of the local video stream.

## ◆ getStatistics()

virtual bool getStatistics | ( | LocalVideoTrackStats & | stats | ) |
| pure virtual

Gets the statistics of the local video track.

Parameters

  [out] | stats | The reference to the statistics of the local video track.

Returns
  - `true`: Success.
  - `false`: Failure.

## ◆ getType()

virtual VideoTrackType getType | ( |  | ) |
| inlinevirtual

Get the track type of the video track

Returns
  - VideoTrackType

Implements IVideoTrack.

## ◆ addVideoFilter()

virtual bool addVideoFilter | ( | agora_refptr< IVideoFilter > | filter,
|  | media::base::VIDEO_MODULE_POSITION | position = `media::base::POSITION_POST_CAPTURER`,
|  | const char * | id = `NULL`
| ) |  |
| pure virtualinherited

Adds a video filter to the video track.

Add a video filter in either of the following ways:

- Use the IMediaNodeFactory object to create a built-in video filter.
- Use a custom video filter by implementing the IVideoFilter class.

To add multiple filters, call this method multiple times. The order of the added filters depends on when the app successfully adds the filter.

Parameters

  filter | The video filter that you want to add to the video track.
  position | The position where the filter is added.
  id | id of the filter

Returns
  - `true`: The video filter is added successfully.
  - `false`: The video filter fails to be added.

## ◆ removeVideoFilter()

virtual bool removeVideoFilter | ( | agora_refptr< IVideoFilter > | filter,
|  | media::base::VIDEO_MODULE_POSITION | position = `media::base::POSITION_POST_CAPTURER`,
|  | const char * | id = `NULL`
| ) |  |
| pure virtualinherited

Removes the video filter added by `addVideoFilter` from the video track.

Parameters

  filter | The video filter that you want to remove: `IVideoFilter`.
  position | The position of the filter. @id id of the filter

Returns
  - `true`: The video filter is removed successfully.
  - `false`: The video filter fails to be removed.

## ◆ hasVideoFilter()

virtual bool hasVideoFilter | ( | const char * | id,
|  | media::base::VIDEO_MODULE_POSITION | position = `media::base::POSITION_POST_CAPTURER`
| ) |  |
| pure virtualinherited

Whether a video filter exists

Parameters

  id | id of the filter

Returns
  - true: exist
  - false: not exist

## ◆ addRenderer()

virtual bool addRenderer | ( | agora_refptr< IVideoSinkBase > | videoRenderer,
|  | media::base::VIDEO_MODULE_POSITION | position = `media::base::POSITION_PRE_RENDERER`
| ) |  |
| pure virtualinherited

Adds a video renderer to the video track.

Add a video renderer in either of the following ways:

- Use the built-in video renderer by implementing the `IVideoRenderer` in the `IMediaNodeFactory` class.
- Use a custom video renderer by implementing the `IVideoSinkBase` class.

Parameters

  videoRenderer | The video renderer that you want to add: IVideoSinkBase.
  position | The position where the renderer is added.

Returns
  - `true`: The video renderer is added successfully.
  - `false`: The video renderer fails to be added.

## ◆ removeRenderer()

virtual bool removeRenderer | ( | agora_refptr< IVideoSinkBase > | videoRenderer,
|  | media::base::VIDEO_MODULE_POSITION | position = `media::base::POSITION_PRE_RENDERER`
| ) |  |
| pure virtualinherited

Removes the video renderer added by `addRenderer` from the video track.

Parameters

  videoRenderer | The video renderer that you want to remove: IVideoSinkBase.
  position | The position where the renderer is removed: VIDEO_MODULE_POSITION.

Returns
  - `true`: The video renderer is removed successfully.
  - `false`: The video renderer fails to be removed.

## ◆ enableVideoFilter()

virtual int enableVideoFilter | ( | const char * | id,
|  | bool | enable
| ) |  |
| inlinevirtualinherited

Enable / Disable specified video filter

Parameters

  id | id of the filter
  enable | enable / disable the filter with given id

Returns
  - 0: success
  - <0: failure

## ◆ setFilterProperty()

virtual int setFilterProperty | ( | const char * | id,
|  | const char * | key,
|  | const char * | json_value
| ) |  |
| inlinevirtualinherited

set the properties of the specified video filter

Parameters

  id | id of the filter
  key | key of the property
  json_value | json str value of the property

Returns
  - 0: success
  - <0: failure

## ◆ getFilterProperty()

virtual int getFilterProperty | ( | const char * | id,
|  | const char * | key,
|  | char * | json_value,
|  | size_t | buf_size
| ) |  |
| inlinevirtualinherited

get the properties of the specified video filter

Parameters

  id | id of the filter
  key | key of the property
  json_value | json str value of the property

Returns
  - 0: success
  - <0: failure

## ◆ AddRef()

virtual void AddRef | ( |  | ) | const
| pure virtualinherited

## ◆ Release()

virtual RefCountReleaseStatus Release | ( |  | ) | const
| pure virtualinherited

## ◆ HasOneRef()

virtual bool HasOneRef | ( |  | ) | const
| pure virtualinherited