Agora RTC Objective-C API Reference Refactor

Public Member Functions
IRemoteVideoTrack Class Referenceabstract

Inherits IVideoTrack.

## Public Member Functions
virtual bool | getStatistics (RemoteVideoTrackStats &stats)=0
virtual REMOTE_VIDEO_STATE | getState ()=0
virtual bool | getTrackInfo (VideoTrackInfo &info)=0
virtual int | registerVideoEncodedFrameObserver (agora::media::IVideoEncodedFrameObserver *encodedObserver, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int | unregisterVideoEncodedFrameObserver (agora::media::IVideoEncodedFrameObserver *encodedObserver)=0
virtual int | registerMediaPacketReceiver (IMediaPacketReceiver *videoReceiver, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int | unregisterMediaPacketReceiver (IMediaPacketReceiver *videoReceiver)=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, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual bool | removeVideoFilter (agora_refptr< IVideoFilter > filter, media::base::VIDEO_MODULE_POSITION position=media::base::POSITION_POST_CAPTURER, const char *id=NULL, aosl_ref_t ares=AOSL_REF_INVALID)=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, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual bool | removeRenderer (agora_refptr< IVideoSinkBase > videoRenderer, media::base::VIDEO_MODULE_POSITION position, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int | enableVideoFilter (const char *id, bool enable, aosl_ref_t ares=AOSL_REF_INVALID)
virtual int | setFilterProperty (const char *id, const char *key, const char *json_value, aosl_ref_t ares=AOSL_REF_INVALID)
virtual int | getFilterProperty (const char *id, const char *key, char *json_value, size_t buf_size, aosl_ref_t ares=AOSL_REF_INVALID)

## Detailed Description

The IRemoteVideoTrack class.

## Constructor & Destructor Documentation

## ◆ ~IRemoteVideoTrack()

~IRemoteVideoTrack | ( |  | ) |
| inline protected

## Member Function Documentation

## ◆ getStatistics()

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

Gets the statistics of the remote video track.

Parameters

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

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

## ◆ getState()

virtual REMOTE_VIDEO_STATE getState | ( |  | ) |
| pure virtual

Gets the state of the remote video track.

Returns
  The state of the remote video track.

## ◆ getTrackInfo()

virtual bool getTrackInfo | ( | VideoTrackInfo & | info | ) |
| pure virtual

Gets the information of the remote video track.

Parameters

  [out] | info | The reference to the information of the remote video track.

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

## ◆ registerVideoEncodedFrameObserver()

virtual int registerVideoEncodedFrameObserver | ( | agora::media::IVideoEncodedFrameObserver * | encodedObserver,
|  | aosl_ref_t | ares = `AOSL_REF_INVALID`
| ) |  |
| pure virtual

Registers an IVideoEncodedFrameObserver object.

You need to implement the `IVideoEncodedFrameObserver` class in this method. Once you successfully register the encoded image receiver, the SDK triggers the onEncodedVideoFrameReceived callback when it receives the encoded video image.

Parameters

  encodedObserver | The pointer to the `IVideoEncodedFrameObserver` object.

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

## ◆ unregisterVideoEncodedFrameObserver()

virtual int unregisterVideoEncodedFrameObserver | ( | agora::media::IVideoEncodedFrameObserver * | encodedObserver | ) |
| pure virtual

Releases the IVideoEncodedFrameObserver object.

Parameters

  encodedObserver | The pointer to the `IVideoEncodedFrameObserver` object.

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

## ◆ registerMediaPacketReceiver()

virtual int registerMediaPacketReceiver | ( | IMediaPacketReceiver * | videoReceiver,
|  | aosl_ref_t | ares = `AOSL_REF_INVALID`
| ) |  |
| pure virtual

Registers an IMediaPacketReceiver object.

You need to implement the `IMediaPacketReceiver` class in this method. Once you successfully register the media packet receiver, the SDK triggers the onMediaPacketReceived callback when it receives the video packet.

Parameters

  videoReceiver | The pointer to the `IMediaPacketReceiver` object.

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

## ◆ unregisterMediaPacketReceiver()

virtual int unregisterMediaPacketReceiver | ( | IMediaPacketReceiver * | videoReceiver | ) |
| pure virtual

Releases the IMediaPacketReceiver object.

Parameters

  videoReceiver | The pointer to the `IMediaPacketReceiver` object.

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

## ◆ getType()

virtual VideoTrackType getType | ( |  | ) |
| inline virtual

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`,
|  | aosl_ref_t | ares = `AOSL_REF_INVALID`
| ) |  |
| pure virtual inherited

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`,
|  | aosl_ref_t | ares = `AOSL_REF_INVALID`
| ) |  |
| pure virtual inherited

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 virtual inherited

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,
|  | aosl_ref_t | ares = `AOSL_REF_INVALID`
| ) |  |
| pure virtual inherited

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,
|  | aosl_ref_t | ares = `AOSL_REF_INVALID`
| ) |  |
| pure virtual inherited

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,
|  | aosl_ref_t | ares = `AOSL_REF_INVALID`
| ) |  |
| inline virtual inherited

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,
|  | aosl_ref_t | ares = `AOSL_REF_INVALID`
| ) |  |
| inline virtual inherited

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,
|  | aosl_ref_t | ares = `AOSL_REF_INVALID`
| ) |  |
| inline virtual inherited

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 virtual inherited

## ◆ Release()

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

## ◆ HasOneRef()

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