Agora RTC Objective-C API Reference Refactor

NGIAgoraVideoTrack.h
Go to the documentation of this file.
1
2 // Copyright (c) 2019 Agora.io. All rights reserved
3
4 // This program is confidential and proprietary to Agora.io.
5 // And may not be copied, reproduced, modified, disclosed to others, published
6 // or used, in whole or in part, without the express prior written permission
7 // of Agora.io.
8
9 #pragma once // NOLINT(build/header_guard)
10
11 #include "AgoraBase.h"
12 #include <api/aosl_ref.h>
13
14 #ifndef OPTIONAL_OVERRIDE
15 #if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1800)
16 #define OPTIONAL_OVERRIDE override
17 #else
18 #define OPTIONAL_OVERRIDE
19 #endif
20 #endif
21
22 namespace agora {
23 namespace rtc {
24 class IVideoFilter;
25 class IVideoEncodedFrameObserver;
26 class IMediaPacketReceiver;
27 class IVideoSinkBase;
28
29 enum StreamLayerIndexInternal {
30 STREAM_LAYER_1 = 1,
31 STREAM_LAYER_2 = 2,
32 STREAM_LAYER_3 = 3,
33 STREAM_LAYER_4 = 4,
34 STREAM_LAYER_5 = 5,
35 STREAM_LAYER_6 = 6,
36 STREAM_LOW = 7,
37 STREAM_LAYER_COUNT_MAX = 8
38 };
39
40 struct StreamLayerConfigInternal {
41 VideoDimensions dimensions;
42 int framerate;
43 int bitrate_kbps;
44 bool enable;
45 StreamLayerConfigInternal() : dimensions(0, 0), framerate(0), bitrate_kbps(STANDARD_BITRATE), enable(false) {}
46 StreamLayerConfigInternal(const StreamLayerConfigInternal& other) : dimensions(other.dimensions), framerate(other.framerate), bitrate_kbps(other.bitrate_kbps), enable(other.enable) {}
47 bool operator==(const StreamLayerConfigInternal& rhs) const {
48 return dimensions == rhs.dimensions && bitrate_kbps == rhs.bitrate_kbps && framerate == rhs.framerate && enable == rhs.enable;
49 }
50
51 StreamLayerConfigInternal& operator=(const SimulcastConfig::StreamLayerConfig& slc) {
52 dimensions = slc.dimensions;
53 framerate = slc.framerate;
54 enable = slc.enable;
55 return *this;
56 }
57
58 void reset() {
59 dimensions.width = 0;
60 dimensions.height = 0;
61 framerate = 0;
62 bitrate_kbps = STANDARD_BITRATE;
63 enable = false;
64 }
65 };
66
67 struct SimulcastConfigInternal {
68 StreamLayerConfigInternal simulcastlayerConfigs[STREAM_LAYER_COUNT_MAX];
69
70 void reset() {
71 for (int i = STREAM_LAYER_1; i < STREAM_LAYER_COUNT_MAX; i++) {
72 simulcastlayerConfigs[i].reset();
73 }
74 }
75
76 bool operator==(const SimulcastConfigInternal& rhs) const {
77 for (int i = 0; i < STREAM_LAYER_COUNT_MAX; i++) {
78 if (simulcastlayerConfigs[i] == rhs.simulcastlayerConfigs[i]) {
79 continue;
80 } else {
81 return false;
82 }
83 }
84 return true;
85 }
86 };
87
88 enum VideoTrackType {
89 LOCAL_VIDEO_TRACK,
90 REMOTE_VIDEO_TRACK,
91 REMOTE_VIDEO_IMAGE_TRACK,
92 };
93
97 class IVideoTrack : public RefCountInterface {
98 public:
116 virtual bool addVideoFilter(
117 agora_refptr<IVideoFilter> filter, media::base::VIDEO_MODULE_POSITION position = media::base::POSITION_POST_CAPTURER,
118 const char* id = NULL, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
119
130 virtual bool removeVideoFilter(
131 agora_refptr<IVideoFilter> filter, media::base::VIDEO_MODULE_POSITION position = media::base::POSITION_POST_CAPTURER,
132 const char* id = NULL, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
133
141 virtual bool hasVideoFilter(const char* id, media::base::VIDEO_MODULE_POSITION position = media::base::POSITION_POST_CAPTURER) = 0;
142
157 virtual bool addRenderer(agora_refptr<IVideoSinkBase> videoRenderer, media::base::VIDEO_MODULE_POSITION position, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
167 virtual bool removeRenderer(agora_refptr<IVideoSinkBase> videoRenderer, media::base::VIDEO_MODULE_POSITION position, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
173 virtual VideoTrackType getType() = 0;
174
183 virtual int enableVideoFilter(const char* id, bool enable, aosl_ref_t ares = AOSL_REF_INVALID) { return -1; }
184
194 virtual int setFilterProperty(const char* id, const char* key, const char* json_value, aosl_ref_t ares = AOSL_REF_INVALID) { return -1; }
195
205 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; }
206
207 protected:
208 ~IVideoTrack() {}
209 };
210
211 struct SimulcastStreamProfile {
212 int width;
213 int height;
214 int framerate;
215 int bitrate;
216 };
220 struct LocalVideoTrackStats {
224 uint64_t number_of_streams;
228 uint64_t bytes_major_stream;
232 uint64_t bytes_minor_stream;
236 uint32_t frames_encoded;
240 uint32_t ssrc_major_stream;
244 uint32_t ssrc_minor_stream;
248 int capture_frame_rate;
252 int regulated_capture_frame_rate;
256 int input_frame_rate;
260 int encode_frame_rate;
264 int render_frame_rate;
268 int target_media_bitrate_bps;
272 int media_bitrate_bps;
276 int total_bitrate_bps; // Include FEC
280 int capture_width;
284 int capture_height;
288 int regulated_capture_width;
292 int regulated_capture_height;
296 int width;
300 int height;
301 uint32_t encoder_type;
302 uint32_t hw_encoder_accelerating;
303 /*
304 * encoder vender id, VideoCodecVenderId
305 */
306 uint32_t encoder_vender_id;
310 uint32_t uplink_cost_time_ms;
314 QUALITY_ADAPT_INDICATION quality_adapt_indication;
318 unsigned short txPacketLossRate;
319
322 CAPTURE_BRIGHTNESS_LEVEL_TYPE capture_brightness_level;
323
324 SimulcastStreamProfile simulcast_stream_profile[STREAM_LAYER_COUNT_MAX];
325
326 LocalVideoTrackStats() : number_of_streams(0),
327 bytes_major_stream(0),
328 bytes_minor_stream(0),
329 frames_encoded(0),
330 ssrc_major_stream(0),
331 ssrc_minor_stream(0),
332 capture_frame_rate(0),
333 regulated_capture_frame_rate(0),
334 input_frame_rate(0),
335 encode_frame_rate(0),
336 render_frame_rate(0),
337 target_media_bitrate_bps(0),
338 media_bitrate_bps(0),
339 total_bitrate_bps(0),
340 capture_width(0),
341 capture_height(0),
342 regulated_capture_width(0),
343 regulated_capture_height(0),
344 width(0),
345 height(0),
346 encoder_type(0),
347 hw_encoder_accelerating(0),
348 encoder_vender_id(0),
349 uplink_cost_time_ms(0),
350 quality_adapt_indication(ADAPT_NONE),
351 txPacketLossRate(0),
352 capture_brightness_level(CAPTURE_BRIGHTNESS_LEVEL_INVALID) {}
353 };
354
366 class ILocalVideoTrack : public IVideoTrack {
367 public:
377 virtual int setEnabled(bool enable, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
378
395 virtual int setVideoEncoderConfiguration(const VideoEncoderConfiguration& config, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
396
406 virtual int setSimulcastStreamMode(SIMULCAST_STREAM_MODE mode, const SimulcastConfigInternal& config, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
407
413 virtual LOCAL_VIDEO_STREAM_STATE getState() = 0;
414
423 virtual bool getStatistics(LocalVideoTrackStats& stats) = 0;
424
425 virtual VideoTrackType getType() OPTIONAL_OVERRIDE { return LOCAL_VIDEO_TRACK; }
426
427 protected:
428 ~ILocalVideoTrack() {}
429 };
433 struct RemoteVideoTrackStats {
437 uid_t uid;
441 int delay;
445 int e2eDelay;
449 int width;
453 int height;
457 int receivedBitrate;
460 int decoderInputFrameRate;
463 int decoderOutputFrameRate;
466 int rendererOutputFrameRate;
469 int frameLossRate;
472 int packetLossRate;
476 VIDEO_STREAM_TYPE rxStreamType;
482 int totalFrozenTime;
486 int frozenRate;
490 uint32_t received_bytes;
494 uint32_t totalDecodedFrames;
499 int avSyncTimeMs;
504 uint32_t downlink_process_time_ms;
508 uint32_t frame_render_delay_ms;
513 uint64_t totalActiveTime;
517 uint64_t publishDuration;
521 int vqa_mos;
525 int vqa_avg_cost_ms;
529 uint32_t decoder_vender_id;
533 uint32_t decoder_type;
534
535 RemoteVideoTrackStats() : uid(0), delay(0), width(0), height(0),
536 receivedBitrate(0), decoderInputFrameRate(0), decoderOutputFrameRate(0), rendererOutputFrameRate(0),
537 frameLossRate(0), packetLossRate(0), rxStreamType(VIDEO_STREAM_HIGH),
538 totalFrozenTime(0), frozenRate(0), received_bytes(0), totalDecodedFrames(0), avSyncTimeMs(0),
539 downlink_process_time_ms(0), frame_render_delay_ms(0), totalActiveTime(0),
540 publishDuration(0), vqa_mos(0), vqa_avg_cost_ms(0), decoder_vender_id(0), decoder_type(0) {}
541 };
542
546 class IRemoteVideoTrack : public IVideoTrack {
547 public:
555 virtual bool getStatistics(RemoteVideoTrackStats& stats) = 0;
560 virtual REMOTE_VIDEO_STATE getState() = 0;
568 virtual bool getTrackInfo(VideoTrackInfo& info) = 0;
581 virtual int registerVideoEncodedFrameObserver(agora::media::IVideoEncodedFrameObserver* encodedObserver, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
589 virtual int unregisterVideoEncodedFrameObserver(agora::media::IVideoEncodedFrameObserver* encodedObserver) = 0;
590
603 virtual int registerMediaPacketReceiver(IMediaPacketReceiver* videoReceiver, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
611 virtual int unregisterMediaPacketReceiver(IMediaPacketReceiver* videoReceiver) = 0;
612
613 virtual VideoTrackType getType() OPTIONAL_OVERRIDE { return REMOTE_VIDEO_TRACK; }
614
615 protected:
616 ~IRemoteVideoTrack() {}
617 };
618
619 } // namespace rtc
620 } // namespace agora
agora::rtc::IRemoteVideoTrack::registerVideoEncodedFrameObserver
virtual int registerVideoEncodedFrameObserver(agora::media::IVideoEncodedFrameObserver *encodedObserver, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::StreamLayerConfigInternal::bitrate_kbps
int bitrate_kbps
Definition: NGIAgoraVideoTrack.h:43
agora::rtc::IVideoTrack::enableVideoFilter
virtual int enableVideoFilter(const char *id, bool enable, aosl_ref_t ares=AOSL_REF_INVALID)
Definition: NGIAgoraVideoTrack.h:183
agora::rtc::RemoteVideoTrackStats::rxStreamType
VIDEO_STREAM_TYPE rxStreamType
Definition: NGIAgoraVideoTrack.h:476
agora::media::base::VIDEO_MODULE_POSITION
VIDEO_MODULE_POSITION
Definition: AgoraMediaBase.h:1142
agora::rtc::RemoteVideoTrackStats::e2eDelay
int e2eDelay
Definition: NGIAgoraVideoTrack.h:445
agora::rtc::StreamLayerConfigInternal::StreamLayerConfigInternal
StreamLayerConfigInternal()
Definition: NGIAgoraVideoTrack.h:45
agora::rtc::StreamLayerConfigInternal
Definition: NGIAgoraVideoTrack.h:40
agora::rtc::LocalVideoTrackStats::number_of_streams
uint64_t number_of_streams
Definition: NGIAgoraVideoTrack.h:224
agora::rtc::LocalVideoTrackStats::width
int width
Definition: NGIAgoraVideoTrack.h:296
agora::rtc::ILocalVideoTrack::setVideoEncoderConfiguration
virtual int setVideoEncoderConfiguration(const VideoEncoderConfiguration &config, aosl_ref_t ares=AOSL_REF_INVALID)=0
AgoraBase.h
agora::rtc::STREAM_LAYER_6
@ STREAM_LAYER_6
Definition: NGIAgoraVideoTrack.h:35
agora::rtc::STREAM_LOW
@ STREAM_LOW
Definition: NGIAgoraVideoTrack.h:36
agora::rtc::RemoteVideoTrackStats::frozenRate
int frozenRate
Definition: NGIAgoraVideoTrack.h:486
agora::rtc::LocalVideoTrackStats::capture_frame_rate
int capture_frame_rate
Definition: NGIAgoraVideoTrack.h:248
agora::rtc::LocalVideoTrackStats::encode_frame_rate
int encode_frame_rate
Definition: NGIAgoraVideoTrack.h:260
agora::rtc::IVideoTrack
Definition: NGIAgoraVideoTrack.h:97
agora::rtc::uid_t
unsigned int uid_t
Definition: AgoraMediaBase.h:28
agora::rtc::RemoteVideoTrackStats::downlink_process_time_ms
uint32_t downlink_process_time_ms
Definition: NGIAgoraVideoTrack.h:504
agora::agora_refptr
Definition: AgoraRefPtr.h:44
agora::rtc::SimulcastStreamProfile
Definition: NGIAgoraVideoTrack.h:211
agora::rtc::QUALITY_ADAPT_INDICATION
QUALITY_ADAPT_INDICATION
Definition: AgoraBase.h:2642
agora::rtc::LocalVideoTrackStats::regulated_capture_height
int regulated_capture_height
Definition: NGIAgoraVideoTrack.h:292
agora::rtc::IVideoTrack::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)=0
agora::rtc::REMOTE_VIDEO_IMAGE_TRACK
@ REMOTE_VIDEO_IMAGE_TRACK
Definition: NGIAgoraVideoTrack.h:91
agora::rtc::StreamLayerIndexInternal
StreamLayerIndexInternal
Definition: NGIAgoraVideoTrack.h:29
agora::rtc::IRemoteVideoTrack::registerMediaPacketReceiver
virtual int registerMediaPacketReceiver(IMediaPacketReceiver *videoReceiver, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ADAPT_NONE
@ ADAPT_NONE
Definition: AgoraBase.h:2646
agora::rtc::StreamLayerConfigInternal::operator==
bool operator==(const StreamLayerConfigInternal &rhs) const
Definition: NGIAgoraVideoTrack.h:47
agora::rtc::IVideoTrack::~IVideoTrack
~IVideoTrack()
Definition: NGIAgoraVideoTrack.h:208
agora::rtc::StreamLayerConfigInternal::framerate
int framerate
Definition: NGIAgoraVideoTrack.h:42
agora::rtc::LocalVideoTrackStats::txPacketLossRate
unsigned short txPacketLossRate
Definition: NGIAgoraVideoTrack.h:318
agora::rtc::SimulcastStreamProfile::framerate
int framerate
Definition: NGIAgoraVideoTrack.h:214
agora::rtc::StreamLayerConfigInternal::dimensions
VideoDimensions dimensions
Definition: NGIAgoraVideoTrack.h:41
agora::rtc::SimulcastConfig::StreamLayerConfig::enable
bool enable
Definition: AgoraBase.h:2212
agora::rtc::RemoteVideoTrackStats::vqa_mos
int vqa_mos
Definition: NGIAgoraVideoTrack.h:521
agora::rtc::RemoteVideoTrackStats::vqa_avg_cost_ms
int vqa_avg_cost_ms
Definition: NGIAgoraVideoTrack.h:525
agora::rtc::SimulcastStreamProfile::width
int width
Definition: NGIAgoraVideoTrack.h:212
agora::rtc::ILocalVideoTrack::~ILocalVideoTrack
~ILocalVideoTrack()
Definition: NGIAgoraVideoTrack.h:428
agora::rtc::LocalVideoTrackStats::target_media_bitrate_bps
int target_media_bitrate_bps
Definition: NGIAgoraVideoTrack.h:268
agora::rtc::STREAM_LAYER_1
@ STREAM_LAYER_1
Definition: NGIAgoraVideoTrack.h:30
agora::rtc::LocalVideoTrackStats::render_frame_rate
int render_frame_rate
Definition: NGIAgoraVideoTrack.h:264
agora::rtc::VideoEncoderConfiguration
Definition: AgoraBase.h:1925
agora::rtc::IRemoteVideoTrack::getTrackInfo
virtual bool getTrackInfo(VideoTrackInfo &info)=0
agora::rtc::LocalVideoTrackStats::input_frame_rate
int input_frame_rate
Definition: NGIAgoraVideoTrack.h:256
agora::rtc::RemoteVideoTrackStats::received_bytes
uint32_t received_bytes
Definition: NGIAgoraVideoTrack.h:490
agora::rtc::StreamLayerConfigInternal::operator=
StreamLayerConfigInternal & operator=(const SimulcastConfig::StreamLayerConfig &slc)
Definition: NGIAgoraVideoTrack.h:51
agora::rtc::LocalVideoTrackStats::regulated_capture_width
int regulated_capture_width
Definition: NGIAgoraVideoTrack.h:288
agora::rtc::IVideoTrack::hasVideoFilter
virtual bool hasVideoFilter(const char *id, media::base::VIDEO_MODULE_POSITION position=media::base::POSITION_POST_CAPTURER)=0
agora::rtc::IRemoteVideoTrack::~IRemoteVideoTrack
~IRemoteVideoTrack()
Definition: NGIAgoraVideoTrack.h:616
agora::rtc::RemoteVideoTrackStats::height
int height
Definition: NGIAgoraVideoTrack.h:453
agora::rtc::RemoteVideoTrackStats::totalFrozenTime
int totalFrozenTime
Definition: NGIAgoraVideoTrack.h:482
agora::rtc::RemoteVideoTrackStats::totalActiveTime
uint64_t totalActiveTime
Definition: NGIAgoraVideoTrack.h:513
agora::rtc::STREAM_LAYER_2
@ STREAM_LAYER_2
Definition: NGIAgoraVideoTrack.h:31
agora::rtc::SimulcastStreamProfile::height
int height
Definition: NGIAgoraVideoTrack.h:213
agora::rtc::VideoTrackType
VideoTrackType
Definition: NGIAgoraVideoTrack.h:88
agora::rtc::VideoDimensions::height
int height
Definition: AgoraBase.h:1112
agora::rtc::LocalVideoTrackStats::hw_encoder_accelerating
uint32_t hw_encoder_accelerating
Definition: NGIAgoraVideoTrack.h:302
agora::rtc::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)=0
agora
Definition: AgoraAtomicOps.h:21
agora::rtc::LocalVideoTrackStats::capture_width
int capture_width
Definition: NGIAgoraVideoTrack.h:280
agora::rtc::CAPTURE_BRIGHTNESS_LEVEL_TYPE
CAPTURE_BRIGHTNESS_LEVEL_TYPE
Definition: AgoraBase.h:2973
agora::rtc::IVideoTrack::removeRenderer
virtual bool removeRenderer(agora_refptr< IVideoSinkBase > videoRenderer, media::base::VIDEO_MODULE_POSITION position, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::SIMULCAST_STREAM_MODE
SIMULCAST_STREAM_MODE
Definition: AgoraBase.h:2120
agora::rtc::REMOTE_VIDEO_STATE
REMOTE_VIDEO_STATE
Definition: AgoraBase.h:3346
agora::rtc::IVideoTrack::getFilterProperty
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:205
agora::rtc::ILocalVideoTrack::getType
virtual VideoTrackType getType() OPTIONAL_OVERRIDE
Definition: NGIAgoraVideoTrack.h:425
agora::rtc::LOCAL_VIDEO_STREAM_STATE
LOCAL_VIDEO_STREAM_STATE
Definition: AgoraBase.h:3085
agora::rtc::IVideoTrack::getType
virtual VideoTrackType getType()=0
agora::rtc::ILocalVideoTrack::setEnabled
virtual int setEnabled(bool enable, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::LocalVideoTrackStats::ssrc_major_stream
uint32_t ssrc_major_stream
Definition: NGIAgoraVideoTrack.h:240
agora::rtc::STREAM_LAYER_3
@ STREAM_LAYER_3
Definition: NGIAgoraVideoTrack.h:32
agora::rtc::LocalVideoTrackStats::regulated_capture_frame_rate
int regulated_capture_frame_rate
Definition: NGIAgoraVideoTrack.h:252
agora::rtc::RemoteVideoTrackStats::decoderInputFrameRate
int decoderInputFrameRate
Definition: NGIAgoraVideoTrack.h:460
agora::rtc::StreamLayerConfigInternal::reset
void reset()
Definition: NGIAgoraVideoTrack.h:58
agora::rtc::LocalVideoTrackStats::capture_brightness_level
CAPTURE_BRIGHTNESS_LEVEL_TYPE capture_brightness_level
Definition: NGIAgoraVideoTrack.h:322
agora::rtc::RemoteVideoTrackStats::totalDecodedFrames
uint32_t totalDecodedFrames
Definition: NGIAgoraVideoTrack.h:494
agora::rtc::LocalVideoTrackStats::ssrc_minor_stream
uint32_t ssrc_minor_stream
Definition: NGIAgoraVideoTrack.h:244
agora::rtc::IRemoteVideoTrack::unregisterMediaPacketReceiver
virtual int unregisterMediaPacketReceiver(IMediaPacketReceiver *videoReceiver)=0
agora::rtc::RemoteVideoTrackStats::delay
int delay
Definition: NGIAgoraVideoTrack.h:441
agora::rtc::IVideoTrack::setFilterProperty
virtual int setFilterProperty(const char *id, const char *key, const char *json_value, aosl_ref_t ares=AOSL_REF_INVALID)
Definition: NGIAgoraVideoTrack.h:194
agora::rtc::ILocalVideoTrack
Definition: NGIAgoraVideoTrack.h:366
agora::rtc::LocalVideoTrackStats::frames_encoded
uint32_t frames_encoded
Definition: NGIAgoraVideoTrack.h:236
agora::rtc::LocalVideoTrackStats::uplink_cost_time_ms
uint32_t uplink_cost_time_ms
Definition: NGIAgoraVideoTrack.h:310
agora::rtc::SimulcastConfig::StreamLayerConfig
Definition: AgoraBase.h:2200
agora::rtc::RemoteVideoTrackStats::RemoteVideoTrackStats
RemoteVideoTrackStats()
Definition: NGIAgoraVideoTrack.h:535
agora::rtc::LocalVideoTrackStats::encoder_vender_id
uint32_t encoder_vender_id
Definition: NGIAgoraVideoTrack.h:306
OPTIONAL_OVERRIDE
#define OPTIONAL_OVERRIDE
Definition: NGIAgoraVideoTrack.h:18
agora::rtc::RemoteVideoTrackStats::decoderOutputFrameRate
int decoderOutputFrameRate
Definition: NGIAgoraVideoTrack.h:463
agora::rtc::SimulcastConfigInternal::reset
void reset()
Definition: NGIAgoraVideoTrack.h:70
agora::rtc::SimulcastConfig::StreamLayerConfig::framerate
int framerate
Definition: AgoraBase.h:2208
agora::rtc::RemoteVideoTrackStats::decoder_type
uint32_t decoder_type
Definition: NGIAgoraVideoTrack.h:533
agora::rtc::CAPTURE_BRIGHTNESS_LEVEL_INVALID
@ CAPTURE_BRIGHTNESS_LEVEL_INVALID
Definition: AgoraBase.h:2978
agora::rtc::IMediaPacketReceiver
Definition: NGIAgoraMediaNode.h:606
agora::rtc::SimulcastConfigInternal::operator==
bool operator==(const SimulcastConfigInternal &rhs) const
Definition: NGIAgoraVideoTrack.h:76
agora::rtc::VIDEO_STREAM_HIGH
@ VIDEO_STREAM_HIGH
Definition: AgoraBase.h:1582
agora::rtc::IRemoteVideoTrack::getState
virtual REMOTE_VIDEO_STATE getState()=0
agora::rtc::RemoteVideoTrackStats::frame_render_delay_ms
uint32_t frame_render_delay_ms
Definition: NGIAgoraVideoTrack.h:508
agora::rtc::IRemoteVideoTrack::getType
virtual VideoTrackType getType() OPTIONAL_OVERRIDE
Definition: NGIAgoraVideoTrack.h:613
agora::rtc::RemoteVideoTrackStats::frameLossRate
int frameLossRate
Definition: NGIAgoraVideoTrack.h:469
agora::rtc::SimulcastConfigInternal
Definition: NGIAgoraVideoTrack.h:67
agora::rtc::SimulcastConfig::StreamLayerConfig::dimensions
VideoDimensions dimensions
Definition: AgoraBase.h:2204
agora::rtc::LocalVideoTrackStats::quality_adapt_indication
QUALITY_ADAPT_INDICATION quality_adapt_indication
Definition: NGIAgoraVideoTrack.h:314
agora::rtc::StreamLayerConfigInternal::StreamLayerConfigInternal
StreamLayerConfigInternal(const StreamLayerConfigInternal &other)
Definition: NGIAgoraVideoTrack.h:46
agora::rtc::STREAM_LAYER_4
@ STREAM_LAYER_4
Definition: NGIAgoraVideoTrack.h:33
agora::rtc::STREAM_LAYER_5
@ STREAM_LAYER_5
Definition: NGIAgoraVideoTrack.h:34
agora::rtc::RemoteVideoTrackStats::publishDuration
uint64_t publishDuration
Definition: NGIAgoraVideoTrack.h:517
agora::rtc::IRemoteVideoTrack
Definition: NGIAgoraVideoTrack.h:546
agora::rtc::IVideoTrack::addRenderer
virtual bool addRenderer(agora_refptr< IVideoSinkBase > videoRenderer, media::base::VIDEO_MODULE_POSITION position, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalVideoTrack::setSimulcastStreamMode
virtual int setSimulcastStreamMode(SIMULCAST_STREAM_MODE mode, const SimulcastConfigInternal &config, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::LocalVideoTrackStats::capture_height
int capture_height
Definition: NGIAgoraVideoTrack.h:284
agora::rtc::VIDEO_STREAM_TYPE
VIDEO_STREAM_TYPE
Definition: AgoraBase.h:1578
agora::rtc::ILocalVideoTrack::getStatistics
virtual bool getStatistics(LocalVideoTrackStats &stats)=0
agora::rtc::StreamLayerConfigInternal::enable
bool enable
Definition: NGIAgoraVideoTrack.h:44
agora::rtc::RemoteVideoTrackStats::decoder_vender_id
uint32_t decoder_vender_id
Definition: NGIAgoraVideoTrack.h:529
agora::rtc::RemoteVideoTrackStats::width
int width
Definition: NGIAgoraVideoTrack.h:449
agora::rtc::RemoteVideoTrackStats
Definition: NGIAgoraVideoTrack.h:433
agora::rtc::IRemoteVideoTrack::getStatistics
virtual bool getStatistics(RemoteVideoTrackStats &stats)=0
agora::rtc::LocalVideoTrackStats::encoder_type
uint32_t encoder_type
Definition: NGIAgoraVideoTrack.h:301
agora::rtc::VideoDimensions::width
int width
Definition: AgoraBase.h:1108
agora::rtc::STANDARD_BITRATE
const int STANDARD_BITRATE
Definition: AgoraBase.h:1125
agora::rtc::LocalVideoTrackStats::bytes_major_stream
uint64_t bytes_major_stream
Definition: NGIAgoraVideoTrack.h:228
agora::RefCountInterface
Definition: AgoraRefPtr.h:31
agora::rtc::LocalVideoTrackStats::total_bitrate_bps
int total_bitrate_bps
Definition: NGIAgoraVideoTrack.h:276
agora::rtc::LocalVideoTrackStats::simulcast_stream_profile
SimulcastStreamProfile simulcast_stream_profile[STREAM_LAYER_COUNT_MAX]
Definition: NGIAgoraVideoTrack.h:324
agora::rtc::VideoDimensions
Definition: AgoraBase.h:1104
agora::media::IVideoEncodedFrameObserver
Definition: AgoraMediaBase.h:1642
agora::media::base::POSITION_POST_CAPTURER
@ POSITION_POST_CAPTURER
Definition: AgoraMediaBase.h:1143
agora::rtc::IRemoteVideoTrack::unregisterVideoEncodedFrameObserver
virtual int unregisterVideoEncodedFrameObserver(agora::media::IVideoEncodedFrameObserver *encodedObserver)=0
agora::rtc::STREAM_LAYER_COUNT_MAX
@ STREAM_LAYER_COUNT_MAX
Definition: NGIAgoraVideoTrack.h:37
agora::rtc::RemoteVideoTrackStats::packetLossRate
int packetLossRate
Definition: NGIAgoraVideoTrack.h:472
agora::rtc::LocalVideoTrackStats::bytes_minor_stream
uint64_t bytes_minor_stream
Definition: NGIAgoraVideoTrack.h:232
agora::rtc::RemoteVideoTrackStats::avSyncTimeMs
int avSyncTimeMs
Definition: NGIAgoraVideoTrack.h:499
agora::rtc::LocalVideoTrackStats::LocalVideoTrackStats
LocalVideoTrackStats()
Definition: NGIAgoraVideoTrack.h:326
agora::rtc::LocalVideoTrackStats::media_bitrate_bps
int media_bitrate_bps
Definition: NGIAgoraVideoTrack.h:272
agora::rtc::VideoTrackInfo
Definition: AgoraBase.h:3460
agora::rtc::REMOTE_VIDEO_TRACK
@ REMOTE_VIDEO_TRACK
Definition: NGIAgoraVideoTrack.h:90
agora::rtc::LocalVideoTrackStats::height
int height
Definition: NGIAgoraVideoTrack.h:300
agora::rtc::SimulcastConfigInternal::simulcastlayerConfigs
StreamLayerConfigInternal simulcastlayerConfigs[STREAM_LAYER_COUNT_MAX]
Definition: NGIAgoraVideoTrack.h:68
agora::rtc::ILocalVideoTrack::getState
virtual LOCAL_VIDEO_STREAM_STATE getState()=0
agora::rtc::RemoteVideoTrackStats::rendererOutputFrameRate
int rendererOutputFrameRate
Definition: NGIAgoraVideoTrack.h:466
agora::rtc::RemoteVideoTrackStats::uid
uid_t uid
Definition: NGIAgoraVideoTrack.h:437
agora::rtc::LOCAL_VIDEO_TRACK
@ LOCAL_VIDEO_TRACK
Definition: NGIAgoraVideoTrack.h:89
agora::rtc::SimulcastStreamProfile::bitrate
int bitrate
Definition: NGIAgoraVideoTrack.h:215
agora::rtc::RemoteVideoTrackStats::receivedBitrate
int receivedBitrate
Definition: NGIAgoraVideoTrack.h:457
agora::rtc::LocalVideoTrackStats
Definition: NGIAgoraVideoTrack.h:220