Agora C++ API Reference for All Platforms
Loading...
Searching...
No Matches
NGIAgoraVideoTrack.h
1// Copyright (c) 2019 Agora.io. All rights reserved
2
3// This program is confidential and proprietary to Agora.io.
4// And may not be copied, reproduced, modified, disclosed to others, published
5// or used, in whole or in part, without the express prior written permission
6// of Agora.io.
7
8#pragma once // NOLINT(build/header_guard)
9
10#include "AgoraBase.h"
11#include <api/aosl_ref.h>
12
13#ifndef OPTIONAL_OVERRIDE
14#if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1800)
15#define OPTIONAL_OVERRIDE override
16#else
17#define OPTIONAL_OVERRIDE
18#endif
19#endif
20
21namespace agora {
22namespace rtc {
23class IVideoFilter;
24class IVideoEncodedFrameObserver;
26class IVideoSinkBase;
27
38
65
91
97
102 public:
120 virtual bool addVideoFilter(
122 const char* id = NULL, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
123
134 virtual bool removeVideoFilter(
136 const char* id = NULL, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
137
146
161 virtual bool addRenderer(agora_refptr<IVideoSinkBase> videoRenderer, media::base::VIDEO_MODULE_POSITION position, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
171 virtual bool removeRenderer(agora_refptr<IVideoSinkBase> videoRenderer, media::base::VIDEO_MODULE_POSITION position, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
177 virtual VideoTrackType getType() = 0;
178
187 virtual int enableVideoFilter(const char* id, bool enable, aosl_ref_t ares = AOSL_REF_INVALID) { return -1; }
188
198 virtual int setFilterProperty(const char* id, const char* key, const char* json_value, aosl_ref_t ares = AOSL_REF_INVALID) { return -1; }
199
209 virtual int getFilterProperty(const char* id, const char* key, char* json_value, size_t buf_size, aosl_ref_t ares = AOSL_REF_INVALID) { return -1; }
210
223 virtual int registerVideoEncodedFrameObserver(agora::media::IVideoEncodedFrameObserver* encodedObserver, aosl_ref_t ares = AOSL_REF_INVALID) {return -1;};
232
233 protected:
235};
236
243
302 int total_bitrate_bps; // Include FEC
322 int width;
327 uint32_t encoder_type;
330 /*
331 * encoder vender id, VideoCodecVenderId
332 */
345 unsigned short txPacketLossRate;
346
350
352
381};
382
395 public:
405 virtual int setEnabled(bool enable, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
406
423 virtual int setVideoEncoderConfiguration(const VideoEncoderConfiguration& config, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
424
434 virtual int setSimulcastStreamMode(SIMULCAST_STREAM_MODE mode, const SimulcastConfigInternal& config, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
435
442
451 virtual bool getStatistics(LocalVideoTrackStats& stats) = 0;
452
453 virtual VideoTrackType getType() OPTIONAL_OVERRIDE { return LOCAL_VIDEO_TRACK; }
454
455 protected:
457};
458
570
575 public:
583 virtual bool getStatistics(RemoteVideoTrackStats& stats) = 0;
596 virtual bool getTrackInfo(VideoTrackInfo& info) = 0;
597
610 virtual int registerMediaPacketReceiver(IMediaPacketReceiver* videoReceiver, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
619
620 virtual VideoTrackType getType() OPTIONAL_OVERRIDE { return REMOTE_VIDEO_TRACK; }
621
622 protected:
624};
625
626} // namespace rtc
627} // namespace agora
Definition AgoraRefPtr.h:31
Definition AgoraRefPtr.h:44
Definition AgoraMediaBase.h:1642
Definition NGIAgoraVideoTrack.h:394
virtual int setVideoEncoderConfiguration(const VideoEncoderConfiguration &config, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual bool getStatistics(LocalVideoTrackStats &stats)=0
virtual LOCAL_VIDEO_STREAM_STATE getState()=0
virtual VideoTrackType getType() OPTIONAL_OVERRIDE
Definition NGIAgoraVideoTrack.h:453
~ILocalVideoTrack()
Definition NGIAgoraVideoTrack.h:456
virtual int setEnabled(bool enable, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual int setSimulcastStreamMode(SIMULCAST_STREAM_MODE mode, const SimulcastConfigInternal &config, aosl_ref_t ares=AOSL_REF_INVALID)=0
Definition NGIAgoraMediaNode.h:318
Definition NGIAgoraVideoTrack.h:574
virtual VideoTrackType getType() OPTIONAL_OVERRIDE
Definition NGIAgoraVideoTrack.h:620
~IRemoteVideoTrack()
Definition NGIAgoraVideoTrack.h:623
virtual REMOTE_VIDEO_STATE getState()=0
virtual int unregisterMediaPacketReceiver(IMediaPacketReceiver *videoReceiver)=0
virtual bool getTrackInfo(VideoTrackInfo &info)=0
virtual int registerMediaPacketReceiver(IMediaPacketReceiver *videoReceiver, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual bool getStatistics(RemoteVideoTrackStats &stats)=0
Definition NGIAgoraMediaNode.h:94
Definition NGIAgoraMediaNode.h:167
Definition NGIAgoraVideoTrack.h:101
virtual bool hasVideoFilter(const char *id, media::base::VIDEO_MODULE_POSITION position=media::base::POSITION_POST_CAPTURER)=0
virtual int unregisterVideoEncodedFrameObserver(agora::media::IVideoEncodedFrameObserver *encodedObserver)
Definition NGIAgoraVideoTrack.h:231
~IVideoTrack()
Definition NGIAgoraVideoTrack.h:234
virtual bool addRenderer(agora_refptr< IVideoSinkBase > videoRenderer, media::base::VIDEO_MODULE_POSITION position, aosl_ref_t ares=AOSL_REF_INVALID)=0
virtual VideoTrackType getType()=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)
Definition NGIAgoraVideoTrack.h:187
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 int getFilterProperty(const char *id, const char *key, char *json_value, size_t buf_size, aosl_ref_t ares=AOSL_REF_INVALID)
Definition NGIAgoraVideoTrack.h:209
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 int setFilterProperty(const char *id, const char *key, const char *json_value, aosl_ref_t ares=AOSL_REF_INVALID)
Definition NGIAgoraVideoTrack.h:198
virtual int registerVideoEncodedFrameObserver(agora::media::IVideoEncodedFrameObserver *encodedObserver, aosl_ref_t ares=AOSL_REF_INVALID)
Definition NGIAgoraVideoTrack.h:223
VIDEO_MODULE_POSITION
Definition AgoraMediaBase.h:1142
@ POSITION_POST_CAPTURER
Definition AgoraMediaBase.h:1143
Definition AgoraExtensions.h:5
SIMULCAST_STREAM_MODE
Definition AgoraBase.h:2157
VideoTrackType
Definition NGIAgoraVideoTrack.h:92
@ REMOTE_VIDEO_TRACK
Definition NGIAgoraVideoTrack.h:94
@ LOCAL_VIDEO_TRACK
Definition NGIAgoraVideoTrack.h:93
@ REMOTE_VIDEO_IMAGE_TRACK
Definition NGIAgoraVideoTrack.h:95
VIDEO_STREAM_TYPE
Definition AgoraBase.h:1613
@ VIDEO_STREAM_HIGH
Definition AgoraBase.h:1617
LOCAL_VIDEO_STREAM_STATE
Definition AgoraBase.h:3337
REMOTE_VIDEO_STATE
Definition AgoraBase.h:3580
const int STANDARD_BITRATE
Definition AgoraBase.h:1160
unsigned int uid_t
Definition AgoraMediaBase.h:28
QUALITY_ADAPT_INDICATION
Definition AgoraBase.h:2894
@ ADAPT_NONE
Definition AgoraBase.h:2898
StreamLayerIndexInternal
Definition NGIAgoraVideoTrack.h:28
@ STREAM_LAYER_COUNT_MAX
Definition NGIAgoraVideoTrack.h:36
@ STREAM_LAYER_6
Definition NGIAgoraVideoTrack.h:34
@ STREAM_LAYER_2
Definition NGIAgoraVideoTrack.h:30
@ STREAM_LAYER_3
Definition NGIAgoraVideoTrack.h:31
@ STREAM_LOW
Definition NGIAgoraVideoTrack.h:35
@ STREAM_LAYER_4
Definition NGIAgoraVideoTrack.h:32
@ STREAM_LAYER_1
Definition NGIAgoraVideoTrack.h:29
@ STREAM_LAYER_5
Definition NGIAgoraVideoTrack.h:33
CAPTURE_BRIGHTNESS_LEVEL_TYPE
Definition AgoraBase.h:3225
@ CAPTURE_BRIGHTNESS_LEVEL_INVALID
Definition AgoraBase.h:3230
Definition AgoraAtomicOps.h:21
Definition NGIAgoraVideoTrack.h:246
int regulated_capture_height
Definition NGIAgoraVideoTrack.h:318
uint32_t hw_encoder_accelerating
Definition NGIAgoraVideoTrack.h:328
uint32_t frames_encoded
Definition NGIAgoraVideoTrack.h:262
uint32_t ssrc_minor_stream
Definition NGIAgoraVideoTrack.h:270
int height
Definition NGIAgoraVideoTrack.h:326
int total_bitrate_bps
Definition NGIAgoraVideoTrack.h:302
uint32_t encoder_frame_depth
Definition NGIAgoraVideoTrack.h:329
CAPTURE_BRIGHTNESS_LEVEL_TYPE capture_brightness_level
Definition NGIAgoraVideoTrack.h:349
uint64_t bytes_major_stream
Definition NGIAgoraVideoTrack.h:254
int regulated_capture_frame_rate
Definition NGIAgoraVideoTrack.h:278
uint64_t number_of_streams
Definition NGIAgoraVideoTrack.h:250
int width
Definition NGIAgoraVideoTrack.h:322
int input_frame_rate
Definition NGIAgoraVideoTrack.h:282
QUALITY_ADAPT_INDICATION quality_adapt_indication
Definition NGIAgoraVideoTrack.h:341
uint64_t bytes_minor_stream
Definition NGIAgoraVideoTrack.h:258
int encode_frame_rate
Definition NGIAgoraVideoTrack.h:286
int target_media_bitrate_bps
Definition NGIAgoraVideoTrack.h:294
int capture_width
Definition NGIAgoraVideoTrack.h:306
int media_bitrate_bps
Definition NGIAgoraVideoTrack.h:298
uint32_t uplink_cost_time_ms
Definition NGIAgoraVideoTrack.h:337
SimulcastStreamProfile simulcast_stream_profile[STREAM_LAYER_COUNT_MAX]
Definition NGIAgoraVideoTrack.h:351
unsigned short txPacketLossRate
Definition NGIAgoraVideoTrack.h:345
int render_frame_rate
Definition NGIAgoraVideoTrack.h:290
LocalVideoTrackStats()
Definition NGIAgoraVideoTrack.h:353
uint32_t ssrc_major_stream
Definition NGIAgoraVideoTrack.h:266
uint32_t encoder_vender_id
Definition NGIAgoraVideoTrack.h:333
int capture_frame_rate
Definition NGIAgoraVideoTrack.h:274
uint32_t encoder_type
Definition NGIAgoraVideoTrack.h:327
int capture_height
Definition NGIAgoraVideoTrack.h:310
int regulated_capture_width
Definition NGIAgoraVideoTrack.h:314
Definition NGIAgoraVideoTrack.h:461
int frameLossRate
Definition NGIAgoraVideoTrack.h:497
uint64_t totalActiveTime
Definition NGIAgoraVideoTrack.h:541
int vqa_avg_cost_ms
Definition NGIAgoraVideoTrack.h:553
int receivedBitrate
Definition NGIAgoraVideoTrack.h:485
VIDEO_STREAM_TYPE rxStreamType
Definition NGIAgoraVideoTrack.h:504
int totalFrozenTime
Definition NGIAgoraVideoTrack.h:510
int delay
Definition NGIAgoraVideoTrack.h:469
RemoteVideoTrackStats()
Definition NGIAgoraVideoTrack.h:563
int width
Definition NGIAgoraVideoTrack.h:477
int decoderInputFrameRate
Definition NGIAgoraVideoTrack.h:488
uint32_t frame_render_delay_ms
Definition NGIAgoraVideoTrack.h:536
uint32_t downlink_process_time_ms
Definition NGIAgoraVideoTrack.h:532
int vqa_mos
Definition NGIAgoraVideoTrack.h:549
int rendererOutputFrameRate
Definition NGIAgoraVideoTrack.h:494
int avSyncTimeMs
Definition NGIAgoraVideoTrack.h:527
uid_t uid
Definition NGIAgoraVideoTrack.h:465
int e2eDelay
Definition NGIAgoraVideoTrack.h:473
uint32_t decoder_type
Definition NGIAgoraVideoTrack.h:561
uint32_t decoder_vender_id
Definition NGIAgoraVideoTrack.h:557
int decoderOutputFrameRate
Definition NGIAgoraVideoTrack.h:491
uint32_t received_bytes
Definition NGIAgoraVideoTrack.h:518
int packetLossRate
Definition NGIAgoraVideoTrack.h:500
uint64_t publishDuration
Definition NGIAgoraVideoTrack.h:545
int frozenRate
Definition NGIAgoraVideoTrack.h:514
uint32_t totalDecodedFrames
Definition NGIAgoraVideoTrack.h:522
int height
Definition NGIAgoraVideoTrack.h:481
int framerate
Definition AgoraBase.h:2249
bool enable
Definition AgoraBase.h:2255
VideoDimensions dimensions
Definition AgoraBase.h:2245
Definition NGIAgoraVideoTrack.h:66
void reset()
Definition NGIAgoraVideoTrack.h:72
bool publish_on_demand
Definition NGIAgoraVideoTrack.h:70
bool operator==(const SimulcastConfigInternal &rhs) const
Definition NGIAgoraVideoTrack.h:78
bool publish_fallback_enable
Definition NGIAgoraVideoTrack.h:69
SimulcastConfigInternal()
Definition NGIAgoraVideoTrack.h:89
StreamLayerConfigInternal simulcastlayerConfigs[STREAM_LAYER_COUNT_MAX]
Definition NGIAgoraVideoTrack.h:67
Definition NGIAgoraVideoTrack.h:237
int bitrate
Definition NGIAgoraVideoTrack.h:241
int framerate
Definition NGIAgoraVideoTrack.h:240
int width
Definition NGIAgoraVideoTrack.h:238
int height
Definition NGIAgoraVideoTrack.h:239
Definition NGIAgoraVideoTrack.h:39
bool enable
Definition NGIAgoraVideoTrack.h:43
int framerate
Definition NGIAgoraVideoTrack.h:41
bool operator==(const StreamLayerConfigInternal &rhs) const
Definition NGIAgoraVideoTrack.h:46
StreamLayerConfigInternal(const StreamLayerConfigInternal &other)
Definition NGIAgoraVideoTrack.h:45
VideoDimensions dimensions
Definition NGIAgoraVideoTrack.h:40
void reset()
Definition NGIAgoraVideoTrack.h:57
int bitrate_kbps
Definition NGIAgoraVideoTrack.h:42
StreamLayerConfigInternal()
Definition NGIAgoraVideoTrack.h:44
StreamLayerConfigInternal & operator=(const SimulcastConfig::StreamLayerConfig &slc)
Definition NGIAgoraVideoTrack.h:50
Definition AgoraBase.h:1139
Definition AgoraBase.h:1960
Definition AgoraBase.h:3694