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;
25class IMediaPacketReceiver;
26class IVideoSinkBase;
27
28 enum StreamLayerIndexInternal {
29 STREAM_LAYER_1 = 1,
30 STREAM_LAYER_2 = 2,
31 STREAM_LAYER_3 = 3,
32 STREAM_LAYER_4 = 4,
33 STREAM_LAYER_5 = 5,
34 STREAM_LAYER_6 = 6,
35 STREAM_LOW = 7,
36 STREAM_LAYER_COUNT_MAX = 8
37 };
38
39 struct StreamLayerConfigInternal {
40 VideoDimensions dimensions;
41 int framerate;
42 int bitrate_kbps;
43 bool enable;
44 StreamLayerConfigInternal() : dimensions(0, 0), framerate(0), bitrate_kbps(STANDARD_BITRATE), enable(false) {}
45 StreamLayerConfigInternal(const StreamLayerConfigInternal& other) : dimensions(other.dimensions), framerate(other.framerate), bitrate_kbps(other.bitrate_kbps), enable(other.enable) {}
46 bool operator==(const StreamLayerConfigInternal& rhs) const {
47 return dimensions == rhs.dimensions && bitrate_kbps == rhs.bitrate_kbps && framerate == rhs.framerate && enable == rhs.enable;
48 }
49
50 StreamLayerConfigInternal& operator=(const SimulcastConfig::StreamLayerConfig& slc) {
51 dimensions = slc.dimensions;
52 framerate = slc.framerate;
53 enable = slc.enable;
54 return *this;
55 }
56
57 void reset() {
58 dimensions.width = 0;
59 dimensions.height = 0;
60 framerate = 0;
61 bitrate_kbps = STANDARD_BITRATE;
62 enable = false;
63 }
64};
65
66 struct SimulcastConfigInternal {
67 StreamLayerConfigInternal simulcastlayerConfigs[STREAM_LAYER_COUNT_MAX];
68
69 bool publish_fallback_enable;
70 bool publish_on_demand;
71
72 void reset() {
73 for (int i = STREAM_LAYER_1; i < STREAM_LAYER_COUNT_MAX; i++) {
74 simulcastlayerConfigs[i].reset();
75 }
76 }
77
78 bool operator==(const SimulcastConfigInternal& rhs) const {
79 for (int i = 0; i < STREAM_LAYER_COUNT_MAX; i++) {
80 if (simulcastlayerConfigs[i] == rhs.simulcastlayerConfigs[i]) {
81 continue;
82 }
83 return false;
84 }
85 return publish_fallback_enable == rhs.publish_fallback_enable &&
86 publish_on_demand == rhs.publish_on_demand;
87 }
88
89 SimulcastConfigInternal(): publish_fallback_enable(false), publish_on_demand(true) {}
90};
91
92 enum VideoTrackType {
93 LOCAL_VIDEO_TRACK,
94 REMOTE_VIDEO_TRACK,
95 REMOTE_VIDEO_IMAGE_TRACK,
96};
97
101 class IVideoTrack : public RefCountInterface {
102 public:
120 virtual bool addVideoFilter(
121 agora_refptr<IVideoFilter> filter, media::base::VIDEO_MODULE_POSITION position = media::base::POSITION_POST_CAPTURER,
122 const char* id = NULL, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
123
134 virtual bool removeVideoFilter(
135 agora_refptr<IVideoFilter> filter, media::base::VIDEO_MODULE_POSITION position = media::base::POSITION_POST_CAPTURER,
136 const char* id = NULL, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
137
145 virtual bool hasVideoFilter(const char* id, media::base::VIDEO_MODULE_POSITION position = media::base::POSITION_POST_CAPTURER) = 0;
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;};
231 virtual int unregisterVideoEncodedFrameObserver(agora::media::IVideoEncodedFrameObserver* encodedObserver) {return -1;};
232
233 protected:
234 ~IVideoTrack() {}
235};
236
237 struct SimulcastStreamProfile {
238 int width;
239 int height;
240 int framerate;
241 int bitrate;
242};
243
246 struct LocalVideoTrackStats {
250 uint64_t number_of_streams;
254 uint64_t bytes_major_stream;
258 uint64_t bytes_minor_stream;
262 uint32_t frames_encoded;
266 uint32_t ssrc_major_stream;
270 uint32_t ssrc_minor_stream;
274 int capture_frame_rate;
278 int regulated_capture_frame_rate;
282 int input_frame_rate;
286 int encode_frame_rate;
290 int render_frame_rate;
294 int target_media_bitrate_bps;
298 int media_bitrate_bps;
302 int total_bitrate_bps; // Include FEC
306 int capture_width;
310 int capture_height;
314 int regulated_capture_width;
318 int regulated_capture_height;
322 int width;
326 int height;
327 uint32_t encoder_type;
328 uint32_t hw_encoder_accelerating;
329 uint32_t encoder_frame_depth;
330 /*
331 * encoder vender id, VideoCodecVenderId
332 */
333 uint32_t encoder_vender_id;
337 uint32_t uplink_cost_time_ms;
341 QUALITY_ADAPT_INDICATION quality_adapt_indication;
345 unsigned short txPacketLossRate;
346
349 CAPTURE_BRIGHTNESS_LEVEL_TYPE capture_brightness_level;
350
351 SimulcastStreamProfile simulcast_stream_profile[STREAM_LAYER_COUNT_MAX];
352
353 LocalVideoTrackStats() : number_of_streams(0),
354 bytes_major_stream(0),
355 bytes_minor_stream(0),
356 frames_encoded(0),
357 ssrc_major_stream(0),
358 ssrc_minor_stream(0),
359 capture_frame_rate(0),
360 regulated_capture_frame_rate(0),
361 input_frame_rate(0),
362 encode_frame_rate(0),
363 render_frame_rate(0),
364 target_media_bitrate_bps(0),
365 media_bitrate_bps(0),
366 total_bitrate_bps(0),
367 capture_width(0),
368 capture_height(0),
369 regulated_capture_width(0),
370 regulated_capture_height(0),
371 width(0),
372 height(0),
373 encoder_type(0),
374 hw_encoder_accelerating(0),
375 encoder_frame_depth(8),
376 encoder_vender_id(0),
377 uplink_cost_time_ms(0),
378 quality_adapt_indication(ADAPT_NONE),
379 txPacketLossRate(0),
380 capture_brightness_level(CAPTURE_BRIGHTNESS_LEVEL_INVALID) {}
381};
382
394 class ILocalVideoTrack : public IVideoTrack {
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
441 virtual LOCAL_VIDEO_STREAM_STATE getState() = 0;
442
451 virtual bool getStatistics(LocalVideoTrackStats& stats) = 0;
452
453 virtual VideoTrackType getType() OPTIONAL_OVERRIDE { return LOCAL_VIDEO_TRACK; }
454
455 protected:
456 ~ILocalVideoTrack() {}
457};
458
461 struct RemoteVideoTrackStats {
465 uid_t uid;
469 int delay;
473 int e2eDelay;
477 int width;
481 int height;
485 int receivedBitrate;
488 int decoderInputFrameRate;
491 int decoderOutputFrameRate;
494 int rendererOutputFrameRate;
497 int frameLossRate;
500 int packetLossRate;
504 VIDEO_STREAM_TYPE rxStreamType;
510 int totalFrozenTime;
514 int frozenRate;
518 uint32_t received_bytes;
522 uint32_t totalDecodedFrames;
527 int avSyncTimeMs;
532 uint32_t downlink_process_time_ms;
536 uint32_t frame_render_delay_ms;
541 uint64_t totalActiveTime;
545 uint64_t publishDuration;
549 int vqa_mos;
553 int vqa_avg_cost_ms;
557 uint32_t decoder_vender_id;
561 uint32_t decoder_type;
562
563 RemoteVideoTrackStats() : uid(0), delay(0), width(0), height(0),
564 receivedBitrate(0), decoderInputFrameRate(0), decoderOutputFrameRate(0), rendererOutputFrameRate(0),
565 frameLossRate(0), packetLossRate(0), rxStreamType(VIDEO_STREAM_HIGH),
566 totalFrozenTime(0), frozenRate(0), received_bytes(0), totalDecodedFrames(0), avSyncTimeMs(0),
567 downlink_process_time_ms(0), frame_render_delay_ms(0), totalActiveTime(0),
568 publishDuration(0), vqa_mos(0), vqa_avg_cost_ms(0), decoder_vender_id(0), decoder_type(0) {}
569};
570
574 class IRemoteVideoTrack : public IVideoTrack {
575 public:
583 virtual bool getStatistics(RemoteVideoTrackStats& stats) = 0;
588 virtual REMOTE_VIDEO_STATE getState() = 0;
596 virtual bool getTrackInfo(VideoTrackInfo& info) = 0;
597
610 virtual int registerMediaPacketReceiver(IMediaPacketReceiver* videoReceiver, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
618 virtual int unregisterMediaPacketReceiver(IMediaPacketReceiver* videoReceiver) = 0;
619
620 virtual VideoTrackType getType() OPTIONAL_OVERRIDE { return REMOTE_VIDEO_TRACK; }
621
622 protected:
623 ~IRemoteVideoTrack() {}
624};
625
626} // namespace rtc
627} // namespace agora
agora::RefCountInterface
Definition AgoraRefPtr.h:31
agora::agora_refptr
Definition AgoraRefPtr.h:44
agora::media::IVideoEncodedFrameObserver
Definition AgoraMediaBase.h:1920
agora::rtc::ILocalVideoTrack
Definition NGIAgoraVideoTrack.h:394
agora::rtc::ILocalVideoTrack::setVideoEncoderConfiguration
virtual int setVideoEncoderConfiguration(const VideoEncoderConfiguration &config, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::ILocalVideoTrack::getStatistics
virtual bool getStatistics(LocalVideoTrackStats &stats)=0
agora::rtc::ILocalVideoTrack::getState
virtual LOCAL_VIDEO_STREAM_STATE getState()=0
agora::rtc::ILocalVideoTrack::getType
virtual VideoTrackType getType() OPTIONAL_OVERRIDE
Definition NGIAgoraVideoTrack.h:453
agora::rtc::ILocalVideoTrack::~ILocalVideoTrack
~ILocalVideoTrack()
Definition NGIAgoraVideoTrack.h:456
agora::rtc::ILocalVideoTrack::setEnabled
virtual int setEnabled(bool enable, 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::IMediaPacketReceiver
Definition NGIAgoraMediaNode.h:318
agora::rtc::IRemoteVideoTrack
Definition NGIAgoraVideoTrack.h:574
agora::rtc::IRemoteVideoTrack::getType
virtual VideoTrackType getType() OPTIONAL_OVERRIDE
Definition NGIAgoraVideoTrack.h:620
agora::rtc::IRemoteVideoTrack::~IRemoteVideoTrack
~IRemoteVideoTrack()
Definition NGIAgoraVideoTrack.h:623
agora::rtc::IRemoteVideoTrack::getState
virtual REMOTE_VIDEO_STATE getState()=0
agora::rtc::IRemoteVideoTrack::unregisterMediaPacketReceiver
virtual int unregisterMediaPacketReceiver(IMediaPacketReceiver *videoReceiver)=0
agora::rtc::IRemoteVideoTrack::getTrackInfo
virtual bool getTrackInfo(VideoTrackInfo &info)=0
agora::rtc::IRemoteVideoTrack::registerMediaPacketReceiver
virtual int registerMediaPacketReceiver(IMediaPacketReceiver *videoReceiver, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IRemoteVideoTrack::getStatistics
virtual bool getStatistics(RemoteVideoTrackStats &stats)=0
agora::rtc::IVideoFilter
Definition NGIAgoraMediaNode.h:94
agora::rtc::IVideoSinkBase
Definition NGIAgoraMediaNode.h:167
agora::rtc::IVideoTrack
Definition NGIAgoraVideoTrack.h:101
agora::rtc::IVideoTrack::hasVideoFilter
virtual bool hasVideoFilter(const char *id, media::base::VIDEO_MODULE_POSITION position=media::base::POSITION_POST_CAPTURER)=0
agora::rtc::IVideoTrack::unregisterVideoEncodedFrameObserver
virtual int unregisterVideoEncodedFrameObserver(agora::media::IVideoEncodedFrameObserver *encodedObserver)
Definition NGIAgoraVideoTrack.h:231
agora::rtc::IVideoTrack::~IVideoTrack
~IVideoTrack()
Definition NGIAgoraVideoTrack.h:234
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::IVideoTrack::getType
virtual VideoTrackType getType()=0
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::IVideoTrack::enableVideoFilter
virtual int enableVideoFilter(const char *id, bool enable, aosl_ref_t ares=AOSL_REF_INVALID)
Definition NGIAgoraVideoTrack.h:187
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::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:209
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::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:198
agora::rtc::IVideoTrack::registerVideoEncodedFrameObserver
virtual int registerVideoEncodedFrameObserver(agora::media::IVideoEncodedFrameObserver *encodedObserver, aosl_ref_t ares=AOSL_REF_INVALID)
Definition NGIAgoraVideoTrack.h:223
agora::media::base::VIDEO_MODULE_POSITION
VIDEO_MODULE_POSITION
The frame position of the video observer.
Definition AgoraMediaBase.h:1239
agora::media::base::POSITION_POST_CAPTURER
@ POSITION_POST_CAPTURER
Definition AgoraMediaBase.h:1245
agora::rtc
Definition AgoraExtensions.h:5
agora::rtc::SIMULCAST_STREAM_MODE
SIMULCAST_STREAM_MODE
The mode in which the video stream is sent.
Definition AgoraBase.h:2210
agora::rtc::VideoTrackType
VideoTrackType
Definition NGIAgoraVideoTrack.h:92
agora::rtc::REMOTE_VIDEO_TRACK
@ REMOTE_VIDEO_TRACK
Definition NGIAgoraVideoTrack.h:94
agora::rtc::LOCAL_VIDEO_TRACK
@ LOCAL_VIDEO_TRACK
Definition NGIAgoraVideoTrack.h:93
agora::rtc::REMOTE_VIDEO_IMAGE_TRACK
@ REMOTE_VIDEO_IMAGE_TRACK
Definition NGIAgoraVideoTrack.h:95
agora::rtc::VIDEO_STREAM_TYPE
VIDEO_STREAM_TYPE
The type of video streams.
Definition AgoraBase.h:1660
agora::rtc::VIDEO_STREAM_HIGH
@ VIDEO_STREAM_HIGH
Definition AgoraBase.h:1664
agora::rtc::LOCAL_VIDEO_STREAM_STATE
LOCAL_VIDEO_STREAM_STATE
Local video state types.
Definition AgoraBase.h:3488
agora::rtc::REMOTE_VIDEO_STATE
REMOTE_VIDEO_STATE
The state of the remote video stream.
Definition AgoraBase.h:3776
agora::rtc::STANDARD_BITRATE
const int STANDARD_BITRATE
Definition AgoraBase.h:1187
agora::rtc::uid_t
unsigned int uid_t
Definition AgoraMediaBase.h:28
agora::rtc::QUALITY_ADAPT_INDICATION
QUALITY_ADAPT_INDICATION
Quality change of the local video in terms of target frame rate and target bit rate since last count.
Definition AgoraBase.h:2965
agora::rtc::ADAPT_NONE
@ ADAPT_NONE
Definition AgoraBase.h:2969
agora::rtc::StreamLayerIndexInternal
StreamLayerIndexInternal
Definition NGIAgoraVideoTrack.h:28
agora::rtc::STREAM_LAYER_COUNT_MAX
@ STREAM_LAYER_COUNT_MAX
Definition NGIAgoraVideoTrack.h:36
agora::rtc::STREAM_LAYER_6
@ STREAM_LAYER_6
Definition NGIAgoraVideoTrack.h:34
agora::rtc::STREAM_LAYER_2
@ STREAM_LAYER_2
Definition NGIAgoraVideoTrack.h:30
agora::rtc::STREAM_LAYER_3
@ STREAM_LAYER_3
Definition NGIAgoraVideoTrack.h:31
agora::rtc::STREAM_LOW
@ STREAM_LOW
Definition NGIAgoraVideoTrack.h:35
agora::rtc::STREAM_LAYER_4
@ STREAM_LAYER_4
Definition NGIAgoraVideoTrack.h:32
agora::rtc::STREAM_LAYER_1
@ STREAM_LAYER_1
Definition NGIAgoraVideoTrack.h:29
agora::rtc::STREAM_LAYER_5
@ STREAM_LAYER_5
Definition NGIAgoraVideoTrack.h:33
agora::rtc::CAPTURE_BRIGHTNESS_LEVEL_TYPE
CAPTURE_BRIGHTNESS_LEVEL_TYPE
The brightness level of the video image captured by the local camera.
Definition AgoraBase.h:3345
agora::rtc::CAPTURE_BRIGHTNESS_LEVEL_INVALID
@ CAPTURE_BRIGHTNESS_LEVEL_INVALID
Definition AgoraBase.h:3350
agora
Definition AgoraAtomicOps.h:21
agora::rtc::LocalVideoTrackStats
Definition NGIAgoraVideoTrack.h:246
agora::rtc::LocalVideoTrackStats::regulated_capture_height
int regulated_capture_height
Definition NGIAgoraVideoTrack.h:318
agora::rtc::LocalVideoTrackStats::hw_encoder_accelerating
uint32_t hw_encoder_accelerating
Definition NGIAgoraVideoTrack.h:328
agora::rtc::LocalVideoTrackStats::frames_encoded
uint32_t frames_encoded
Definition NGIAgoraVideoTrack.h:262
agora::rtc::LocalVideoTrackStats::ssrc_minor_stream
uint32_t ssrc_minor_stream
Definition NGIAgoraVideoTrack.h:270
agora::rtc::LocalVideoTrackStats::height
int height
Definition NGIAgoraVideoTrack.h:326
agora::rtc::LocalVideoTrackStats::total_bitrate_bps
int total_bitrate_bps
Definition NGIAgoraVideoTrack.h:302
agora::rtc::LocalVideoTrackStats::encoder_frame_depth
uint32_t encoder_frame_depth
Definition NGIAgoraVideoTrack.h:329
agora::rtc::LocalVideoTrackStats::capture_brightness_level
CAPTURE_BRIGHTNESS_LEVEL_TYPE capture_brightness_level
Definition NGIAgoraVideoTrack.h:349
agora::rtc::LocalVideoTrackStats::bytes_major_stream
uint64_t bytes_major_stream
Definition NGIAgoraVideoTrack.h:254
agora::rtc::LocalVideoTrackStats::regulated_capture_frame_rate
int regulated_capture_frame_rate
Definition NGIAgoraVideoTrack.h:278
agora::rtc::LocalVideoTrackStats::number_of_streams
uint64_t number_of_streams
Definition NGIAgoraVideoTrack.h:250
agora::rtc::LocalVideoTrackStats::width
int width
Definition NGIAgoraVideoTrack.h:322
agora::rtc::LocalVideoTrackStats::input_frame_rate
int input_frame_rate
Definition NGIAgoraVideoTrack.h:282
agora::rtc::LocalVideoTrackStats::quality_adapt_indication
QUALITY_ADAPT_INDICATION quality_adapt_indication
Definition NGIAgoraVideoTrack.h:341
agora::rtc::LocalVideoTrackStats::bytes_minor_stream
uint64_t bytes_minor_stream
Definition NGIAgoraVideoTrack.h:258
agora::rtc::LocalVideoTrackStats::encode_frame_rate
int encode_frame_rate
Definition NGIAgoraVideoTrack.h:286
agora::rtc::LocalVideoTrackStats::target_media_bitrate_bps
int target_media_bitrate_bps
Definition NGIAgoraVideoTrack.h:294
agora::rtc::LocalVideoTrackStats::capture_width
int capture_width
Definition NGIAgoraVideoTrack.h:306
agora::rtc::LocalVideoTrackStats::media_bitrate_bps
int media_bitrate_bps
Definition NGIAgoraVideoTrack.h:298
agora::rtc::LocalVideoTrackStats::uplink_cost_time_ms
uint32_t uplink_cost_time_ms
Definition NGIAgoraVideoTrack.h:337
agora::rtc::LocalVideoTrackStats::simulcast_stream_profile
SimulcastStreamProfile simulcast_stream_profile[STREAM_LAYER_COUNT_MAX]
Definition NGIAgoraVideoTrack.h:351
agora::rtc::LocalVideoTrackStats::txPacketLossRate
unsigned short txPacketLossRate
Definition NGIAgoraVideoTrack.h:345
agora::rtc::LocalVideoTrackStats::render_frame_rate
int render_frame_rate
Definition NGIAgoraVideoTrack.h:290
agora::rtc::LocalVideoTrackStats::LocalVideoTrackStats
LocalVideoTrackStats()
Definition NGIAgoraVideoTrack.h:353
agora::rtc::LocalVideoTrackStats::ssrc_major_stream
uint32_t ssrc_major_stream
Definition NGIAgoraVideoTrack.h:266
agora::rtc::LocalVideoTrackStats::encoder_vender_id
uint32_t encoder_vender_id
Definition NGIAgoraVideoTrack.h:333
agora::rtc::LocalVideoTrackStats::capture_frame_rate
int capture_frame_rate
Definition NGIAgoraVideoTrack.h:274
agora::rtc::LocalVideoTrackStats::encoder_type
uint32_t encoder_type
Definition NGIAgoraVideoTrack.h:327
agora::rtc::LocalVideoTrackStats::capture_height
int capture_height
Definition NGIAgoraVideoTrack.h:310
agora::rtc::LocalVideoTrackStats::regulated_capture_width
int regulated_capture_width
Definition NGIAgoraVideoTrack.h:314
agora::rtc::RemoteVideoTrackStats
Definition NGIAgoraVideoTrack.h:461
agora::rtc::RemoteVideoTrackStats::frameLossRate
int frameLossRate
Definition NGIAgoraVideoTrack.h:497
agora::rtc::RemoteVideoTrackStats::totalActiveTime
uint64_t totalActiveTime
Definition NGIAgoraVideoTrack.h:541
agora::rtc::RemoteVideoTrackStats::vqa_avg_cost_ms
int vqa_avg_cost_ms
Definition NGIAgoraVideoTrack.h:553
agora::rtc::RemoteVideoTrackStats::receivedBitrate
int receivedBitrate
Definition NGIAgoraVideoTrack.h:485
agora::rtc::RemoteVideoTrackStats::rxStreamType
VIDEO_STREAM_TYPE rxStreamType
Definition NGIAgoraVideoTrack.h:504
agora::rtc::RemoteVideoTrackStats::totalFrozenTime
int totalFrozenTime
Definition NGIAgoraVideoTrack.h:510
agora::rtc::RemoteVideoTrackStats::delay
int delay
Definition NGIAgoraVideoTrack.h:469
agora::rtc::RemoteVideoTrackStats::RemoteVideoTrackStats
RemoteVideoTrackStats()
Definition NGIAgoraVideoTrack.h:563
agora::rtc::RemoteVideoTrackStats::width
int width
Definition NGIAgoraVideoTrack.h:477
agora::rtc::RemoteVideoTrackStats::decoderInputFrameRate
int decoderInputFrameRate
Definition NGIAgoraVideoTrack.h:488
agora::rtc::RemoteVideoTrackStats::frame_render_delay_ms
uint32_t frame_render_delay_ms
Definition NGIAgoraVideoTrack.h:536
agora::rtc::RemoteVideoTrackStats::downlink_process_time_ms
uint32_t downlink_process_time_ms
Definition NGIAgoraVideoTrack.h:532
agora::rtc::RemoteVideoTrackStats::vqa_mos
int vqa_mos
Definition NGIAgoraVideoTrack.h:549
agora::rtc::RemoteVideoTrackStats::rendererOutputFrameRate
int rendererOutputFrameRate
Definition NGIAgoraVideoTrack.h:494
agora::rtc::RemoteVideoTrackStats::avSyncTimeMs
int avSyncTimeMs
Definition NGIAgoraVideoTrack.h:527
agora::rtc::RemoteVideoTrackStats::uid
uid_t uid
Definition NGIAgoraVideoTrack.h:465
agora::rtc::RemoteVideoTrackStats::e2eDelay
int e2eDelay
Definition NGIAgoraVideoTrack.h:473
agora::rtc::RemoteVideoTrackStats::decoder_type
uint32_t decoder_type
Definition NGIAgoraVideoTrack.h:561
agora::rtc::RemoteVideoTrackStats::decoder_vender_id
uint32_t decoder_vender_id
Definition NGIAgoraVideoTrack.h:557
agora::rtc::RemoteVideoTrackStats::decoderOutputFrameRate
int decoderOutputFrameRate
Definition NGIAgoraVideoTrack.h:491
agora::rtc::RemoteVideoTrackStats::received_bytes
uint32_t received_bytes
Definition NGIAgoraVideoTrack.h:518
agora::rtc::RemoteVideoTrackStats::packetLossRate
int packetLossRate
Definition NGIAgoraVideoTrack.h:500
agora::rtc::RemoteVideoTrackStats::publishDuration
uint64_t publishDuration
Definition NGIAgoraVideoTrack.h:545
agora::rtc::RemoteVideoTrackStats::frozenRate
int frozenRate
Definition NGIAgoraVideoTrack.h:514
agora::rtc::RemoteVideoTrackStats::totalDecodedFrames
uint32_t totalDecodedFrames
Definition NGIAgoraVideoTrack.h:522
agora::rtc::RemoteVideoTrackStats::height
int height
Definition NGIAgoraVideoTrack.h:481
agora::rtc::SimulcastConfig::StreamLayerConfig
Configures the parameters of a specific layer in multi-quality video streams.
Definition AgoraBase.h:2304
agora::rtc::SimulcastConfig::StreamLayerConfig::framerate
int framerate
Definition AgoraBase.h:2312
agora::rtc::SimulcastConfig::StreamLayerConfig::enable
bool enable
Definition AgoraBase.h:2318
agora::rtc::SimulcastConfig::StreamLayerConfig::dimensions
VideoDimensions dimensions
Definition AgoraBase.h:2308
agora::rtc::SimulcastConfigInternal
Definition NGIAgoraVideoTrack.h:66
agora::rtc::SimulcastConfigInternal::reset
void reset()
Definition NGIAgoraVideoTrack.h:72
agora::rtc::SimulcastConfigInternal::publish_on_demand
bool publish_on_demand
Definition NGIAgoraVideoTrack.h:70
agora::rtc::SimulcastConfigInternal::operator==
bool operator==(const SimulcastConfigInternal &rhs) const
Definition NGIAgoraVideoTrack.h:78
agora::rtc::SimulcastConfigInternal::publish_fallback_enable
bool publish_fallback_enable
Definition NGIAgoraVideoTrack.h:69
agora::rtc::SimulcastConfigInternal::SimulcastConfigInternal
SimulcastConfigInternal()
Definition NGIAgoraVideoTrack.h:89
agora::rtc::SimulcastConfigInternal::simulcastlayerConfigs
StreamLayerConfigInternal simulcastlayerConfigs[STREAM_LAYER_COUNT_MAX]
Definition NGIAgoraVideoTrack.h:67
agora::rtc::SimulcastStreamProfile
Definition NGIAgoraVideoTrack.h:237
agora::rtc::SimulcastStreamProfile::bitrate
int bitrate
Definition NGIAgoraVideoTrack.h:241
agora::rtc::SimulcastStreamProfile::framerate
int framerate
Definition NGIAgoraVideoTrack.h:240
agora::rtc::SimulcastStreamProfile::width
int width
Definition NGIAgoraVideoTrack.h:238
agora::rtc::SimulcastStreamProfile::height
int height
Definition NGIAgoraVideoTrack.h:239
agora::rtc::StreamLayerConfigInternal
Definition NGIAgoraVideoTrack.h:39
agora::rtc::StreamLayerConfigInternal::enable
bool enable
Definition NGIAgoraVideoTrack.h:43
agora::rtc::StreamLayerConfigInternal::framerate
int framerate
Definition NGIAgoraVideoTrack.h:41
agora::rtc::StreamLayerConfigInternal::operator==
bool operator==(const StreamLayerConfigInternal &rhs) const
Definition NGIAgoraVideoTrack.h:46
agora::rtc::StreamLayerConfigInternal::StreamLayerConfigInternal
StreamLayerConfigInternal(const StreamLayerConfigInternal &other)
Definition NGIAgoraVideoTrack.h:45
agora::rtc::StreamLayerConfigInternal::dimensions
VideoDimensions dimensions
Definition NGIAgoraVideoTrack.h:40
agora::rtc::StreamLayerConfigInternal::reset
void reset()
Definition NGIAgoraVideoTrack.h:57
agora::rtc::StreamLayerConfigInternal::bitrate_kbps
int bitrate_kbps
Definition NGIAgoraVideoTrack.h:42
agora::rtc::StreamLayerConfigInternal::StreamLayerConfigInternal
StreamLayerConfigInternal()
Definition NGIAgoraVideoTrack.h:44
agora::rtc::StreamLayerConfigInternal::operator=
StreamLayerConfigInternal & operator=(const SimulcastConfig::StreamLayerConfig &slc)
Definition NGIAgoraVideoTrack.h:50
agora::rtc::VideoDimensions
The video dimension.
Definition AgoraBase.h:1166
agora::rtc::VideoEncoderConfiguration
Video encoder configurations.
Definition AgoraBase.h:2057
agora::rtc::VideoTrackInfo
Definition AgoraBase.h:3895