Agora C++ API Reference for All Platforms

video_track_i.h
1 //
2 // Agora Media SDK
3 //
4 // Created by Rao Qi in 2019.
5 // Copyright (c) 2019 Agora IO. All rights reserved.
6 //
7 #pragma once
8
9 #include <atomic>
10 #include <memory>
11 #include <mutex>
12 #include <string>
13 #include <unordered_map>
14 #include <vector>
15
16 #include "AgoraBase.h"
17 #include "AgoraMediaBase.h"
18 #include "AgoraOptional.h"
19 #include "NGIAgoraVideoTrack.h"
20 #include <api/cpp/aosl_ares_class.h>
21 #include "api/transport/network_types.h"
22 #include "api/video/video_content_type.h"
23 #include "call/rtp_config.h"
24
25 #include "rtc_connection_i.h"
26 #include "track_stat_i.h"
27 #include "video_config_i.h"
28 #include "common_defines.h"
29 #include "video_node_i.h"
30
31 #include "main/core/video/multi_stream_subscribe_interface.h"
32 #include "facilities/media_config/policy_chain/media_config_policy_chain.h"
33 #include "facilities/tools/weak_observers.h"
34 #include "facilities/media_config/policy_chain/general_val_policy_chain.h"
35 #include "main/core/video/strategy_framework/module_controller/video_module_control_aspect.h"
36 #include "main/core/video/stats_and_events/video_stats_events_base.h"
37 #include "main/core/video/video_frame_source_filter.h"
38 #include "main/core/video/strategy_framework/strategy_common_defines.h"
39 #include "engine_adapter/video/video_common_defines.h"
40
41 namespace webrtc {
42 class IFecMethodFactoryInterface;
43 class ISmoothRender;
44 class IRsfecCodecFactoryInterface;
45 class IAutoAdjustHarq;
46 }
47
48 namespace agora {
49 namespace rtc {
50
51 class VideoNodeRtpSink;
52 class VideoNodeRtpSource;
53 class ProactiveCaller;
54 class IModuleControlPanel;
55
56 enum class InternalVideoSourceType : unsigned {
57 None = 0,
58 Camera = 1,
59 Custom = 2,
60 Screen = 3,
61 CustomYuvSource = 4,
62 CustomEncodedImageSource = 5,
63 CustomPacketSource = 6,
64 MixedSource = 7,
65 TranscodedSource = 8,
66 };
67
68 enum VideoModuleId {
69 VideoModuleCapture = 1,
70 VideoModulePreprocess,
71 VideoModuleEncode,
72 VideoModuleNetwork,
73 VideoModuleDecode,
74 VideoModulePostprocess,
75 VideoModuleRender,
76 VideoModulePipeline,
77 VideoModuleQoE,
78 };
79
80 enum VideoAvailabilityLevel {
81 VideoAvailabilityLevel1 = 1, // Completely unusable.
82 VideoAvailabilityLevel2, // Usable but with very poor experience.
83 VideoAvailabilityLevel3, // Usable but with poor experience.
84 };
85
86 // Events report. New enum can be added but do not change the existing value!
87 enum VideoPipelineEvent {
88 kVideoUplinkEventStaticFrames = 1, // Continous static frames, maybe green/black picktures.
89 };
90
91 enum VideoQoeEvent {
92 kVideoQoeCriticalDrop = 1,
93 kVideoQoe600msFreezeDrop = 2,
94 kVideoQoe200msFreezeDrop = 3,
95 kVideoQoeFpsSubstandard = 4,
96 kVideoTimestampException = 5,
97 kVideoQoePipelineException = 6,
98 kVideoGlitchDetection = 7,
99 };
100
101 // Events report. New enum can be added but do not change the existing value!
102 enum VideoProcessEvent {
103 kVideoProcessEventNone = 0,
104
105 // These events report will be throttled, refer to VideoEngine::doReportVideoEvent().
106 kVideoProcessEventPreprocessEnqueueFailure = 1000,
107 kVideoProcessEventPreprocessFrameFailure = 1001,
108 kVideoProcessEventPreprocessNoIncomingFrame = 1002, // No incoming frame for builtin VPM module
109 kVideoProcessEventPreprocessCongested = 1003,
110 };
111
112 // report hardware codec availability event.
113 enum VideoCodecAvailableEvent {
114 kVideoHwH265EncoderAvailable = 2000,
115 kVideoHwH264EncoderHighProfileAvailable = 2001,
116 };
117
118 enum VideoDumpMode {
119 VIDEO_DUMP_DEFAULT = 0, // Dump all.
120 VIDEO_DUMP_ALL = 0xFFFF, // Dump all.
121 VIDEO_DUMP_CAPTURED_YUV = (1 << 0), // Dump YUV after video capturing.
122 VIDEO_DUMP_FILTERED_YUV = (1 << 1), // Dump YUV before video encoding.
123 VIDEO_DUMP_ENCODED_STREAM = (1 << 2), // Dump stream after video encoding.
124 VIDEO_DUMP_RECEIVED_STREAM = (1 << 3), // Dump stream before video decoding.
125 VIDEO_DUMP_DECODED_YUV = (1 << 4), // Dump YUV after video decoding.
126 VIDEO_DUMP_RENDERED_YUV = (1 << 5), // Dump YUV before video rendering.
127 VIDEO_DUMP_PRE_ENCODER_YUV = (1 << 6), // Dump YUV right before video encoding.
128 };
129
130 struct VideoAvailabilityIndicator {
131 VideoAvailabilityLevel level;
132 VideoModuleId module;
133 int code;
134 uid_t uid;
135 int extra;
136 std::vector<agora::rtc::QoEDropInfo> extra2;
137 std::vector<agora::rtc::VideoTimestampExceptionInfo> ts_exception_info;
138 std::vector<GlitchDetectionInfo> glitch_detection_infos;
139 };
140
141 struct VideoQoEAnalyzerParameter {
142 bool qoe_analyzer_enable = false;
143 bool enable_video_diagnose_logger = true;
144 int qoe_critical_report_max_times = 0;
145 int qoe_high_report_max_times = 0;
146 int qoe_normal_report_max_times = 0;
147 int qoe_report_strategy = 0;
148 int qoe_timing_strategy_report_period = 0;
149 };
150
151 struct YuvConvertStats {
152 int width;
153 int height;
154 int method;
155 int avgUs;
156 int maxUs;
157 std::string deviceId;
158 };
159
160 class IVideoTrackObserver : public std::enable_shared_from_this<IVideoTrackObserver> {
161 public:
162 virtual ~IVideoTrackObserver() = default;
163 virtual void onLocalVideoStateChanged(int id,
164 LOCAL_VIDEO_STREAM_STATE state,
165 LOCAL_VIDEO_STREAM_REASON reason,
166 int timestamp_ms) {}
167
168 virtual void onRemoteVideoStateChanged(uid_t uid,
169 REMOTE_VIDEO_STATE state,
170 REMOTE_VIDEO_STATE_REASON reason,
171 int timestamp_ms) {}
172
173 virtual void onFirstVideoFrameRendered(int id, uid_t uid, int width, int height, int timestamp_ms) {}
174
175 virtual void onFirstVideoFrameDecoded(std::string cid, uid_t uid, uint32_t ssrc, int width, int height, int timestamp_ms) {}
176
177 virtual void onFirstVideoKeyFrameReceived(uid_t uid, uint64_t timestamp, const webrtc::FirstVideoFrameStreamInfo &streamInfo) {}
178
179 virtual void onSourceVideoSizeChanged(uid_t uid,
180 int width, int height,
181 int rotation, int timestamp_ms) {}
182 virtual void onSendSideDelay(int id, int send_delay) {}
183 virtual void onRecvSideDelay(uid_t uid, int recv_delay) {}
184 virtual void onRecvSideFps(uid_t uid, int fps) {}
185 virtual void onEncoderConfigurationChanged(const std::unordered_map<int, VideoConfigurationEx>& config) {}
186 virtual void onSvcLayerUpdated(SvcAABandwidthReportInfo info, int supported_max_layers,
187 AdaptiveScenarioType scenario_type, int channel_size,
188 const std::map<VideoStreamCreator::StreamIndex, int>& be_subscribed_streams,
189 const std::vector<int>& svc_layer_bitrate, SvcAASourceType source,
190 const std::vector<SvcAAStrategyResult>& svc_aa_strategy_result_vec) {}
191 virtual void onVideoPipelineDataFormatChanged(int format) {}
192 virtual void onCameraFacingChanged(int facing) {}
193 virtual void onViewSizeChanged(uid_t uid, view_t view, int width, int height) {}
194 virtual void OnSetRexferParams(bool fec_rexfer, float rexfer_alpha, int max_rexfer_times) {}
195 virtual void OnRexferStatusUpdated(bool status, int32_t target_bitrate) {}
196 virtual void OnNotifyDepartedFrame(uid_t uid, int picture_id) {}
197 virtual void onCameraInfoListChanged(CameraInfoList cameraInfoList) {}
198 virtual void onCameraCharacteristicProfileChanged(agora::rtc::CameraCharacteristicProfile profile) {}
199 virtual void OnEncoderStatusUpdate(webrtc::VideoCodecType codec_type,
200 webrtc::HW_ENCODER_ACCELERATING_STATUS hw_accelerate_status) {};
201 virtual void OnVideoStatusUpdated(int status) {}
202 virtual void onVideoAvailabilityIndicatorEvent(VideoAvailabilityIndicator indicator) {}
203 virtual void onVideoHWCodecSpecEvent(agora::rtc::VideoHWCodecSpec codecSpec) {}
204 virtual void onVideoSizeChanged(int id, uid_t uid, int width, int height, int rotation) {}
205 virtual void onYuvConvertStats(const YuvConvertStats& stats) {}
206
207 virtual void onLocalAddVideoFilter(int track_id, std::string filter_name, bool enabled){}
208 virtual void onLocalFilterStatusChanged(int track_id, std::string filter_name, bool enabled){}
209 virtual void onRemoteAddVideoFilter(std::string cid, uid_t uid, uint32_t ssrc, std::string filter_name, bool enabled){}
210 virtual void onRemoteFilterStatusChanged(std::string cid, uid_t uid, uint32_t ssrc, std::string filter_name, bool enabled, bool isDisableMe = false){}
211 virtual void onVideoContentChanged(uid_t uid, agora::VideoContentType newType,
212 agora::VideoContentSubType newSubtype) {}
213 virtual void OnRequestKeyFrame(uid_t uid, VIDEO_STREAM_TYPE type) {}
214 virtual void OnFirstDecodableFrameReceived(uint8_t stream_id) {}
215 virtual void OnVideoEncodeStrategyUpdated(VideoEncodeStrategyInfo strategy) {}
216 virtual void OnVideoCodingModuleInfosUpdated(webrtc::VideoCodingModuleInfos info) {}
217 virtual void onVideoRenderMirrorChanged(bool mirror) {}
218 };
219
220 struct LocalVideoTrackStatsEx {
221 LocalVideoTrackStats local_video_stats;
222 int sent_loss_ratio;
223 uint32_t total_bwe_bps;
224 uint32_t total_video_send_target_bps;
225 uint32_t media_send_bps;
226 uint32_t qp;
227 };
228
229 class ILocalVideoTrackEx : public ILocalVideoTrack,
230 public VideoLocalTrackControlAspect {
231 public:
232 enum DetachReason { MANUAL, TRACK_DESTROY, NETWORK_DESTROY, CODEC_CHANGE};
233
234 // keep the same as webrtc::RsfecConfig
235 struct RsfecConfig {
236 std::vector<int> fec_protection_factor;
237 std::vector<std::vector<int>> fec_ratioLevel;
238 std::vector<int> fec_rttThreshold;
239 bool pec_enabled;
240 };
241
242 struct CaptureModeItem {
243 int32_t mode = 0;
244 int32_t scene = 0;
245 int32_t policy = 0;
246 std::string type = "";
247 };
248
249 struct AttachInfo {
250 uint32_t uid;
251 uint32_t cid;
252 VideoNodeRtpSink* network;
253 WeakPipelineBuilder builder;
254 uint64_t stats_space;
255 CongestionControlType cc_type;
256 bool enable_two_bytes_extension;
257 webrtc::RsfecConfig rsfec_config;
258
259 // hardware encoder related
260 std::string enable_hw_encoder;
261
262 // video config
263 VideoNodeEncoderEx::OPSParametersCollection ops_parameters;
264 std::shared_ptr<webrtc::IAutoAdjustHarq> auto_adjust_harq;
265 int harq_version;
266 int32_t fec_outside_bandwidth_ratio;
267 bool enable_minor_stream_vqc = false;
268 bool enable_minor_stream_fec = false;
269 bool enable_minor_stream_fec_outside_ratio = false;
270 bool enable_minor_stream_intra_request = false;
271
272 int fec_method;
273 int dm_wsize;
274 int dm_maxgc;
275 std::string switch_to_rq;
276 bool dm_lowred;
277 bool enable_rq_classic_method;
278
279 int32_t minimum_fec_level;
280 int fec_fix_rate;
281 bool enable_check_for_disable_fec;
282 bool enable_quick_intra_high_fec = false;
283 absl::optional<int> max_inflight_frame_count_pre_processsing;
284
285 // enable video diagnose
286 bool enable_video_send_diagnose;
287 // video codec and codec feature_caps
288 VideoNegotiatedCodecCaps negotiated_video_codec_caps;
289
290 int hw_capture_delay;
291 uint32_t sync_peer_uid;
292
293 Optional<SIMULCAST_STREAM_MODE> cfg_simulcast_stream_mode;
294 bool support_higher_standard_bitrate;
295 VideoQoEAnalyzerParameter qoe_analyzer_parameters;
296 std::unordered_map<uint8_t, std::string> fec_capabilities;
297 int prefer_fec_method = -1;
298 SvcAAConfig svc_aa_config;
299 };
300
301 struct DetachInfo {
302 VideoNodeRtpSink* network;
303 DetachReason reason;
304 };
305
306 ILocalVideoTrackEx() : id_(id_generator_++) {}
307 virtual ~ILocalVideoTrackEx() {}
308
309 virtual bool hasPublished() = 0;
310
311 virtual int setVideoEncoderConfigurationEx(const VideoEncoderConfiguration& config, utils::ConfigPriority priority = utils::CONFIG_PRIORITY_USER) = 0;
312
313 virtual int SetVideoConfigEx(int index, const VideoConfigurationEx& configEx, utils::ConfigPriority priority = utils::CONFIG_PRIORITY_USER) = 0;
314
315 virtual int ResetVideoConfigEx(utils::ConfigPriority priority) = 0;
316
317 virtual int GetConfigExs(std::unordered_map<int, VideoConfigurationEx>& configs, bool include_disable_config = false) = 0;
318
319 virtual int GetVideoProfileAutoAdjust(std::string& config_video_profile, std::string& actual_video_profile) = 0;
320
321 virtual int GetCaptureMode(CaptureModeItem& captureModeOut) = 0;
322
323 virtual void RequestKeyFrame(VIDEO_STREAM_TYPE type, bool is_quick_intra_request, bool internal) {}
324
325 virtual void AddVideoAvailabilityIndicatorEvents(VideoAvailabilityIndicator event) {}
326
327 virtual void GetVideoAvailabilityIndicatorEvents(std::vector<VideoAvailabilityIndicator>& events) {}
328
329 virtual int setUserId(uid_t uid) { user_id_ = uid; return 0; }
330
331 virtual uid_t getUserId() { return user_id_; }
332
333 virtual int GetActiveStreamsCount() = 0;
334
335 virtual int prepareNodes(const char* id = nullptr) = 0;
336
337 virtual bool attach(const AttachInfo& info) = 0;
338 virtual bool detach(const DetachInfo& info) = 0;
339 virtual bool registerTrackObserver(std::shared_ptr<IVideoTrackObserver> observer) {
340 return false;
341 }
342 virtual bool unregisterTrackObserver(IVideoTrackObserver* observer) {
343 return false;
344 }
345
346 virtual bool getStatisticsEx(LocalVideoTrackStatsEx& statsEx) { return false; }
347 virtual bool getVideoFrameSourceFilterStats(agora::rtc::VideoFrameSourceFilter::Stats& stats) { return false; }
348 virtual int32_t Width() const = 0;
349 virtual int32_t Height() const = 0;
350 virtual void getBillingVideoProfile(int32_t& w, int32_t& h, int32_t& frame_rate) {};
351 virtual bool Enabled() const = 0;
352 // TODO(Qingyou Pan): Need refine code to remove this interface.
353 virtual int addVideoWatermark(const char* watermarkUrl, const WatermarkOptions& options) { return -ERR_NOT_SUPPORTED; }
354 virtual int clearVideoWatermarks() { return -ERR_NOT_SUPPORTED; }
355
356 virtual InternalVideoSourceType getInternalVideoSourceType() { return InternalVideoSourceType::None; }
357
358 virtual rtc::VideoEncoderConfiguration getVideoEncoderConfiguration() { return {}; }
359
360 virtual bool getVideoTextureCopyStatus(VideoTextureCopyParam& param) { return false; }
361
362 virtual void getSimucastStreamConfig(SimulcastConfigInternal& simu_stream_config) {}
363 virtual void getSimucastStreamStatus(SIMULCAST_STREAM_MODE& mode, bool& enable) {}
364 virtual void getBillingVideoProfileWithSimulcast(bool& enable, SimulcastConfigInternal& simu_config) {}
365
366 virtual int updateContentHint(VIDEO_CONTENT_HINT contentHint) { return -ERR_NOT_SUPPORTED; }
367
368 virtual int updateScreenCaptureScenario(SCREEN_SCENARIO_TYPE screenScenario) { return -ERR_NOT_SUPPORTED; }
369
370 int TrackId() const { return id_; }
371
372 virtual int registerVideoEncodedImageReceiver(media::IVideoEncodedFrameObserver* videoReceiver) {return -ERR_NOT_SUPPORTED;}
373
374 virtual int unregisterVideoEncodedImageReceiver(media::IVideoEncodedFrameObserver* videoReceiver) {return -ERR_NOT_SUPPORTED;}
375
376 virtual int setLocalVideoSend(bool send) = 0;
377
378 virtual bool ClearVideoConfigsOnLeaveChannel() { return false; }
379
380 virtual int getCodecType() = 0;
381
382 virtual void setVideoDumpMode(int mode, bool enabled, int frame_cnt = -1) {}
383
384 virtual bool NegotiateCodec(VideoNegotiatedCodecCaps negotiated_video_decode_caps) { return false; }
385
386 virtual void onVideoModuleStatus(std::string node_name, int type) {}
387
388 virtual int onRequestEnableSimulcastStream() { return 0; }
389
390 virtual bool getIsAttachedToNetwork() { return false; }
391
392 virtual bool isVideoFilterEnabled(const char* id) { return false; }
393
394 virtual void ConfigVideoFec(const VideoFecConfig& fec_cap) {}
395
396 virtual void ReconfigureCaptureDelayMs(int video_capture_delay_ms) {}
397
398 virtual bool enableMinorStreamPeriodicKeyFrame() { return false; }
399
400 virtual void registerProactiveCaller(const std::shared_ptr<rtc::ProactiveCaller>& configurator) { return; }
401 virtual void unregisterProactiveCaller() { return; }
402
403 virtual void registerModuleControlPanel(std::shared_ptr<rtc::IModuleControlPanel> panel) { return; }
404 virtual void unregisterModuleControlPanel() { return; }
405
406 virtual void SetQoeMetricsWeight(int index, QoeMetricsWeight qoe_metrics_weight) { return; };
407
408 virtual int setEnabledLLApiInternal(bool enable, bool action_droppable = true) = 0;
409 virtual LOCAL_VIDEO_STREAM_STATE getStateLLApiInternal() = 0;
410 virtual int setSimulcastStreamModeLLApiInternal(SIMULCAST_STREAM_MODE mode, const SimulcastConfigInternal& simu_config) = 0;
411 virtual int setVideoEncoderConfigurationLLApiInternal(const rtc::VideoEncoderConfiguration& config) = 0;
412 virtual bool addVideoFilterLLApiInternal(agora_refptr<IVideoFilter> filter, media::base::VIDEO_MODULE_POSITION position = media::base::POSITION_POST_CAPTURER,
413 const char* id = NULL) = 0;
414 virtual bool removeVideoFilterLLApiInternal(agora_refptr<IVideoFilter> filter, media::base::VIDEO_MODULE_POSITION position = media::base::POSITION_POST_CAPTURER,
415 const char* id = NULL) = 0;
416 virtual bool hasVideoFilterLLApiInternal(const char* id, media::base::VIDEO_MODULE_POSITION position) = 0;
417 virtual int setLocalRenderTargetFps(int target_fps) = 0;
418 virtual int setLocalRenderMirror(bool mirror) = 0;
419 virtual bool addRendererLLApiInternal(agora_refptr<IVideoSinkBase> videoRenderer, media::base::VIDEO_MODULE_POSITION position) = 0;
420 virtual bool removeRendererLLApiInternal(agora_refptr<IVideoSinkBase> videoRenderer, media::base::VIDEO_MODULE_POSITION position) = 0;
421 virtual bool getStatisticsLLApiInternal(LocalVideoTrackStats& stats) = 0;
422 virtual int enableVideoFilterLLApiInternal(const char* id, bool enable) {return -1;}
423 virtual void enableSourceFilterLLApiInternal(const char* id, bool enable) { return; }
424 virtual int setFilterPropertyLLApiInternal(const char* id, const char* key, const char* json_value) { return -1; };
425 virtual int getFilterPropertyLLApiInternal(const char* id, const char* key, char* json_value, size_t buf_size) { return -1; };
426 virtual void SetVideoCodecCaps(VideoNegotiatedCodecCaps negotiated_video_codec_caps) {};
427 virtual void SetSvcAutoAdjusterEnabled(bool enabled, const SvcAAConfig& config) {}
428 virtual void UpdateRemoteDlBweFeedback(int bwe) = 0;
429 virtual void UpdateChannelBandwidthAndSubscription(AggregatedRemoteDlBweQuantile bwe_quantile,
430 std::map<VideoStreamCreator::StreamIndex, int>&& be_subscribed_streams) = 0;
431 virtual void UpdateAdaptiveScenarioTypeAndChannelSize(AdaptiveScenarioType scenario_type, int channel_size, bool sync_ability) = 0;
432 virtual void SetUplinkEstimatedBwe(int uplink_bwe) = 0;
433
434 protected:
435 const int id_;
436 utils::WeakObserversFacility<IVideoTrackObserver> track_observers_;
437 uid_t user_id_;
438
439 private:
440 static std::atomic<int> id_generator_;
441 };
442
443 struct RemoteVideoTrackStatsEx : RemoteVideoTrackStats {
444 uint64_t firstDecodingTimeTickMs = 0;
445 uint64_t firstVideoFrameRendered = 0;
446 bool isHardwareCodec = false;
447 int64_t totalFrozen200ms = 0;
448 uint32_t last_frame_max = 0;
449 uint32_t dec_in_num = 0;
450 uint32_t render_in_num = 0;
451 uint32_t render_out_num = 0;
452 uint32_t fec_pkts_num = 0;
453 uint32_t loss_af_fec = 0;
454 int jitter_offset_ms = 0;
455 int decode_level[10] = {0};
456 uint64_t qp_sum = 0;
457 VideoContentType content_type = VideoContentType::UNSPECIFIED;
458 std::vector<VideoAvailabilityIndicator> video_availability;
459 };
460
461 class IRemoteVideoTrackEx : public IRemoteVideoTrack,
462 public VideoRemoteTrackControlAspect {
463 public:
464 enum DetachReason { MANUAL, TRACK_DESTROY, NETWORK_DESTROY };
465 using RemoteVideoEvents = StateEvents<REMOTE_VIDEO_STATE, REMOTE_VIDEO_STATE_REASON>;
466
467 struct AttachInfo {
468 VideoNodeRtpSource* source;
469 VideoNodeRtpSink* rtcp_sender;
470 WeakPipelineBuilder builder;
471 bool recv_media_packet = false;
472 uint64_t stats_space = 0;
473 bool enable_vpr = false;
474 std::shared_ptr<webrtc::IRsfecCodecFactoryInterface> rsfec_codec_factory;
475 uint32_t video_threshhold_ms = 0;
476 VideoQoEAnalyzerParameter qoe_analyzer_parameters;
477 };
478
479 struct DetachInfo {
480 VideoNodeRtpSource* source;
481 VideoNodeRtpSink* rtcp_sender;
482 DetachReason reason;
483 };
484
485 IRemoteVideoTrackEx() = default;
486
487 virtual ~IRemoteVideoTrackEx() {}
488
489 virtual uint32_t getRemoteSsrc() = 0;
490
491 virtual bool attach(const AttachInfo& info, REMOTE_VIDEO_STATE_REASON reason) = 0;
492 virtual bool detach(const DetachInfo& info, REMOTE_VIDEO_STATE_REASON reason) = 0;
493
494 virtual bool getStatisticsEx(RemoteVideoTrackStatsEx& statsex) { return false; }
495
496 virtual bool registerTrackObserver(std::shared_ptr<IVideoTrackObserver> observer) {
497 return false;
498 }
499 virtual bool unregisterTrackObserver(IVideoTrackObserver* observer) {
500 return false;
501 }
502 virtual void registerProactiveCaller(const std::shared_ptr<ProactiveCaller>&) {}
503 virtual void unregisterProactiveCaller() {}
504 virtual REMOTE_VIDEO_STATE getStateLLApiInternal() = 0;
505 virtual bool addVideoFilterLLApiInternal(agora_refptr<IVideoFilter> filter, media::base::VIDEO_MODULE_POSITION position = media::base::POSITION_POST_CAPTURER,
506 const char* id = NULL) = 0;
507 virtual bool removeVideoFilterLLApiInternal(agora_refptr<IVideoFilter> filter, media::base::VIDEO_MODULE_POSITION position = media::base::POSITION_POST_CAPTURER,
508 const char* id = NULL) = 0;
509 virtual bool hasVideoFilterLLApiInternal(const char* id, media::base::VIDEO_MODULE_POSITION position) = 0;
510 virtual bool addRendererLLApiInternal(agora_refptr<IVideoSinkBase> videoRenderer, media::base::VIDEO_MODULE_POSITION position = media::base::POSITION_PRE_RENDERER) = 0;
511 virtual bool removeRendererLLApiInternal(agora_refptr<IVideoSinkBase> videoRenderer, media::base::VIDEO_MODULE_POSITION position) = 0;
512 virtual bool getStatisticsLLApiInternal(RemoteVideoTrackStats& stats) = 0;
513 virtual bool getTrackInfoLLApiInternal(VideoTrackInfo& info) = 0;
514 virtual int registerVideoEncodedFrameObserverLLApiInternal( agora::media::IVideoEncodedFrameObserver* encodedObserver) = 0;
515 virtual int unregisterVideoEncodedFrameObserverLLApiInternal( agora::media::IVideoEncodedFrameObserver* encodedObserver) = 0;
516 virtual int enableVideoFilterLLApiInternal(const char* id, bool enable){ return -1; };
517 virtual int setFilterPropertyLLApiInternal(const char* id, const char* key, const char* json_value){ return -1; };
518 virtual int registerMediaPacketReceiverLLApiInternal(IMediaPacketReceiver* packetReceiver) = 0;
519 virtual int unregisterMediaPacketReceiverLLApiInternal(IMediaPacketReceiver* packetReceiver) = 0;
520 virtual void OnRoleUpdate(CLIENT_ROLE_TYPE role) {};
521
522 protected:
523 utils::WeakObserversFacility<IVideoTrackObserver> track_observers_;
524 };
525
526 } // namespace rtc
527 } // namespace agora
agora::rtc::ILocalVideoTrackEx::getCodecType
virtual int getCodecType()=0
agora::rtc::IRemoteVideoTrackEx::DetachInfo::rtcp_sender
VideoNodeRtpSink * rtcp_sender
Definition: video_track_i.h:481
agora::rtc::ILocalVideoTrackEx::AttachInfo::ops_parameters
VideoNodeEncoderEx::OPSParametersCollection ops_parameters
Definition: video_track_i.h:263
agora::rtc::IRemoteVideoTrackEx::removeVideoFilterLLApiInternal
virtual bool removeVideoFilterLLApiInternal(agora_refptr< IVideoFilter > filter, media::base::VIDEO_MODULE_POSITION position=media::base::POSITION_POST_CAPTURER, const char *id=NULL)=0
agora::rtc::InternalVideoSourceType
InternalVideoSourceType
Definition: video_track_i.h:56
agora::rtc::LOCAL_VIDEO_STREAM_STATE
LOCAL_VIDEO_STREAM_STATE
Definition: AgoraBase.h:2974
agora::rtc::ILocalVideoTrackEx::UpdateRemoteDlBweFeedback
virtual void UpdateRemoteDlBweFeedback(int bwe)=0
agora::rtc::ILocalVideoTrackEx::AttachInfo::fec_outside_bandwidth_ratio
int32_t fec_outside_bandwidth_ratio
Definition: video_track_i.h:266
agora::media::base::POSITION_PRE_RENDERER
@ POSITION_PRE_RENDERER
Definition: AgoraMediaBase.h:1144
agora::rtc::ILocalVideoTrackEx::UpdateChannelBandwidthAndSubscription
virtual void UpdateChannelBandwidthAndSubscription(AggregatedRemoteDlBweQuantile bwe_quantile, std::map< VideoStreamCreator::StreamIndex, int > &&be_subscribed_streams)=0
agora::rtc::ILocalVideoTrackEx::Width
virtual int32_t Width() const =0
agora::rtc::ILocalVideoTrackEx::getStateLLApiInternal
virtual LOCAL_VIDEO_STREAM_STATE getStateLLApiInternal()=0
agora::rtc::YuvConvertStats
Definition: video_track_i.h:151
agora::rtc::RemoteVideoTrackStatsEx::decode_level
int decode_level[10]
Definition: video_track_i.h:455
agora::rtc::ILocalVideoTrackEx::AttachInfo::auto_adjust_harq
std::shared_ptr< webrtc::IAutoAdjustHarq > auto_adjust_harq
Definition: video_track_i.h:264
agora::rtc::InternalVideoSourceType::MixedSource
@ MixedSource
agora::rtc::RemoteVideoTrackStatsEx::firstDecodingTimeTickMs
uint64_t firstDecodingTimeTickMs
Definition: video_track_i.h:444
agora::rtc::YuvConvertStats::method
int method
Definition: video_track_i.h:154
agora::rtc::ILocalVideoTrackEx::AttachInfo::fec_fix_rate
int fec_fix_rate
Definition: video_track_i.h:280
agora::rtc::IRemoteVideoTrackEx::registerVideoEncodedFrameObserverLLApiInternal
virtual int registerVideoEncodedFrameObserverLLApiInternal(agora::media::IVideoEncodedFrameObserver *encodedObserver)=0
agora::rtc::ILocalVideoTrackEx::ResetVideoConfigEx
virtual int ResetVideoConfigEx(utils::ConfigPriority priority)=0
agora::rtc::kVideoProcessEventPreprocessNoIncomingFrame
@ kVideoProcessEventPreprocessNoIncomingFrame
Definition: video_track_i.h:108
agora::rtc::ILocalVideoTrackEx::TRACK_DESTROY
@ TRACK_DESTROY
Definition: video_track_i.h:232
agora::rtc::ILocalVideoTrackEx::GetVideoProfileAutoAdjust
virtual int GetVideoProfileAutoAdjust(std::string &config_video_profile, std::string &actual_video_profile)=0
agora::rtc::ILocalVideoTrackEx::getSimucastStreamStatus
virtual void getSimucastStreamStatus(SIMULCAST_STREAM_MODE &mode, bool &enable)
Definition: video_track_i.h:363
agora::rtc::VideoProcessEvent
VideoProcessEvent
Definition: video_track_i.h:102
agora::rtc::RemoteVideoTrackStatsEx::render_out_num
uint32_t render_out_num
Definition: video_track_i.h:451
agora::rtc::LocalVideoTrackStatsEx::qp
uint32_t qp
Definition: video_track_i.h:226
agora::rtc::IVideoTrackObserver::onRemoteAddVideoFilter
virtual void onRemoteAddVideoFilter(std::string cid, uid_t uid, uint32_t ssrc, std::string filter_name, bool enabled)
Definition: video_track_i.h:209
agora::rtc::VideoAvailabilityLevel1
@ VideoAvailabilityLevel1
Definition: video_track_i.h:81
agora::rtc::RemoteVideoTrackStatsEx::fec_pkts_num
uint32_t fec_pkts_num
Definition: video_track_i.h:452
agora::rtc::ILocalVideoTrackEx::AttachInfo::prefer_fec_method
int prefer_fec_method
Definition: video_track_i.h:297
agora::rtc::ILocalVideoTrackEx::unregisterModuleControlPanel
virtual void unregisterModuleControlPanel()
Definition: video_track_i.h:404
agora::rtc::IRemoteVideoTrackEx::NETWORK_DESTROY
@ NETWORK_DESTROY
Definition: video_track_i.h:464
agora::rtc::SCREEN_SCENARIO_TYPE
SCREEN_SCENARIO_TYPE
Definition: AgoraBase.h:2789
agora::agora_refptr
Definition: AgoraRefPtr.h:44
agora::rtc::kVideoProcessEventNone
@ kVideoProcessEventNone
Definition: video_track_i.h:103
agora::rtc::LocalVideoTrackStatsEx
Definition: video_track_i.h:220
agora::rtc::IVideoTrackObserver::onVideoSizeChanged
virtual void onVideoSizeChanged(int id, uid_t uid, int width, int height, int rotation)
Definition: video_track_i.h:204
agora::rtc::IRemoteVideoTrackEx::getStateLLApiInternal
virtual REMOTE_VIDEO_STATE getStateLLApiInternal()=0
agora::rtc::IVideoTrackObserver::OnVideoEncodeStrategyUpdated
virtual void OnVideoEncodeStrategyUpdated(VideoEncodeStrategyInfo strategy)
Definition: video_track_i.h:215
agora::rtc::IRemoteVideoTrackEx::AttachInfo::qoe_analyzer_parameters
VideoQoEAnalyzerParameter qoe_analyzer_parameters
Definition: video_track_i.h:476
agora::rtc::ILocalVideoTrackEx::ClearVideoConfigsOnLeaveChannel
virtual bool ClearVideoConfigsOnLeaveChannel()
Definition: video_track_i.h:378
agora::rtc::ILocalVideoTrackEx::AttachInfo::dm_maxgc
int dm_maxgc
Definition: video_track_i.h:274
agora::media::base::POSITION_POST_CAPTURER
@ POSITION_POST_CAPTURER
Definition: AgoraMediaBase.h:1143
agora::rtc::IVideoTrackObserver::onViewSizeChanged
virtual void onViewSizeChanged(uid_t uid, view_t view, int width, int height)
Definition: video_track_i.h:193
agora::rtc::ILocalVideoTrackEx::ConfigVideoFec
virtual void ConfigVideoFec(const VideoFecConfig &fec_cap)
Definition: video_track_i.h:394
agora::rtc::ILocalVideoTrackEx::AttachInfo::cfg_simulcast_stream_mode
Optional< SIMULCAST_STREAM_MODE > cfg_simulcast_stream_mode
Definition: video_track_i.h:293
agora::rtc::VideoDumpMode
VideoDumpMode
Definition: video_track_i.h:118
agora::rtc::IRemoteVideoTrackEx::getTrackInfoLLApiInternal
virtual bool getTrackInfoLLApiInternal(VideoTrackInfo &info)=0
webrtc
Definition: common_defines.h:18
agora::rtc::ILocalVideoTrackEx::TrackId
int TrackId() const
Definition: video_track_i.h:370
agora::rtc::IVideoTrackObserver::onVideoHWCodecSpecEvent
virtual void onVideoHWCodecSpecEvent(agora::rtc::VideoHWCodecSpec codecSpec)
Definition: video_track_i.h:203
agora::rtc::IRemoteVideoTrackEx::OnRoleUpdate
virtual void OnRoleUpdate(CLIENT_ROLE_TYPE role)
Definition: video_track_i.h:520
agora::rtc::ILocalVideoTrackEx::MANUAL
@ MANUAL
Definition: video_track_i.h:232
agora::rtc::IRemoteVideoTrackEx::AttachInfo::enable_vpr
bool enable_vpr
Definition: video_track_i.h:473
agora::rtc::ILocalVideoTrackEx::CaptureModeItem::scene
int32_t scene
Definition: video_track_i.h:244
agora::rtc::kVideoProcessEventPreprocessFrameFailure
@ kVideoProcessEventPreprocessFrameFailure
Definition: video_track_i.h:107
agora::rtc::ILocalVideoTrackEx::addVideoWatermark
virtual int addVideoWatermark(const char *watermarkUrl, const WatermarkOptions &options)
Definition: video_track_i.h:353
agora::rtc::ILocalVideoTrackEx::enableMinorStreamPeriodicKeyFrame
virtual bool enableMinorStreamPeriodicKeyFrame()
Definition: video_track_i.h:398
agora::rtc::IRemoteVideoTrackEx::AttachInfo::builder
WeakPipelineBuilder builder
Definition: video_track_i.h:470
agora::rtc::SIMULCAST_STREAM_MODE
SIMULCAST_STREAM_MODE
Definition: AgoraBase.h:2115
agora::rtc::VideoCodecAvailableEvent
VideoCodecAvailableEvent
Definition: video_track_i.h:113
agora::rtc::ILocalVideoTrackEx::registerVideoEncodedImageReceiver
virtual int registerVideoEncodedImageReceiver(media::IVideoEncodedFrameObserver *videoReceiver)
Definition: video_track_i.h:372
agora::rtc::ILocalVideoTrackEx::prepareNodes
virtual int prepareNodes(const char *id=nullptr)=0
agora::rtc::IVideoTrackObserver::onSourceVideoSizeChanged
virtual void onSourceVideoSizeChanged(uid_t uid, int width, int height, int rotation, int timestamp_ms)
Definition: video_track_i.h:179
agora::rtc::IVideoTrackObserver::onVideoAvailabilityIndicatorEvent
virtual void onVideoAvailabilityIndicatorEvent(VideoAvailabilityIndicator indicator)
Definition: video_track_i.h:202
agora::rtc::ILocalVideoTrackEx::AddVideoAvailabilityIndicatorEvents
virtual void AddVideoAvailabilityIndicatorEvents(VideoAvailabilityIndicator event)
Definition: video_track_i.h:325
agora::view_t
void * view_t
Definition: AgoraBase.h:814
agora::rtc::VideoAvailabilityLevel
VideoAvailabilityLevel
Definition: video_track_i.h:80
agora::rtc::IRemoteVideoTrackEx::unregisterProactiveCaller
virtual void unregisterProactiveCaller()
Definition: video_track_i.h:503
agora::rtc::VIDEO_DUMP_RECEIVED_STREAM
@ VIDEO_DUMP_RECEIVED_STREAM
Definition: video_track_i.h:124
agora::rtc::IRemoteVideoTrackEx::attach
virtual bool attach(const AttachInfo &info, REMOTE_VIDEO_STATE_REASON reason)=0
agora::rtc::RemoteVideoTrackStatsEx::content_type
VideoContentType content_type
Definition: video_track_i.h:457
agora::rtc::IRemoteVideoTrackEx::getStatisticsLLApiInternal
virtual bool getStatisticsLLApiInternal(RemoteVideoTrackStats &stats)=0
agora::rtc::LocalVideoTrackStatsEx::sent_loss_ratio
int sent_loss_ratio
Definition: video_track_i.h:222
agora::rtc::IRemoteVideoTrackEx::hasVideoFilterLLApiInternal
virtual bool hasVideoFilterLLApiInternal(const char *id, media::base::VIDEO_MODULE_POSITION position)=0
agora::rtc::IRemoteVideoTrackEx::removeRendererLLApiInternal
virtual bool removeRendererLLApiInternal(agora_refptr< IVideoSinkBase > videoRenderer, media::base::VIDEO_MODULE_POSITION position)=0
agora::rtc::IRemoteVideoTrackEx::IRemoteVideoTrackEx
IRemoteVideoTrackEx()=default
agora::rtc::VideoAvailabilityIndicator::glitch_detection_infos
std::vector< GlitchDetectionInfo > glitch_detection_infos
Definition: video_track_i.h:138
agora::rtc::VideoEncoderConfiguration
Definition: AgoraBase.h:1920
agora::rtc::VideoQoEAnalyzerParameter
Definition: video_track_i.h:141
agora::rtc::ILocalVideoTrackEx::AttachInfo::enable_minor_stream_fec
bool enable_minor_stream_fec
Definition: video_track_i.h:268
agora::rtc::VideoModuleEncode
@ VideoModuleEncode
Definition: video_track_i.h:71
agora::rtc::IVideoTrackObserver::onFirstVideoFrameRendered
virtual void onFirstVideoFrameRendered(int id, uid_t uid, int width, int height, int timestamp_ms)
Definition: video_track_i.h:173
agora::rtc::ILocalVideoTrackEx::RsfecConfig::fec_protection_factor
std::vector< int > fec_protection_factor
Definition: video_track_i.h:236
agora::rtc::ILocalVideoTrackEx::AttachInfo::enable_quick_intra_high_fec
bool enable_quick_intra_high_fec
Definition: video_track_i.h:282
agora::rtc::InternalVideoSourceType::Screen
@ Screen
agora::rtc::IRemoteVideoTrackEx::RemoteVideoEvents
StateEvents< REMOTE_VIDEO_STATE, REMOTE_VIDEO_STATE_REASON > RemoteVideoEvents
Definition: video_track_i.h:465
agora::rtc::IVideoTrackObserver::onVideoContentChanged
virtual void onVideoContentChanged(uid_t uid, agora::VideoContentType newType, agora::VideoContentSubType newSubtype)
Definition: video_track_i.h:211
agora::rtc::YuvConvertStats::width
int width
Definition: video_track_i.h:152
agora::rtc::VideoQoEAnalyzerParameter::qoe_critical_report_max_times
int qoe_critical_report_max_times
Definition: video_track_i.h:144
agora::rtc::REMOTE_VIDEO_STATE_REASON
REMOTE_VIDEO_STATE_REASON
Definition: AgoraBase.h:3243
agora::rtc::VideoModuleRender
@ VideoModuleRender
Definition: video_track_i.h:75
agora::rtc::VideoModuleQoE
@ VideoModuleQoE
Definition: video_track_i.h:77
agora::rtc::IVideoTrackObserver::onVideoRenderMirrorChanged
virtual void onVideoRenderMirrorChanged(bool mirror)
Definition: video_track_i.h:217
agora::rtc::IVideoTrackObserver::onFirstVideoFrameDecoded
virtual void onFirstVideoFrameDecoded(std::string cid, uid_t uid, uint32_t ssrc, int width, int height, int timestamp_ms)
Definition: video_track_i.h:175
agora::rtc::IVideoTrackObserver::OnRexferStatusUpdated
virtual void OnRexferStatusUpdated(bool status, int32_t target_bitrate)
Definition: video_track_i.h:195
agora::rtc::IVideoTrackObserver::onRemoteVideoStateChanged
virtual void onRemoteVideoStateChanged(uid_t uid, REMOTE_VIDEO_STATE state, REMOTE_VIDEO_STATE_REASON reason, int timestamp_ms)
Definition: video_track_i.h:168
agora::rtc::IVideoTrackObserver::onRecvSideDelay
virtual void onRecvSideDelay(uid_t uid, int recv_delay)
Definition: video_track_i.h:183
agora::rtc::IRemoteVideoTrackEx::addVideoFilterLLApiInternal
virtual bool addVideoFilterLLApiInternal(agora_refptr< IVideoFilter > filter, media::base::VIDEO_MODULE_POSITION position=media::base::POSITION_POST_CAPTURER, const char *id=NULL)=0
agora::rtc::ILocalVideoTrackEx::AttachInfo::enable_rq_classic_method
bool enable_rq_classic_method
Definition: video_track_i.h:277
agora::rtc::VideoAvailabilityLevel2
@ VideoAvailabilityLevel2
Definition: video_track_i.h:82
agora::rtc::IVideoTrackObserver::OnRequestKeyFrame
virtual void OnRequestKeyFrame(uid_t uid, VIDEO_STREAM_TYPE type)
Definition: video_track_i.h:213
agora::rtc::IVideoTrackObserver::onCameraCharacteristicProfileChanged
virtual void onCameraCharacteristicProfileChanged(agora::rtc::CameraCharacteristicProfile profile)
Definition: video_track_i.h:198
agora::rtc::ILocalVideoTrackEx::AttachInfo::max_inflight_frame_count_pre_processsing
absl::optional< int > max_inflight_frame_count_pre_processsing
Definition: video_track_i.h:283
agora::rtc::VIDEO_DUMP_PRE_ENCODER_YUV
@ VIDEO_DUMP_PRE_ENCODER_YUV
Definition: video_track_i.h:127
agora::rtc::IRemoteVideoTrackEx::registerProactiveCaller
virtual void registerProactiveCaller(const std::shared_ptr< ProactiveCaller > &)
Definition: video_track_i.h:502
agora::rtc::ILocalVideoTrackEx::AttachInfo::enable_minor_stream_vqc
bool enable_minor_stream_vqc
Definition: video_track_i.h:267
agora::rtc::IRemoteVideoTrackEx::registerTrackObserver
virtual bool registerTrackObserver(std::shared_ptr< IVideoTrackObserver > observer)
Definition: video_track_i.h:496
agora::rtc::ILocalVideoTrackEx::AttachInfo::dm_lowred
bool dm_lowred
Definition: video_track_i.h:276
agora::rtc::ILocalVideoTrackEx::RsfecConfig::fec_ratioLevel
std::vector< std::vector< int > > fec_ratioLevel
Definition: video_track_i.h:237
agora::rtc::CameraInfoList
std::vector< CameraInfo > CameraInfoList
Definition: video_node_i.h:427
agora
Definition: AgoraAtomicOps.h:21
agora::rtc::ILocalVideoTrackEx::user_id_
uid_t user_id_
Definition: video_track_i.h:437
agora::rtc::ILocalVideoTrackEx::unregisterVideoEncodedImageReceiver
virtual int unregisterVideoEncodedImageReceiver(media::IVideoEncodedFrameObserver *videoReceiver)
Definition: video_track_i.h:374
agora::rtc::kVideoProcessEventPreprocessEnqueueFailure
@ kVideoProcessEventPreprocessEnqueueFailure
Definition: video_track_i.h:106
agora::rtc::InternalVideoSourceType::CustomEncodedImageSource
@ CustomEncodedImageSource
agora::rtc::ILocalVideoTrackEx::setVideoEncoderConfigurationEx
virtual int setVideoEncoderConfigurationEx(const VideoEncoderConfiguration &config, utils::ConfigPriority priority=utils::CONFIG_PRIORITY_USER)=0
agora::rtc::REMOTE_VIDEO_STATE
REMOTE_VIDEO_STATE
Definition: AgoraBase.h:3212
agora::rtc::VideoQoEAnalyzerParameter::qoe_report_strategy
int qoe_report_strategy
Definition: video_track_i.h:147
agora::rtc::RemoteVideoTrackStatsEx
Definition: video_track_i.h:443
agora::rtc::ILocalVideoTrackEx::ReconfigureCaptureDelayMs
virtual void ReconfigureCaptureDelayMs(int video_capture_delay_ms)
Definition: video_track_i.h:396
agora::rtc::ILocalVideoTrackEx::unregisterTrackObserver
virtual bool unregisterTrackObserver(IVideoTrackObserver *observer)
Definition: video_track_i.h:342
agora::rtc::ILocalVideoTrackEx::UpdateAdaptiveScenarioTypeAndChannelSize
virtual void UpdateAdaptiveScenarioTypeAndChannelSize(AdaptiveScenarioType scenario_type, int channel_size, bool sync_ability)=0
agora::rtc::ILocalVideoTrackEx::CaptureModeItem::policy
int32_t policy
Definition: video_track_i.h:245
agora::rtc::VideoAvailabilityIndicator::uid
uid_t uid
Definition: video_track_i.h:134
agora::rtc::ILocalVideoTrackEx
Definition: video_track_i.h:230
agora::rtc::VideoAvailabilityIndicator::ts_exception_info
std::vector< agora::rtc::VideoTimestampExceptionInfo > ts_exception_info
Definition: video_track_i.h:137
agora::rtc::IRemoteVideoTrackEx::DetachInfo
Definition: video_track_i.h:479
agora::rtc::IRemoteVideoTrackEx::AttachInfo::source
VideoNodeRtpSource * source
Definition: video_track_i.h:468
agora::rtc::ILocalVideoTrackEx::AttachInfo::uid
uint32_t uid
Definition: video_track_i.h:250
agora::rtc::ILocalVideoTrackEx::GetVideoAvailabilityIndicatorEvents
virtual void GetVideoAvailabilityIndicatorEvents(std::vector< VideoAvailabilityIndicator > &events)
Definition: video_track_i.h:327
agora::rtc::ILocalVideoTrackEx::AttachInfo::cid
uint32_t cid
Definition: video_track_i.h:251
agora::rtc::ILocalVideoTrackEx::RsfecConfig::fec_rttThreshold
std::vector< int > fec_rttThreshold
Definition: video_track_i.h:238
agora::rtc::RemoteVideoTrackStatsEx::render_in_num
uint32_t render_in_num
Definition: video_track_i.h:450
agora::rtc::IVideoTrackObserver::~IVideoTrackObserver
virtual ~IVideoTrackObserver()=default
agora::rtc::ILocalVideoTrackEx::AttachInfo::stats_space
uint64_t stats_space
Definition: video_track_i.h:254
agora::rtc::ILocalVideoTrackEx::getVideoEncoderConfiguration
virtual rtc::VideoEncoderConfiguration getVideoEncoderConfiguration()
Definition: video_track_i.h:358
agora::rtc::VideoQoEAnalyzerParameter::qoe_analyzer_enable
bool qoe_analyzer_enable
Definition: video_track_i.h:142
agora::rtc::kVideoQoe200msFreezeDrop
@ kVideoQoe200msFreezeDrop
Definition: video_track_i.h:94
agora::rtc::IVideoTrackObserver::onRecvSideFps
virtual void onRecvSideFps(uid_t uid, int fps)
Definition: video_track_i.h:184
agora::rtc::VideoModulePipeline
@ VideoModulePipeline
Definition: video_track_i.h:76
agora::rtc::IRemoteVideoTrackEx::AttachInfo
Definition: video_track_i.h:467
agora::rtc::VIDEO_DUMP_FILTERED_YUV
@ VIDEO_DUMP_FILTERED_YUV
Definition: video_track_i.h:122
agora::rtc::ILocalVideoTrackEx::DetachInfo
Definition: video_track_i.h:301
agora::rtc::ILocalVideoTrackEx::removeVideoFilterLLApiInternal
virtual bool removeVideoFilterLLApiInternal(agora_refptr< IVideoFilter > filter, media::base::VIDEO_MODULE_POSITION position=media::base::POSITION_POST_CAPTURER, const char *id=NULL)=0
agora::rtc::LocalVideoTrackStatsEx::media_send_bps
uint32_t media_send_bps
Definition: video_track_i.h:225
agora::rtc::LocalVideoTrackStatsEx::total_video_send_target_bps
uint32_t total_video_send_target_bps
Definition: video_track_i.h:224
agora::rtc::VideoAvailabilityIndicator::extra
int extra
Definition: video_track_i.h:135
agora::rtc::IRemoteVideoTrackEx::MANUAL
@ MANUAL
Definition: video_track_i.h:464
agora::rtc::ILocalVideoTrackEx::DetachInfo::reason
DetachReason reason
Definition: video_track_i.h:303
agora::rtc::ILocalVideoTrackEx::setFilterPropertyLLApiInternal
virtual int setFilterPropertyLLApiInternal(const char *id, const char *key, const char *json_value)
Definition: video_track_i.h:424
agora::rtc::ILocalVideoTrackEx::getFilterPropertyLLApiInternal
virtual int getFilterPropertyLLApiInternal(const char *id, const char *key, char *json_value, size_t buf_size)
Definition: video_track_i.h:425
agora::rtc::ILocalVideoTrackEx::track_observers_
utils::WeakObserversFacility< IVideoTrackObserver > track_observers_
Definition: video_track_i.h:436
agora::rtc::ILocalVideoTrack
Definition: NGIAgoraVideoTrack.h:366
agora::rtc::ILocalVideoTrackEx::AttachInfo::rsfec_config
webrtc::RsfecConfig rsfec_config
Definition: video_track_i.h:257
agora::rtc::VIDEO_DUMP_CAPTURED_YUV
@ VIDEO_DUMP_CAPTURED_YUV
Definition: video_track_i.h:121
agora::rtc::ILocalVideoTrackEx::AttachInfo::builder
WeakPipelineBuilder builder
Definition: video_track_i.h:253
agora::rtc::YuvConvertStats::height
int height
Definition: video_track_i.h:153
agora::rtc::ILocalVideoTrackEx::setLocalVideoSend
virtual int setLocalVideoSend(bool send)=0
agora::rtc::VIDEO_DUMP_RENDERED_YUV
@ VIDEO_DUMP_RENDERED_YUV
Definition: video_track_i.h:126
agora::rtc::ILocalVideoTrackEx::onRequestEnableSimulcastStream
virtual int onRequestEnableSimulcastStream()
Definition: video_track_i.h:388
agora::rtc::ILocalVideoTrackEx::enableSourceFilterLLApiInternal
virtual void enableSourceFilterLLApiInternal(const char *id, bool enable)
Definition: video_track_i.h:423
agora::rtc::ILocalVideoTrackEx::NETWORK_DESTROY
@ NETWORK_DESTROY
Definition: video_track_i.h:232
agora::rtc::IVideoTrackObserver::OnVideoStatusUpdated
virtual void OnVideoStatusUpdated(int status)
Definition: video_track_i.h:201
agora::rtc::VideoModuleDecode
@ VideoModuleDecode
Definition: video_track_i.h:73
agora::rtc::kVideoTimestampException
@ kVideoTimestampException
Definition: video_track_i.h:96
agora::rtc::ILocalVideoTrackEx::id_
const int id_
Definition: video_track_i.h:435
agora::rtc::ILocalVideoTrackEx::removeRendererLLApiInternal
virtual bool removeRendererLLApiInternal(agora_refptr< IVideoSinkBase > videoRenderer, media::base::VIDEO_MODULE_POSITION position)=0
agora::rtc::IRemoteVideoTrackEx::setFilterPropertyLLApiInternal
virtual int setFilterPropertyLLApiInternal(const char *id, const char *key, const char *json_value)
Definition: video_track_i.h:517
agora::rtc::RemoteVideoTrackStatsEx::totalFrozen200ms
int64_t totalFrozen200ms
Definition: video_track_i.h:447
agora::rtc::ILocalVideoTrackEx::AttachInfo::enable_hw_encoder
std::string enable_hw_encoder
Definition: video_track_i.h:260
agora::rtc::RemoteVideoTrackStatsEx::jitter_offset_ms
int jitter_offset_ms
Definition: video_track_i.h:454
agora::rtc::IRemoteVideoTrackEx::AttachInfo::rsfec_codec_factory
std::shared_ptr< webrtc::IRsfecCodecFactoryInterface > rsfec_codec_factory
Definition: video_track_i.h:474
agora::rtc::ILocalVideoTrackEx::setUserId
virtual int setUserId(uid_t uid)
Definition: video_track_i.h:329
agora::rtc::ILocalVideoTrackEx::CaptureModeItem::type
std::string type
Definition: video_track_i.h:246
agora::rtc::IVideoTrackObserver::OnFirstDecodableFrameReceived
virtual void OnFirstDecodableFrameReceived(uint8_t stream_id)
Definition: video_track_i.h:214
agora::rtc::ILocalVideoTrackEx::SetVideoConfigEx
virtual int SetVideoConfigEx(int index, const VideoConfigurationEx &configEx, utils::ConfigPriority priority=utils::CONFIG_PRIORITY_USER)=0
agora::rtc::IRemoteVideoTrackEx::unregisterTrackObserver
virtual bool unregisterTrackObserver(IVideoTrackObserver *observer)
Definition: video_track_i.h:499
agora::rtc::ILocalVideoTrackEx::getVideoFrameSourceFilterStats
virtual bool getVideoFrameSourceFilterStats(agora::rtc::VideoFrameSourceFilter::Stats &stats)
Definition: video_track_i.h:347
agora::rtc::ILocalVideoTrackEx::getStatisticsLLApiInternal
virtual bool getStatisticsLLApiInternal(LocalVideoTrackStats &stats)=0
agora::rtc::ILocalVideoTrackEx::SetSvcAutoAdjusterEnabled
virtual void SetSvcAutoAdjusterEnabled(bool enabled, const SvcAAConfig &config)
Definition: video_track_i.h:427
agora::rtc::IMediaPacketReceiver
Definition: NGIAgoraMediaNode.h:606
agora::rtc::ILocalVideoTrackEx::DetachInfo::network
VideoNodeRtpSink * network
Definition: video_track_i.h:302
agora::rtc::kVideoQoe600msFreezeDrop
@ kVideoQoe600msFreezeDrop
Definition: video_track_i.h:93
agora::rtc::ILocalVideoTrackEx::addRendererLLApiInternal
virtual bool addRendererLLApiInternal(agora_refptr< IVideoSinkBase > videoRenderer, media::base::VIDEO_MODULE_POSITION position)=0
agora::rtc::ILocalVideoTrackEx::setEnabledLLApiInternal
virtual int setEnabledLLApiInternal(bool enable, bool action_droppable=true)=0
agora::rtc::ILocalVideoTrackEx::CODEC_CHANGE
@ CODEC_CHANGE
Definition: video_track_i.h:232
agora::rtc::InternalVideoSourceType::None
@ None
agora::rtc::kVideoHwH264EncoderHighProfileAvailable
@ kVideoHwH264EncoderHighProfileAvailable
Definition: video_track_i.h:115
agora::rtc::IRemoteVideoTrackEx::AttachInfo::rtcp_sender
VideoNodeRtpSink * rtcp_sender
Definition: video_track_i.h:469
agora::rtc::ILocalVideoTrackEx::AttachInfo::enable_two_bytes_extension
bool enable_two_bytes_extension
Definition: video_track_i.h:256
agora::rtc::ILocalVideoTrackEx::SetQoeMetricsWeight
virtual void SetQoeMetricsWeight(int index, QoeMetricsWeight qoe_metrics_weight)
Definition: video_track_i.h:406
agora::rtc::ILocalVideoTrackEx::CaptureModeItem
Definition: video_track_i.h:242
agora::rtc::VideoConfigurationEx
Definition: video_config_i.h:25
agora::rtc::IVideoTrackObserver::OnVideoCodingModuleInfosUpdated
virtual void OnVideoCodingModuleInfosUpdated(webrtc::VideoCodingModuleInfos info)
Definition: video_track_i.h:216
agora::rtc::VideoHWCodecSpec
Definition: video_node_i.h:403
agora::rtc::ILocalVideoTrackEx::AttachInfo::enable_minor_stream_fec_outside_ratio
bool enable_minor_stream_fec_outside_ratio
Definition: video_track_i.h:269
agora::rtc::VideoQoEAnalyzerParameter::enable_video_diagnose_logger
bool enable_video_diagnose_logger
Definition: video_track_i.h:143
agora::rtc::IRemoteVideoTrackEx::unregisterMediaPacketReceiverLLApiInternal
virtual int unregisterMediaPacketReceiverLLApiInternal(IMediaPacketReceiver *packetReceiver)=0
agora::rtc::StateEvents
std::vector< StateEvent< STATE_TYPE, REASON_TYPE > > StateEvents
Definition: track_stat_i.h:21
agora::rtc::RemoteVideoTrackStatsEx::dec_in_num
uint32_t dec_in_num
Definition: video_track_i.h:449
agora::rtc::ILocalVideoTrackEx::setLocalRenderTargetFps
virtual int setLocalRenderTargetFps(int target_fps)=0
agora::rtc::ILocalVideoTrackEx::CaptureModeItem::mode
int32_t mode
Definition: video_track_i.h:243
agora::rtc::LOCAL_VIDEO_STREAM_REASON
LOCAL_VIDEO_STREAM_REASON
Definition: AgoraBase.h:2997
agora::rtc::kVideoQoePipelineException
@ kVideoQoePipelineException
Definition: video_track_i.h:97
agora::rtc::ILocalVideoTrackEx::getBillingVideoProfileWithSimulcast
virtual void getBillingVideoProfileWithSimulcast(bool &enable, SimulcastConfigInternal &simu_config)
Definition: video_track_i.h:364
agora::rtc::IVideoTrackObserver::onLocalFilterStatusChanged
virtual void onLocalFilterStatusChanged(int track_id, std::string filter_name, bool enabled)
Definition: video_track_i.h:208
agora::rtc::ILocalVideoTrackEx::attach
virtual bool attach(const AttachInfo &info)=0
agora::rtc::ILocalVideoTrackEx::RequestKeyFrame
virtual void RequestKeyFrame(VIDEO_STREAM_TYPE type, bool is_quick_intra_request, bool internal)
Definition: video_track_i.h:323
agora::rtc::SimulcastConfigInternal
Definition: NGIAgoraVideoTrack.h:67
agora::rtc::IRemoteVideoTrackEx
Definition: video_track_i.h:462
agora::rtc::YuvConvertStats::deviceId
std::string deviceId
Definition: video_track_i.h:157
agora::rtc::IRemoteVideoTrackEx::unregisterVideoEncodedFrameObserverLLApiInternal
virtual int unregisterVideoEncodedFrameObserverLLApiInternal(agora::media::IVideoEncodedFrameObserver *encodedObserver)=0
agora::rtc::VideoModuleId
VideoModuleId
Definition: video_track_i.h:68
agora::rtc::ILocalVideoTrackEx::AttachInfo::svc_aa_config
SvcAAConfig svc_aa_config
Definition: video_track_i.h:298
agora::rtc::VideoAvailabilityIndicator::level
VideoAvailabilityLevel level
Definition: video_track_i.h:131
agora::rtc::ILocalVideoTrackEx::Height
virtual int32_t Height() const =0
agora::media::base::VIDEO_MODULE_POSITION
VIDEO_MODULE_POSITION
Definition: AgoraMediaBase.h:1142
agora::rtc::IVideoTrackObserver::onEncoderConfigurationChanged
virtual void onEncoderConfigurationChanged(const std::unordered_map< int, VideoConfigurationEx > &config)
Definition: video_track_i.h:185
agora::rtc::ILocalVideoTrackEx::getInternalVideoSourceType
virtual InternalVideoSourceType getInternalVideoSourceType()
Definition: video_track_i.h:356
agora::rtc::kVideoQoeFpsSubstandard
@ kVideoQoeFpsSubstandard
Definition: video_track_i.h:95
agora::rtc::IRemoteVideoTrackEx::TRACK_DESTROY
@ TRACK_DESTROY
Definition: video_track_i.h:464
agora::rtc::ILocalVideoTrackEx::AttachInfo::qoe_analyzer_parameters
VideoQoEAnalyzerParameter qoe_analyzer_parameters
Definition: video_track_i.h:295
agora::rtc::ILocalVideoTrackEx::updateContentHint
virtual int updateContentHint(VIDEO_CONTENT_HINT contentHint)
Definition: video_track_i.h:366
agora::rtc::ILocalVideoTrackEx::AttachInfo::negotiated_video_codec_caps
VideoNegotiatedCodecCaps negotiated_video_codec_caps
Definition: video_track_i.h:288
agora::rtc::ILocalVideoTrackEx::getUserId
virtual uid_t getUserId()
Definition: video_track_i.h:331
agora::rtc::ILocalVideoTrackEx::Enabled
virtual bool Enabled() const =0
agora::rtc::ILocalVideoTrackEx::AttachInfo::cc_type
CongestionControlType cc_type
Definition: video_track_i.h:255
agora::rtc::ILocalVideoTrackEx::AttachInfo::hw_capture_delay
int hw_capture_delay
Definition: video_track_i.h:290
agora::rtc::VideoModulePostprocess
@ VideoModulePostprocess
Definition: video_track_i.h:74
agora::rtc::VIDEO_DUMP_ALL
@ VIDEO_DUMP_ALL
Definition: video_track_i.h:120
agora::ERR_NOT_SUPPORTED
@ ERR_NOT_SUPPORTED
Definition: AgoraBase.h:481
agora::rtc::ILocalVideoTrackEx::~ILocalVideoTrackEx
virtual ~ILocalVideoTrackEx()
Definition: video_track_i.h:307
agora::rtc::IRemoteVideoTrackEx::registerMediaPacketReceiverLLApiInternal
virtual int registerMediaPacketReceiverLLApiInternal(IMediaPacketReceiver *packetReceiver)=0
agora::rtc::ILocalVideoTrackEx::registerModuleControlPanel
virtual void registerModuleControlPanel(std::shared_ptr< rtc::IModuleControlPanel > panel)
Definition: video_track_i.h:403
agora::rtc::IRemoteVideoTrackEx::addRendererLLApiInternal
virtual bool addRendererLLApiInternal(agora_refptr< IVideoSinkBase > videoRenderer, media::base::VIDEO_MODULE_POSITION position=media::base::POSITION_PRE_RENDERER)=0
agora::rtc::IRemoteVideoTrack
Definition: NGIAgoraVideoTrack.h:546
agora::rtc::kVideoQoeCriticalDrop
@ kVideoQoeCriticalDrop
Definition: video_track_i.h:92
agora::rtc::ILocalVideoTrackEx::getBillingVideoProfile
virtual void getBillingVideoProfile(int32_t &w, int32_t &h, int32_t &frame_rate)
Definition: video_track_i.h:350
agora::rtc::ILocalVideoTrackEx::AttachInfo::switch_to_rq
std::string switch_to_rq
Definition: video_track_i.h:275
agora::rtc::InternalVideoSourceType::TranscodedSource
@ TranscodedSource
agora::rtc::ILocalVideoTrackEx::setLocalRenderMirror
virtual int setLocalRenderMirror(bool mirror)=0
agora::rtc::IRemoteVideoTrackEx::DetachReason
DetachReason
Definition: video_track_i.h:464
agora::rtc::VideoAvailabilityIndicator::module
VideoModuleId module
Definition: video_track_i.h:132
agora::rtc::IRemoteVideoTrackEx::detach
virtual bool detach(const DetachInfo &info, REMOTE_VIDEO_STATE_REASON reason)=0
agora::rtc::ILocalVideoTrackEx::SetVideoCodecCaps
virtual void SetVideoCodecCaps(VideoNegotiatedCodecCaps negotiated_video_codec_caps)
Definition: video_track_i.h:426
agora::rtc::IVideoTrackObserver::onLocalAddVideoFilter
virtual void onLocalAddVideoFilter(int track_id, std::string filter_name, bool enabled)
Definition: video_track_i.h:207
agora::rtc::ILocalVideoTrackEx::GetConfigExs
virtual int GetConfigExs(std::unordered_map< int, VideoConfigurationEx > &configs, bool include_disable_config=false)=0
agora::rtc::VideoQoeEvent
VideoQoeEvent
Definition: video_track_i.h:91
agora::rtc::kVideoProcessEventPreprocessCongested
@ kVideoProcessEventPreprocessCongested
Definition: video_track_i.h:109
agora::rtc::CameraCharacteristicProfile
Definition: video_node_i.h:389
agora::rtc::ILocalVideoTrackEx::AttachInfo::support_higher_standard_bitrate
bool support_higher_standard_bitrate
Definition: video_track_i.h:294
agora::rtc::ILocalVideoTrackEx::getVideoTextureCopyStatus
virtual bool getVideoTextureCopyStatus(VideoTextureCopyParam &param)
Definition: video_track_i.h:360
agora::rtc::YuvConvertStats::avgUs
int avgUs
Definition: video_track_i.h:155
agora::rtc::CongestionControlType
CongestionControlType
Definition: rtc_connection_i.h:85
agora::rtc::ILocalVideoTrackEx::onVideoModuleStatus
virtual void onVideoModuleStatus(std::string node_name, int type)
Definition: video_track_i.h:386
agora::rtc::ILocalVideoTrackEx::clearVideoWatermarks
virtual int clearVideoWatermarks()
Definition: video_track_i.h:354
agora::rtc::WatermarkOptions
Definition: AgoraBase.h:2280
agora::rtc::kVideoHwH265EncoderAvailable
@ kVideoHwH265EncoderAvailable
Definition: video_track_i.h:114
agora::rtc::RemoteVideoTrackStats
Definition: NGIAgoraVideoTrack.h:433
agora::rtc::kVideoUplinkEventStaticFrames
@ kVideoUplinkEventStaticFrames
Definition: video_track_i.h:88
agora::rtc::kVideoGlitchDetection
@ kVideoGlitchDetection
Definition: video_track_i.h:98
agora::rtc::ILocalVideoTrackEx::AttachInfo::fec_method
int fec_method
Definition: video_track_i.h:272
agora::rtc::ILocalVideoTrackEx::AttachInfo
Definition: video_track_i.h:249
agora::rtc::ILocalVideoTrackEx::AttachInfo::fec_capabilities
std::unordered_map< uint8_t, std::string > fec_capabilities
Definition: video_track_i.h:296
agora::rtc::ILocalVideoTrackEx::isVideoFilterEnabled
virtual bool isVideoFilterEnabled(const char *id)
Definition: video_track_i.h:392
agora::rtc::ILocalVideoTrackEx::hasPublished
virtual bool hasPublished()=0
agora::rtc::IRemoteVideoTrackEx::track_observers_
utils::WeakObserversFacility< IVideoTrackObserver > track_observers_
Definition: video_track_i.h:520
agora::rtc::ILocalVideoTrackEx::setSimulcastStreamModeLLApiInternal
virtual int setSimulcastStreamModeLLApiInternal(SIMULCAST_STREAM_MODE mode, const SimulcastConfigInternal &simu_config)=0
agora::rtc::IVideoTrackObserver::onVideoPipelineDataFormatChanged
virtual void onVideoPipelineDataFormatChanged(int format)
Definition: video_track_i.h:191
agora::rtc::IRemoteVideoTrackEx::AttachInfo::recv_media_packet
bool recv_media_packet
Definition: video_track_i.h:471
agora::rtc::IRemoteVideoTrackEx::getRemoteSsrc
virtual uint32_t getRemoteSsrc()=0
agora::rtc::IVideoTrackObserver::onLocalVideoStateChanged
virtual void onLocalVideoStateChanged(int id, LOCAL_VIDEO_STREAM_STATE state, LOCAL_VIDEO_STREAM_REASON reason, int timestamp_ms)
Definition: video_track_i.h:163
agora::rtc::ILocalVideoTrackEx::getStatisticsEx
virtual bool getStatisticsEx(LocalVideoTrackStatsEx &statsEx)
Definition: video_track_i.h:346
agora::rtc::VIDEO_STREAM_TYPE
VIDEO_STREAM_TYPE
Definition: AgoraBase.h:1573
agora::rtc::InternalVideoSourceType::Custom
@ Custom
agora::rtc::ILocalVideoTrackEx::AttachInfo::harq_version
int harq_version
Definition: video_track_i.h:265
agora::rtc::ILocalVideoTrackEx::unregisterProactiveCaller
virtual void unregisterProactiveCaller()
Definition: video_track_i.h:401
agora::rtc::VideoAvailabilityLevel3
@ VideoAvailabilityLevel3
Definition: video_track_i.h:83
agora::rtc::LocalVideoTrackStatsEx::local_video_stats
LocalVideoTrackStats local_video_stats
Definition: video_track_i.h:221
agora::rtc::InternalVideoSourceType::CustomPacketSource
@ CustomPacketSource
agora::media::IVideoEncodedFrameObserver
Definition: AgoraMediaBase.h:1642
agora::rtc::ILocalVideoTrackEx::GetCaptureMode
virtual int GetCaptureMode(CaptureModeItem &captureModeOut)=0
agora::rtc::VideoAvailabilityIndicator::code
int code
Definition: video_track_i.h:133
agora::rtc::ILocalVideoTrackEx::NegotiateCodec
virtual bool NegotiateCodec(VideoNegotiatedCodecCaps negotiated_video_decode_caps)
Definition: video_track_i.h:384
agora::rtc::IRemoteVideoTrackEx::AttachInfo::video_threshhold_ms
uint32_t video_threshhold_ms
Definition: video_track_i.h:475
agora::rtc::ILocalVideoTrackEx::GetActiveStreamsCount
virtual int GetActiveStreamsCount()=0
agora::rtc::IRemoteVideoTrackEx::enableVideoFilterLLApiInternal
virtual int enableVideoFilterLLApiInternal(const char *id, bool enable)
Definition: video_track_i.h:516
agora::rtc::ILocalVideoTrackEx::DetachReason
DetachReason
Definition: video_track_i.h:232
agora::rtc::IRemoteVideoTrackEx::DetachInfo::source
VideoNodeRtpSource * source
Definition: video_track_i.h:480
agora::rtc::IRemoteVideoTrackEx::AttachInfo::stats_space
uint64_t stats_space
Definition: video_track_i.h:472
agora::rtc::VideoQoEAnalyzerParameter::qoe_timing_strategy_report_period
int qoe_timing_strategy_report_period
Definition: video_track_i.h:148
agora::rtc::IVideoTrackObserver::onYuvConvertStats
virtual void onYuvConvertStats(const YuvConvertStats &stats)
Definition: video_track_i.h:205
agora::rtc::IVideoTrackObserver::OnNotifyDepartedFrame
virtual void OnNotifyDepartedFrame(uid_t uid, int picture_id)
Definition: video_track_i.h:196
agora::rtc::ILocalVideoTrackEx::registerProactiveCaller
virtual void registerProactiveCaller(const std::shared_ptr< rtc::ProactiveCaller > &configurator)
Definition: video_track_i.h:400
agora::rtc::VideoTrackInfo
Definition: AgoraBase.h:3326
agora::rtc::RemoteVideoTrackStatsEx::isHardwareCodec
bool isHardwareCodec
Definition: video_track_i.h:446
agora::rtc::ILocalVideoTrackEx::addVideoFilterLLApiInternal
virtual bool addVideoFilterLLApiInternal(agora_refptr< IVideoFilter > filter, media::base::VIDEO_MODULE_POSITION position=media::base::POSITION_POST_CAPTURER, const char *id=NULL)=0
agora::rtc::IVideoTrackObserver::onRemoteFilterStatusChanged
virtual void onRemoteFilterStatusChanged(std::string cid, uid_t uid, uint32_t ssrc, std::string filter_name, bool enabled, bool isDisableMe=false)
Definition: video_track_i.h:210
agora::rtc::VIDEO_CONTENT_HINT
VIDEO_CONTENT_HINT
Definition: AgoraBase.h:2767
agora::rtc::VideoQoEAnalyzerParameter::qoe_high_report_max_times
int qoe_high_report_max_times
Definition: video_track_i.h:145
agora::rtc::IVideoTrackObserver::onCameraFacingChanged
virtual void onCameraFacingChanged(int facing)
Definition: video_track_i.h:192
agora::rtc::ILocalVideoTrackEx::AttachInfo::sync_peer_uid
uint32_t sync_peer_uid
Definition: video_track_i.h:291
agora::rtc::uid_t
unsigned int uid_t
Definition: AgoraMediaBase.h:28
agora::rtc::ILocalVideoTrackEx::RsfecConfig::pec_enabled
bool pec_enabled
Definition: video_track_i.h:239
agora::rtc::ILocalVideoTrackEx::setVideoDumpMode
virtual void setVideoDumpMode(int mode, bool enabled, int frame_cnt=-1)
Definition: video_track_i.h:382
agora::rtc::CLIENT_ROLE_TYPE
CLIENT_ROLE_TYPE
Definition: AgoraBase.h:2516
agora::rtc::ILocalVideoTrackEx::SetUplinkEstimatedBwe
virtual void SetUplinkEstimatedBwe(int uplink_bwe)=0
agora::rtc::ILocalVideoTrackEx::getIsAttachedToNetwork
virtual bool getIsAttachedToNetwork()
Definition: video_track_i.h:390
agora::rtc::VIDEO_DUMP_DECODED_YUV
@ VIDEO_DUMP_DECODED_YUV
Definition: video_track_i.h:125
agora::rtc::ILocalVideoTrackEx::AttachInfo::enable_video_send_diagnose
bool enable_video_send_diagnose
Definition: video_track_i.h:286
agora::rtc::RemoteVideoTrackStatsEx::last_frame_max
uint32_t last_frame_max
Definition: video_track_i.h:448
agora::rtc::IRemoteVideoTrackEx::~IRemoteVideoTrackEx
virtual ~IRemoteVideoTrackEx()
Definition: video_track_i.h:487
agora::rtc::IVideoTrackObserver
Definition: video_track_i.h:160
agora::rtc::VideoPipelineEvent
VideoPipelineEvent
Definition: video_track_i.h:87
agora::rtc::LocalVideoTrackStatsEx::total_bwe_bps
uint32_t total_bwe_bps
Definition: video_track_i.h:223
agora::rtc::RemoteVideoTrackStatsEx::firstVideoFrameRendered
uint64_t firstVideoFrameRendered
Definition: video_track_i.h:445
agora::rtc::ILocalVideoTrackEx::enableVideoFilterLLApiInternal
virtual int enableVideoFilterLLApiInternal(const char *id, bool enable)
Definition: video_track_i.h:422
agora::rtc::YuvConvertStats::maxUs
int maxUs
Definition: video_track_i.h:156
agora::rtc::IVideoTrackObserver::onCameraInfoListChanged
virtual void onCameraInfoListChanged(CameraInfoList cameraInfoList)
Definition: video_track_i.h:197
agora::rtc::VIDEO_DUMP_DEFAULT
@ VIDEO_DUMP_DEFAULT
Definition: video_track_i.h:119
agora::rtc::RemoteVideoTrackStatsEx::loss_af_fec
uint32_t loss_af_fec
Definition: video_track_i.h:453
agora::rtc::InternalVideoSourceType::Camera
@ Camera
agora::rtc::ILocalVideoTrackEx::AttachInfo::network
VideoNodeRtpSink * network
Definition: video_track_i.h:252
agora::rtc::RemoteVideoTrackStatsEx::video_availability
std::vector< VideoAvailabilityIndicator > video_availability
Definition: video_track_i.h:458
agora::rtc::ILocalVideoTrackEx::AttachInfo::dm_wsize
int dm_wsize
Definition: video_track_i.h:273
agora::rtc::ILocalVideoTrackEx::ILocalVideoTrackEx
ILocalVideoTrackEx()
Definition: video_track_i.h:306
agora::rtc::IRemoteVideoTrackEx::getStatisticsEx
virtual bool getStatisticsEx(RemoteVideoTrackStatsEx &statsex)
Definition: video_track_i.h:494
agora::rtc::VIDEO_DUMP_ENCODED_STREAM
@ VIDEO_DUMP_ENCODED_STREAM
Definition: video_track_i.h:123
agora::rtc::ILocalVideoTrackEx::AttachInfo::minimum_fec_level
int32_t minimum_fec_level
Definition: video_track_i.h:279
agora::rtc::IVideoTrackObserver::OnSetRexferParams
virtual void OnSetRexferParams(bool fec_rexfer, float rexfer_alpha, int max_rexfer_times)
Definition: video_track_i.h:194
agora::rtc::IVideoTrackObserver::onSendSideDelay
virtual void onSendSideDelay(int id, int send_delay)
Definition: video_track_i.h:182
agora::rtc::RemoteVideoTrackStatsEx::qp_sum
uint64_t qp_sum
Definition: video_track_i.h:456
agora::rtc::ILocalVideoTrackEx::registerTrackObserver
virtual bool registerTrackObserver(std::shared_ptr< IVideoTrackObserver > observer)
Definition: video_track_i.h:339
rtc
Definition: video_node_i.h:28
agora::rtc::IVideoTrackObserver::onFirstVideoKeyFrameReceived
virtual void onFirstVideoKeyFrameReceived(uid_t uid, uint64_t timestamp, const webrtc::FirstVideoFrameStreamInfo &streamInfo)
Definition: video_track_i.h:177
agora::rtc::VideoModulePreprocess
@ VideoModulePreprocess
Definition: video_track_i.h:70
agora::Optional< SIMULCAST_STREAM_MODE >
agora::rtc::IVideoTrackObserver::onSvcLayerUpdated
virtual void onSvcLayerUpdated(SvcAABandwidthReportInfo info, int supported_max_layers, AdaptiveScenarioType scenario_type, int channel_size, const std::map< VideoStreamCreator::StreamIndex, int > &be_subscribed_streams, const std::vector< int > &svc_layer_bitrate, SvcAASourceType source, const std::vector< SvcAAStrategyResult > &svc_aa_strategy_result_vec)
Definition: video_track_i.h:186
agora::rtc::ILocalVideoTrackEx::hasVideoFilterLLApiInternal
virtual bool hasVideoFilterLLApiInternal(const char *id, media::base::VIDEO_MODULE_POSITION position)=0
agora::rtc::ILocalVideoTrackEx::AttachInfo::enable_check_for_disable_fec
bool enable_check_for_disable_fec
Definition: video_track_i.h:281
agora::rtc::ILocalVideoTrackEx::AttachInfo::enable_minor_stream_intra_request
bool enable_minor_stream_intra_request
Definition: video_track_i.h:270
agora::rtc::ILocalVideoTrackEx::getSimucastStreamConfig
virtual void getSimucastStreamConfig(SimulcastConfigInternal &simu_stream_config)
Definition: video_track_i.h:362
agora::rtc::ILocalVideoTrackEx::RsfecConfig
Definition: video_track_i.h:235
agora::rtc::VideoQoEAnalyzerParameter::qoe_normal_report_max_times
int qoe_normal_report_max_times
Definition: video_track_i.h:146
agora::rtc::ILocalVideoTrackEx::setVideoEncoderConfigurationLLApiInternal
virtual int setVideoEncoderConfigurationLLApiInternal(const rtc::VideoEncoderConfiguration &config)=0
agora::rtc::InternalVideoSourceType::CustomYuvSource
@ CustomYuvSource
agora::rtc::VideoModuleNetwork
@ VideoModuleNetwork
Definition: video_track_i.h:72
agora::rtc::LocalVideoTrackStats
Definition: NGIAgoraVideoTrack.h:220
agora::rtc::ILocalVideoTrackEx::updateScreenCaptureScenario
virtual int updateScreenCaptureScenario(SCREEN_SCENARIO_TYPE screenScenario)
Definition: video_track_i.h:368
agora::rtc::VideoAvailabilityIndicator::extra2
std::vector< agora::rtc::QoEDropInfo > extra2
Definition: video_track_i.h:136
agora::rtc::ILocalVideoTrackEx::detach
virtual bool detach(const DetachInfo &info)=0
agora::rtc::VideoModuleCapture
@ VideoModuleCapture
Definition: video_track_i.h:69
agora::rtc::IRemoteVideoTrackEx::DetachInfo::reason
DetachReason reason
Definition: video_track_i.h:482
agora::rtc::VideoAvailabilityIndicator
Definition: video_track_i.h:130
agora::rtc::WeakPipelineBuilder
std::weak_ptr< webrtc::Call > WeakPipelineBuilder
Definition: common_defines.h:26
agora::rtc::IVideoTrackObserver::OnEncoderStatusUpdate
virtual void OnEncoderStatusUpdate(webrtc::VideoCodecType codec_type, webrtc::HW_ENCODER_ACCELERATING_STATUS hw_accelerate_status)
Definition: video_track_i.h:199