Agora Server Gateway SDK C++ API Reference
Loading...
Searching...
No Matches
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 "AgoraMediaBase.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
22namespace agora {
23namespace rtc {
24class IVideoFilter;
26class IMediaPacketReceiver;
27class IVideoSinkBase;
28
64
84 bool enable;
87 bool operator==(const StreamLayerConfigInternal& rhs) const {
88 return dimensions == rhs.dimensions && bitrate_kbps == rhs.bitrate_kbps && framerate == rhs.framerate && enable == rhs.enable;
89 }
90
91 StreamLayerConfigInternal& operator=(const SimulcastConfig::StreamLayerConfig& slc) {
92 dimensions = slc.dimensions;
93 framerate = slc.framerate;
94 enable = slc.enable;
95 return *this;
96 }
97
98 void reset() {
99 dimensions.width = 0;
100 dimensions.height = 0;
101 framerate = 0;
103 enable = false;
104 }
105};
106
111
112 void reset() {
113 for (int i = STREAM_LAYER_1; i < STREAM_LAYER_COUNT_MAX; i++) {
115 }
116 }
117
118 bool operator==(const SimulcastConfigInternal& rhs) const {
119 for (int i = 0; i < STREAM_LAYER_COUNT_MAX; i++) {
121 continue;
122 } else {
123 return false;
124 }
125 }
126 return true;
127 }
128};
129
143 REMOTE_VIDEO_IMAGE_TRACK,
145};
146
150class IVideoTrack : public RefCountInterface {
151 public:
167 virtual bool addRenderer(agora_refptr<IVideoSinkBase> videoRenderer, media::base::VIDEO_MODULE_POSITION position = media::base::POSITION_POST_FILTERS, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
178 virtual bool removeRenderer(agora_refptr<IVideoSinkBase> videoRenderer, media::base::VIDEO_MODULE_POSITION position = media::base::POSITION_POST_FILTERS, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
184 virtual VideoTrackType getType() = 0;
185
186 protected:
188};
189
311
318 public:
329 virtual void setEnabled(bool enable, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
330
348 virtual int setVideoEncoderConfiguration(const VideoEncoderConfiguration& config, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
349
367 virtual int setSimulcastStreamMode(SIMULCAST_STREAM_MODE mode, const SimulcastConfigInternal& config, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
368
375
384 virtual bool getStatistics(LocalVideoTrackStats& stats) = 0;
388
396 virtual int registerVideoMetadataObserver(IMetadataObserver* metadataObserver, aosl_ref_t ares = AOSL_REF_INVALID) {
397 return 0;
398 }
406 virtual int unregisterVideoMetadataObserver(IMetadataObserver* metadataObserver) {
407 return 0;
408 }
409
410 protected:
412};
497
502 public:
503
511 virtual bool getStatistics(RemoteVideoTrackStats& stats) = 0;
524 virtual bool getTrackInfo(VideoTrackInfo& info) = 0;
538 virtual int registerVideoEncodedImageReceiver(IVideoEncodedImageReceiver* videoReceiver, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
550 protected:
552};
553
554} // namespace rtc
555} // namespace agora
#define OPTIONAL_OVERRIDE
Definition NGIAgoraVideoTrack.h:18
Definition AgoraMediaBase.h:896
Definition NGIAgoraVideoTrack.h:317
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 int unregisterVideoMetadataObserver(IMetadataObserver *metadataObserver)
Definition NGIAgoraVideoTrack.h:406
virtual int registerVideoMetadataObserver(IMetadataObserver *metadataObserver, aosl_ref_t ares=AOSL_REF_INVALID)
Definition NGIAgoraVideoTrack.h:396
~ILocalVideoTrack()
Definition NGIAgoraVideoTrack.h:411
virtual void 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 AgoraMediaBase.h:128
Definition NGIAgoraVideoTrack.h:501
virtual int unregisterVideoEncodedImageReceiver(IVideoEncodedImageReceiver *videoReceiver)=0
virtual int registerVideoEncodedImageReceiver(IVideoEncodedImageReceiver *videoReceiver, aosl_ref_t ares=AOSL_REF_INVALID)=0
~IRemoteVideoTrack()
Definition NGIAgoraVideoTrack.h:551
virtual REMOTE_VIDEO_STATE getState()=0
virtual bool getTrackInfo(VideoTrackInfo &info)=0
virtual bool getStatistics(RemoteVideoTrackStats &stats)=0
Definition AgoraBase.h:3122
Definition NGIAgoraVideoTrack.h:150
virtual bool removeRenderer(agora_refptr< IVideoSinkBase > videoRenderer, media::base::VIDEO_MODULE_POSITION position=media::base::POSITION_POST_FILTERS, aosl_ref_t ares=AOSL_REF_INVALID)=0
~IVideoTrack()
Definition NGIAgoraVideoTrack.h:187
virtual VideoTrackType getType()=0
virtual bool addRenderer(agora_refptr< IVideoSinkBase > videoRenderer, media::base::VIDEO_MODULE_POSITION position=media::base::POSITION_POST_FILTERS, aosl_ref_t ares=AOSL_REF_INVALID)=0
SIMULCAST_STREAM_MODE
Definition AgoraBase.h:2130
VideoTrackType
Definition NGIAgoraVideoTrack.h:133
@ REMOTE_VIDEO_TRACK
Definition NGIAgoraVideoTrack.h:141
@ LOCAL_VIDEO_TRACK
Definition NGIAgoraVideoTrack.h:137
VIDEO_STREAM_TYPE
Definition AgoraBase.h:1837
@ VIDEO_STREAM_HIGH
Definition AgoraBase.h:1841
LOCAL_VIDEO_STREAM_STATE
Definition AgoraBase.h:2732
REMOTE_VIDEO_STATE
Definition AgoraBase.h:2862
const int STANDARD_BITRATE
Definition AgoraBase.h:1526
unsigned int uid_t
Definition AgoraMediaBase.h:25
QUALITY_ADAPT_INDICATION
Definition AgoraBase.h:2371
@ ADAPT_NONE
Definition AgoraBase.h:2373
StreamLayerIndexInternal
Definition NGIAgoraVideoTrack.h:30
@ STREAM_LAYER_COUNT_MAX
Definition NGIAgoraVideoTrack.h:62
@ STREAM_LAYER_6
Definition NGIAgoraVideoTrack.h:54
@ STREAM_LAYER_2
Definition NGIAgoraVideoTrack.h:38
@ STREAM_LAYER_3
Definition NGIAgoraVideoTrack.h:42
@ STREAM_LOW
Definition NGIAgoraVideoTrack.h:58
@ STREAM_LAYER_4
Definition NGIAgoraVideoTrack.h:46
@ STREAM_LAYER_1
Definition NGIAgoraVideoTrack.h:34
@ STREAM_LAYER_5
Definition NGIAgoraVideoTrack.h:50
Definition AgoraBase.h:86
Definition NGIAgoraVideoTrack.h:193
int regulated_capture_height
Definition NGIAgoraVideoTrack.h:265
uint32_t frames_encoded
Definition NGIAgoraVideoTrack.h:209
uint32_t ssrc_minor_stream
Definition NGIAgoraVideoTrack.h:217
int height
Definition NGIAgoraVideoTrack.h:273
int total_bitrate_bps
Definition NGIAgoraVideoTrack.h:249
uint64_t bytes_major_stream
Definition NGIAgoraVideoTrack.h:201
int regulated_capture_frame_rate
Definition NGIAgoraVideoTrack.h:225
uint64_t number_of_streams
Definition NGIAgoraVideoTrack.h:197
int width
Definition NGIAgoraVideoTrack.h:269
int input_frame_rate
Definition NGIAgoraVideoTrack.h:229
QUALITY_ADAPT_INDICATION quality_adapt_indication
Definition NGIAgoraVideoTrack.h:285
uint64_t bytes_minor_stream
Definition NGIAgoraVideoTrack.h:205
int encode_frame_rate
Definition NGIAgoraVideoTrack.h:233
int target_media_bitrate_bps
Definition NGIAgoraVideoTrack.h:241
int capture_width
Definition NGIAgoraVideoTrack.h:253
int media_bitrate_bps
Definition NGIAgoraVideoTrack.h:245
uint32_t uplink_cost_time_ms
Definition NGIAgoraVideoTrack.h:280
int render_frame_rate
Definition NGIAgoraVideoTrack.h:237
LocalVideoTrackStats()
Definition NGIAgoraVideoTrack.h:287
uint32_t ssrc_major_stream
Definition NGIAgoraVideoTrack.h:213
int capture_frame_rate
Definition NGIAgoraVideoTrack.h:221
int capture_height
Definition NGIAgoraVideoTrack.h:257
int regulated_capture_width
Definition NGIAgoraVideoTrack.h:261
Definition NGIAgoraVideoTrack.h:416
int frameLossRate
Definition NGIAgoraVideoTrack.h:445
uint64_t totalActiveTime
Definition NGIAgoraVideoTrack.h:485
int receivedBitrate
Definition NGIAgoraVideoTrack.h:436
VIDEO_STREAM_TYPE rxStreamType
Definition NGIAgoraVideoTrack.h:452
int totalFrozenTime
Definition NGIAgoraVideoTrack.h:458
int delay
Definition NGIAgoraVideoTrack.h:424
RemoteVideoTrackStats()
Definition NGIAgoraVideoTrack.h:491
int width
Definition NGIAgoraVideoTrack.h:428
uint32_t frame_render_delay_ms
Definition NGIAgoraVideoTrack.h:480
uint32_t downlink_process_time_ms
Definition NGIAgoraVideoTrack.h:476
int rendererOutputFrameRate
Definition NGIAgoraVideoTrack.h:442
int avSyncTimeMs
Definition NGIAgoraVideoTrack.h:471
uid_t uid
Definition NGIAgoraVideoTrack.h:420
int decoderOutputFrameRate
Definition NGIAgoraVideoTrack.h:439
int packetLossRate
Definition NGIAgoraVideoTrack.h:448
uint64_t publishDuration
Definition NGIAgoraVideoTrack.h:489
int frozenRate
Definition NGIAgoraVideoTrack.h:462
uint32_t totalDecodedFrames
Definition NGIAgoraVideoTrack.h:466
int height
Definition NGIAgoraVideoTrack.h:432
Definition NGIAgoraVideoTrack.h:108
void reset()
Definition NGIAgoraVideoTrack.h:112
bool operator==(const SimulcastConfigInternal &rhs) const
Definition NGIAgoraVideoTrack.h:118
StreamLayerConfigInternal simulcastlayerConfigs[STREAM_LAYER_COUNT_MAX]
Definition NGIAgoraVideoTrack.h:110
Definition NGIAgoraVideoTrack.h:66
bool enable
Definition NGIAgoraVideoTrack.h:84
int framerate
Definition NGIAgoraVideoTrack.h:74
bool operator==(const StreamLayerConfigInternal &rhs) const
Definition NGIAgoraVideoTrack.h:87
StreamLayerConfigInternal(const StreamLayerConfigInternal &other)
Definition NGIAgoraVideoTrack.h:86
VideoDimensions dimensions
Definition NGIAgoraVideoTrack.h:70
void reset()
Definition NGIAgoraVideoTrack.h:98
int bitrate_kbps
Definition NGIAgoraVideoTrack.h:78
StreamLayerConfigInternal()
Definition NGIAgoraVideoTrack.h:85
StreamLayerConfigInternal & operator=(const SimulcastConfig::StreamLayerConfig &slc)
Definition NGIAgoraVideoTrack.h:91
Definition AgoraBase.h:1500
int height
Definition AgoraBase.h:1508
int width
Definition AgoraBase.h:1504
Definition AgoraBase.h:1998
Definition AgoraBase.h:2958