Agora C++ API Reference for All Platforms
Loading...
Searching...
No Matches
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 "main/core/video/base/video_frame/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#include "main/core/video/strategy_framework/strategy_qoe_decision/strategy_qoe_decision_interface.h"
41#include "modules/agora_video_codec/include/video_encoder_interface.h"
42
43
44namespace webrtc {
45 class IFecMethodFactoryInterface;
46 class ISmoothRender;
47 class IRsfecCodecFactoryInterface;
48 class IAutoAdjustHarq;
49}
50
51namespace agora {
52namespace rtc {
53
54class VideoNodeRtpSink;
55class VideoNodeRtpSource;
56class ProactiveCaller;
57class IModuleControlPanel;
58class IVideoStatsMetrics;
59class StrategyQoeDecisionInterface;
60
72
85
87 VideoAvailabilityLevel1 = 1, // Completely unusable.
88 VideoAvailabilityLevel2, // Usable but with very poor experience.
89 VideoAvailabilityLevel3, // Usable but with poor experience.
90};
91
92// Events report. New enum can be added but do not change the existing value!
94 kVideoUplinkEventStaticFrames = 1, // Continous static frames, maybe green/black picktures.
95};
96
107
108// Events report. New enum can be added but do not change the existing value!
111
112 // These events report will be throttled, refer to VideoEngine::doReportVideoEvent().
115 kVideoProcessEventPreprocessNoIncomingFrame = 1002, // No incoming frame for builtin VPM module
117};
118
119// report hardware codec availability event.
124
126 VIDEO_DUMP_DEFAULT = 0, // Dump all.
127 VIDEO_DUMP_ALL = 0xFFFF, // Dump all.
128 VIDEO_DUMP_CAPTURED_YUV = (1 << 0), // Dump YUV after video capturing.
129 VIDEO_DUMP_FILTERED_YUV = (1 << 1), // Dump YUV before video encoding.
130 VIDEO_DUMP_ENCODED_STREAM = (1 << 2), // Dump stream after video encoding.
131 VIDEO_DUMP_RECEIVED_STREAM = (1 << 3), // Dump stream before video decoding.
132 VIDEO_DUMP_DECODED_YUV = (1 << 4), // Dump YUV after video decoding.
133 VIDEO_DUMP_RENDERED_YUV = (1 << 5), // Dump YUV before video rendering.
134 VIDEO_DUMP_PRE_ENCODER_YUV = (1 << 6), // Dump YUV right before video encoding.
135};
136
140 int code;
142 int extra;
143 std::vector<agora::rtc::QoEDropInfo> extra2;
144 std::vector<agora::rtc::VideoTimestampExceptionInfo> ts_exception_info;
145 std::vector<GlitchDetectionInfo> glitch_detection_infos;
146 std::string extension_info;
147};
148
150 int peer = 0;
151 int streamDepth = 0;
153 int isTexture = 0;
154 int renderType = 0;
157 int colorMatrix = 0;
158 int colorRange = 0;
159};
160
170
172 int width;
175 int avgUs;
176 int maxUs;
177 std::string deviceId;
178};
179
187
194
196 std::string font_file_path;
198 std::string format;
200};
201
203 std::string id;
208 std::string image_url;
209
211
214 buffer.buffer.clear();
215 }
216 }
217
221
223 id = other.id;
224 type = other.type;
225 options = other.options;
226 switch (other.type) {
228 WatermarkBufferInner _buffer;
229 _buffer.buffer = other.buffer.buffer ?
230 std::vector<uint8_t>(other.buffer.buffer, other.buffer.buffer + other.buffer.length) : std::vector<uint8_t>(0);
231 _buffer.width = other.buffer.width;
232 _buffer.height = other.buffer.height;
233 _buffer.length = other.buffer.length;
234 _buffer.format = other.buffer.format;
235 buffer = _buffer;
236 break;
237 }
239 WatermarkLiteralInner _literal;
240 _literal.wm_literal = other.literal.wmLiteral ? other.literal.wmLiteral : "";
241 _literal.font_file_path = other.literal.fontFilePath ? other.literal.fontFilePath : "";
242 _literal.font_size = other.literal.fontSize;
243 _literal.stroke_width = other.literal.strokeWidth;
244 literal = _literal;
245 break;
246 }
248 WatermarkTimestampInner _timestamp;
249 _timestamp.font_file_path = other.timestamp.fontFilePath ? other.timestamp.fontFilePath : "";
250 _timestamp.font_size = other.timestamp.fontSize;
251 _timestamp.format = other.timestamp.format ? other.timestamp.format : "";
252 _timestamp.stroke_width = other.timestamp.strokeWidth;
253 timestamp = _timestamp;
254 break;
255 }
257 image_url = other.imageUrl ? other.imageUrl : "";
258 break;
259 default:
260 break;
261 }
262 }
263};
264
265class IVideoTrackObserver : public std::enable_shared_from_this<IVideoTrackObserver> {
266 public:
267 virtual ~IVideoTrackObserver() = default;
268 virtual void onLocalVideoStateChanged(int id,
271 int timestamp_ms) {}
272
274 REMOTE_VIDEO_STATE state,
276 int timestamp_ms) {}
277
278 virtual void onFirstVideoFrameRendered(int id, uid_t uid, int width, int height, int timestamp_ms) {}
279
280 virtual void onFirstVideoFrameDecoded(std::string cid, uid_t uid, uint32_t ssrc, int width, int height, int timestamp_ms) {}
281
282 virtual void onFirstVideoKeyFrameReceived(uid_t uid, uint64_t timestamp, const webrtc::FirstVideoFrameStreamInfo &streamInfo) {}
283
285 int width, int height,
286 int rotation, int timestamp_ms) {}
287 virtual void onSendSideDelay(int id, int send_delay) {}
288 virtual void onRecvSideDelay(uid_t uid, int recv_delay) {}
289 virtual void onRecvSideFps(uid_t uid, int fps) {}
290 virtual void onEncoderConfigurationChanged(const std::unordered_map<int, VideoConfigurationEx>& config) {}
291 virtual void onSvcLayerUpdated(SvcAABandwidthReportInfo info, int supported_max_layers,
292 AdaptiveScenarioType scenario_type, int channel_size,
293 const std::map<VideoStreamIndex, int>& be_subscribed_streams,
294 const std::vector<int>& svc_layer_bitrate, SvcAASourceType source,
295 const std::vector<SvcAAStrategyResult>& svc_aa_strategy_result_vec) {}
296 virtual void onSvcaaEnabledStateUpdated(uint16_t enabled_state) {}
297 virtual void onEncoderStrategySupportedSvcLayersUpdated(int max_layers) {}
298 virtual void onVideoPipelineDataFormatChanged(int format) {}
299 virtual void onCameraFacingChanged(int facing) {}
300 virtual void onViewSizeChanged(uid_t uid, view_t view, int width, int height) {}
301 virtual void OnSetRexferParams(bool fec_rexfer, float rexfer_alpha, int max_rexfer_times) {}
302 virtual void OnRexferStatusUpdated(bool status, int32_t target_bitrate) {}
303 virtual void OnNotifyDepartedFrame(uid_t uid, int picture_id) {}
304 virtual void onCameraInfoListChanged(CameraInfoList cameraInfoList) {}
306 virtual void OnEncoderStatusUpdate(webrtc::VideoCodecType codec_type,
307 webrtc::HW_ENCODER_ACCELERATING_STATUS hw_accelerate_status) {};
308 virtual void OnVideoStatusUpdated(bool is_fallback, webrtc::MediaStreamId stream_id, int reason) {}
312 virtual void onVideoSizeChanged(int id, uid_t uid, int width, int height, int rotation) {}
313 virtual void onYuvConvertStats(const YuvConvertStats& stats) {}
314 virtual void onWatermarkStats(int32_t image_count, int32_t buffer_count, int32_t literal_count, int32_t timestamp_count) {}
315
316 virtual void onLocalAddVideoFilter(int track_id, std::string filter_name, bool enabled){}
317 virtual void onLocalFilterStatusChanged(int track_id, std::string filter_name, bool enabled){}
318 virtual void onRemoteAddVideoFilter(std::string cid, uid_t uid, uint32_t ssrc, std::string filter_name, bool enabled){}
319 virtual void onRemoteFilterStatusChanged(std::string cid, uid_t uid, uint32_t ssrc, std::string filter_name, bool enabled, bool isDisableMe = false){}
320 virtual void onVideoContentChanged(uid_t uid, agora::VideoContentType newType,
321 agora::VideoContentSubType newSubtype) {}
322 virtual void OnRequestKeyFrame(uid_t uid, VIDEO_STREAM_TYPE type) {}
323 virtual void OnVideoCodingModuleInfosUpdated(webrtc::VideoCodingModuleInfos videoCodingInfos) {}
324 virtual void OnVideoEncodeStrategyUpdated(agora::rtc::VideoEncodeStrategyInfo strategy) {}
325 virtual void OnFirstDecodableFrameReceived(uint8_t stream_id) {}
326 virtual void OnBcmDecodeFeedback(uid_t uid, std::string&& fb) {}
327 virtual void OnBcmNetworkStatsFeeback(uid_t uid, std::string&& fb) {}
328};
329
338
340 public VideoLocalTrackControlAspect {
341 public:
343
344 // keep the same as webrtc::RsfecConfig
345 struct RsfecConfig {
346 std::vector<int> fec_protection_factor;
347 std::vector<std::vector<int>> fec_ratioLevel;
348 std::vector<int> fec_rttThreshold;
350 };
351
353 int32_t mode = 0;
354 int32_t scene = 0;
355 int32_t policy = 0;
356 std::string type = "";
357 };
358
359 struct AttachInfo {
360 uint32_t uid;
361 uint32_t cid;
362 VideoNodeRtpSink* network;
364 uint64_t stats_space;
367 webrtc::RsfecConfig rsfec_config;
368
369 // hardware encoder related
370 std::string enable_hw_encoder;
371
372 // video config
373 VideoNodeEncoderEx::OPSParametersCollection ops_parameters;
374 std::shared_ptr<webrtc::IAutoAdjustHarq> auto_adjust_harq;
381
383 std::string switch_to_rq;
385
390
391 // enable video diagnose
393 // video codec and codec feature_caps
394 VideoNegotiatedCodecCaps negotiated_video_codec_caps;
395
398
402 std::unordered_map<uint8_t, std::string> fec_capabilities;
404 int fec_mode = 0;
406 };
407
408 struct DetachInfo {
409 VideoNodeRtpSink* network;
411 };
412
413 ILocalVideoTrackEx() : id_(id_generator_++) {}
415
416 virtual bool hasPublished() = 0;
417
418 virtual int setVideoEncoderConfigurationEx(const VideoEncoderConfiguration& config, utils::ConfigPriority priority = utils::CONFIG_PRIORITY_USER) = 0;
419
420 virtual int setSimulcastStreamModeEx(SIMULCAST_STREAM_MODE mode, const SimulcastConfigInternal& config, utils::ConfigPriority priority = utils::CONFIG_PRIORITY_USER) = 0;
421
422 virtual int SetVideoConfigEx(int index, const VideoConfigurationEx& configEx, utils::ConfigPriority priority = utils::CONFIG_PRIORITY_USER) = 0;
423
424 virtual int ResetVideoConfigEx(utils::ConfigPriority priority) = 0;
425
426 virtual int GetConfigExs(std::unordered_map<int, VideoConfigurationEx>& configs, bool include_disable_config = false) = 0;
427
428 virtual int GetVideoProfileAutoAdjust(std::string& config_video_profile, std::string& actual_video_profile) = 0;
429
430 virtual int GetCaptureMode(CaptureModeItem& captureModeOut) = 0;
431
432 virtual void RequestKeyFrame(VIDEO_STREAM_TYPE type, bool is_quick_intra_request, bool internal) {}
433
435
436 virtual void GetVideoAvailabilityIndicatorEvents(std::vector<VideoAvailabilityIndicator>& events) {}
437
438 virtual int setUserId(uid_t uid) { user_id_ = uid; return 0; }
439
440 virtual uid_t getUserId() { return user_id_; }
441
442 virtual int GetActiveStreamsCount() = 0;
443
444 virtual int prepareNodes(const char* id = nullptr) = 0;
445
446 virtual bool attach(const AttachInfo& info) = 0;
447 virtual bool detach(const DetachInfo& info) = 0;
448 virtual bool registerTrackObserver(std::shared_ptr<IVideoTrackObserver> observer) {
449 return false;
450 }
452 return false;
453 }
454
455 virtual bool getStatisticsEx(LocalVideoTrackStatsEx& statsEx) { return false; }
456 virtual bool getVideoFrameSourceFilterStats(agora::rtc::VideoFrameSourceFilter::Stats& stats) { return false; }
457 virtual int32_t Width() const = 0;
458 virtual int32_t Height() const = 0;
459 virtual void getBillingVideoProfile(int32_t& w, int32_t& h, int32_t& frame_rate) {};
460 virtual bool Enabled() const = 0;
461
462 virtual int updateVideoWatermarks(const WatermarkConfig* configs, uint32_t count) { return -ERR_NOT_SUPPORTED; }
463
465
467
468 virtual bool getVideoTextureCopyStatus(VideoTextureCopyParam& param) { return false; }
469
470 virtual void getSimucastStreamConfig(SimulcastConfigInternal& simu_stream_config) {}
471 virtual void getSimucastStreamStatus(SIMULCAST_STREAM_MODE& mode, bool& enable) {}
472 virtual void getBillingVideoProfileWithSimulcast(bool& enable, SimulcastConfigInternal& simu_config) {}
473
474 virtual int updateContentHint(VIDEO_CONTENT_HINT contentHint) { return -ERR_NOT_SUPPORTED; }
475
477
478 int TrackId() const { return id_; }
479
481
483
484 virtual int setLocalVideoSend(bool send) = 0;
485
486 virtual bool ClearVideoConfigsOnLeaveChannel() { return false; }
487
488 virtual int getCodecType() = 0;
489
490 virtual int getVideoFrameBitDepth() = 0;
491
492 virtual void setVideoDumpMode(int mode, bool enabled, int frame_cnt = -1) {}
493
494 virtual bool NegotiateCodec(VideoNegotiatedCodecCaps negotiated_video_decode_caps) { return false; }
495
496 virtual void onVideoModuleStatus(std::string node_name, int type) {}
497
498 virtual int onRequestEnableSimulcastStream() { return 0; }
499
500 virtual bool getIsAttachedToNetwork() { return false; }
501
502 virtual bool isVideoFilterEnabled(const char* id) { return false; }
503
504 virtual void ConfigVideoFec(const VideoFecConfig& fec_cap) {}
505
506 virtual void ReconfigureCaptureDelayMs(int video_capture_delay_ms) {}
507
508 virtual bool enableMinorStreamPeriodicKeyFrame() { return false; }
509
510 virtual void registerProactiveCaller(const std::shared_ptr<rtc::ProactiveCaller>& configurator) { return; }
511 virtual void unregisterProactiveCaller() { return; }
512
513 virtual void registerModuleControlPanel(std::shared_ptr<rtc::IModuleControlPanel> panel) { return; }
514 virtual void unregisterModuleControlPanel() { return; }
515
516 virtual void registerAAManager(std::shared_ptr<rtc::VideoAAManagerInterface> strategy_qoe_decision) { return; }
517 virtual void unregisterAAManager(std::shared_ptr<rtc::VideoAAManagerInterface> strategy_qoe_decision) { return; }
518
519 virtual void registerVideoTrackStatsMetrics(const std::shared_ptr<IVideoStatsMetrics>& metrics) { return; }
520 virtual void unregisterVideoTrackStatsMetrics(const std::shared_ptr<IVideoStatsMetrics>& metrics) { return; }
521 virtual bool NegotiateHDRSource(bool hdr_capture) { return false; }
522
523 virtual int setEnabledLLApiInternal(bool enable, bool action_droppable = true) = 0;
528 const char* id = NULL) = 0;
530 const char* id = NULL) = 0;
531 virtual bool hasVideoFilterLLApiInternal(const char* id, media::base::VIDEO_MODULE_POSITION position) = 0;
532 virtual int setLocalRenderTargetFps(int target_fps) = 0;
536 virtual int enableVideoFilterLLApiInternal(const char* id, bool enable) {return -1;}
537 virtual void enableSourceFilterLLApiInternal(const char* id, bool enable) { return; }
538 virtual int setFilterPropertyLLApiInternal(const char* id, const char* key, const char* json_value) { return -1; };
539 virtual int getFilterPropertyLLApiInternal(const char* id, const char* key, char* json_value, size_t buf_size) { return -1; };
540 virtual void SetVideoCodecCaps(VideoNegotiatedCodecCaps negotiated_video_codec_caps) {};
541 virtual void SetSvcAutoAdjusterEnabled(bool enabled) {}
542 virtual void UpdateRemoteDlBweFeedback(int bwe) = 0;
543 virtual void UpdateChannelBandwidthAndSubscription(AggregatedRemoteDlBweQuantile bwe_quantile,
544 std::map<VideoStreamIndex, int>&& be_subscribed_streams) = 0;
545 virtual void UpdateAdaptiveScenarioTypeAndChannelSize(AdaptiveScenarioType scenario_type, int channel_size, bool sync_ability) = 0;
546 virtual void SetQoeMetricsWeight(VideoStreamIndex video_stream_index, QoeMetricsWeight qoe_metrics_weight) { return; };
547 virtual void OnVideoFecStatsChanged(const StreamsFecStatsMap& aut_fec_map) = 0;
548
549 protected:
550 const int id_;
551 utils::WeakObserversFacility<IVideoTrackObserver> track_observers_;
553
554 private:
555 static std::atomic<int> id_generator_;
556};
557
561 bool isHardwareCodec = false;
562 int64_t totalFrozen200ms = 0;
563 uint32_t last_frame_max = 0;
564 uint32_t dec_in_num = 0;
565 uint32_t render_in_num = 0;
566 uint32_t render_out_num = 0;
567 uint32_t fec_pkts_num = 0;
568 uint32_t loss_af_fec = 0;
570 int decode_level[10] = {0};
571 uint64_t qp_sum = 0;
572 VideoContentType content_type = VideoContentType::UNSPECIFIED;
573 std::vector<VideoAvailabilityIndicator> video_availability;
574};
575
577 public VideoRemoteTrackControlAspect {
578 public:
581
582 struct AttachInfo {
583 VideoNodeRtpSource* source;
584 VideoNodeRtpSink* rtcp_sender;
586 bool recv_media_packet = false;
587 uint64_t stats_space = 0;
588 bool enable_vpr = false;
589 agora::rtc::VPR_POSITION vpr_position = agora::rtc::VPR_POSITION::POSITION_PRE_RENDER;
590 std::shared_ptr<webrtc::IRsfecCodecFactoryInterface> rsfec_codec_factory;
593 };
594
595 struct DetachInfo {
596 VideoNodeRtpSource* source;
597 VideoNodeRtpSink* rtcp_sender;
599 };
600
602
604
605 virtual uint32_t getRemoteSsrc() = 0;
606
607 virtual bool attach(const AttachInfo& info, REMOTE_VIDEO_STATE_REASON reason) = 0;
608 virtual bool detach(const DetachInfo& info, REMOTE_VIDEO_STATE_REASON reason) = 0;
609
610 virtual bool getStatisticsEx(RemoteVideoTrackStatsEx& statsex) { return false; }
611
612 virtual bool registerTrackObserver(std::shared_ptr<IVideoTrackObserver> observer) {
613 return false;
614 }
616 return false;
617 }
618 virtual void registerProactiveCaller(const std::shared_ptr<ProactiveCaller>&) {}
620 virtual void registerVideoTrackStatsMetrics(const std::shared_ptr<IVideoStatsMetrics>& metrics) { return; }
621 virtual void unregisterVideoTrackStatsMetrics(const std::shared_ptr<IVideoStatsMetrics>& metrics) { return; }
622
625 const char* id = NULL) = 0;
627 const char* id = NULL) = 0;
628 virtual bool hasVideoFilterLLApiInternal(const char* id, media::base::VIDEO_MODULE_POSITION position) = 0;
635 virtual int enableVideoFilterLLApiInternal(const char* id, bool enable){ return -1; };
636 virtual int setFilterPropertyLLApiInternal(const char* id, const char* key, const char* json_value){ return -1; };
639 virtual void OnRoleUpdate(CLIENT_ROLE_TYPE role) {};
640
641 protected:
642 utils::WeakObserversFacility<IVideoTrackObserver> track_observers_;
643};
644
645} // namespace rtc
646} // namespace agora
Definition AgoraOptional.h:413
Definition AgoraRefPtr.h:44
Definition AgoraMediaBase.h:1642
virtual int registerVideoEncodedFrameObserverLLApiInternal(media::IVideoEncodedFrameObserver *videoReceiver)=0
virtual int setSimulcastStreamModeEx(SIMULCAST_STREAM_MODE mode, const SimulcastConfigInternal &config, utils::ConfigPriority priority=utils::CONFIG_PRIORITY_USER)=0
virtual void OnVideoFecStatsChanged(const StreamsFecStatsMap &aut_fec_map)=0
virtual void UpdateRemoteDlBweFeedback(int bwe)=0
virtual void registerModuleControlPanel(std::shared_ptr< rtc::IModuleControlPanel > panel)
Definition video_track_i.h:513
virtual int32_t Height() const =0
virtual bool removeRendererLLApiInternal(agora_refptr< IVideoSinkBase > videoRenderer, media::base::VIDEO_MODULE_POSITION position)=0
virtual void SetQoeMetricsWeight(VideoStreamIndex video_stream_index, QoeMetricsWeight qoe_metrics_weight)
Definition video_track_i.h:546
virtual ~ILocalVideoTrackEx()
Definition video_track_i.h:414
virtual void UpdateAdaptiveScenarioTypeAndChannelSize(AdaptiveScenarioType scenario_type, int channel_size, bool sync_ability)=0
virtual void registerProactiveCaller(const std::shared_ptr< rtc::ProactiveCaller > &configurator)
Definition video_track_i.h:510
virtual bool Enabled() const =0
virtual uid_t getUserId()
Definition video_track_i.h:440
virtual void SetSvcAutoAdjusterEnabled(bool enabled)
Definition video_track_i.h:541
virtual void registerAAManager(std::shared_ptr< rtc::VideoAAManagerInterface > strategy_qoe_decision)
Definition video_track_i.h:516
virtual LOCAL_VIDEO_STREAM_STATE getStateLLApiInternal()=0
virtual int updateScreenCaptureScenario(SCREEN_SCENARIO_TYPE screenScenario)
Definition video_track_i.h:476
virtual void onVideoModuleStatus(std::string node_name, int type)
Definition video_track_i.h:496
virtual bool NegotiateHDRSource(bool hdr_capture)
Definition video_track_i.h:521
virtual int updateContentHint(VIDEO_CONTENT_HINT contentHint)
Definition video_track_i.h:474
virtual int SetVideoConfigEx(int index, const VideoConfigurationEx &configEx, utils::ConfigPriority priority=utils::CONFIG_PRIORITY_USER)=0
virtual void registerVideoTrackStatsMetrics(const std::shared_ptr< IVideoStatsMetrics > &metrics)
Definition video_track_i.h:519
virtual int unregisterVideoEncodedFrameObserverLLApiInternal(media::IVideoEncodedFrameObserver *videoReceiver)=0
int TrackId() const
Definition video_track_i.h:478
virtual void getSimucastStreamStatus(SIMULCAST_STREAM_MODE &mode, bool &enable)
Definition video_track_i.h:471
virtual int onRequestEnableSimulcastStream()
Definition video_track_i.h:498
virtual int ResetVideoConfigEx(utils::ConfigPriority priority)=0
virtual void getSimucastStreamConfig(SimulcastConfigInternal &simu_stream_config)
Definition video_track_i.h:470
virtual bool getVideoFrameSourceFilterStats(agora::rtc::VideoFrameSourceFilter::Stats &stats)
Definition video_track_i.h:456
virtual bool unregisterTrackObserver(IVideoTrackObserver *observer)
Definition video_track_i.h:451
virtual int GetVideoProfileAutoAdjust(std::string &config_video_profile, std::string &actual_video_profile)=0
virtual int setLocalRenderTargetFps(int target_fps)=0
virtual bool isVideoFilterEnabled(const char *id)
Definition video_track_i.h:502
virtual int setFilterPropertyLLApiInternal(const char *id, const char *key, const char *json_value)
Definition video_track_i.h:538
virtual bool getStatisticsEx(LocalVideoTrackStatsEx &statsEx)
Definition video_track_i.h:455
virtual int GetConfigExs(std::unordered_map< int, VideoConfigurationEx > &configs, bool include_disable_config=false)=0
virtual int GetActiveStreamsCount()=0
virtual int enableVideoFilterLLApiInternal(const char *id, bool enable)
Definition video_track_i.h:536
virtual bool NegotiateCodec(VideoNegotiatedCodecCaps negotiated_video_decode_caps)
Definition video_track_i.h:494
virtual bool addVideoFilterLLApiInternal(agora_refptr< IVideoFilter > filter, media::base::VIDEO_MODULE_POSITION position=media::base::POSITION_POST_CAPTURER, const char *id=NULL)=0
virtual void enableSourceFilterLLApiInternal(const char *id, bool enable)
Definition video_track_i.h:537
uid_t user_id_
Definition video_track_i.h:552
virtual void ReconfigureCaptureDelayMs(int video_capture_delay_ms)
Definition video_track_i.h:506
utils::WeakObserversFacility< IVideoTrackObserver > track_observers_
Definition video_track_i.h:551
ILocalVideoTrackEx()
Definition video_track_i.h:413
virtual bool getIsAttachedToNetwork()
Definition video_track_i.h:500
virtual void UpdateChannelBandwidthAndSubscription(AggregatedRemoteDlBweQuantile bwe_quantile, std::map< VideoStreamIndex, int > &&be_subscribed_streams)=0
virtual int setVideoEncoderConfigurationLLApiInternal(const rtc::VideoEncoderConfiguration &config)=0
virtual bool detach(const DetachInfo &info)=0
virtual int prepareNodes(const char *id=nullptr)=0
virtual void getBillingVideoProfile(int32_t &w, int32_t &h, int32_t &frame_rate)
Definition video_track_i.h:459
virtual bool getVideoTextureCopyStatus(VideoTextureCopyParam &param)
Definition video_track_i.h:468
virtual void SetVideoCodecCaps(VideoNegotiatedCodecCaps negotiated_video_codec_caps)
Definition video_track_i.h:540
virtual void RequestKeyFrame(VIDEO_STREAM_TYPE type, bool is_quick_intra_request, bool internal)
Definition video_track_i.h:432
virtual bool addRendererLLApiInternal(agora_refptr< IVideoSinkBase > videoRenderer, media::base::VIDEO_MODULE_POSITION position)=0
virtual int setUserId(uid_t uid)
Definition video_track_i.h:438
virtual int getVideoFrameBitDepth()=0
virtual void ConfigVideoFec(const VideoFecConfig &fec_cap)
Definition video_track_i.h:504
virtual bool registerTrackObserver(std::shared_ptr< IVideoTrackObserver > observer)
Definition video_track_i.h:448
virtual void setVideoDumpMode(int mode, bool enabled, int frame_cnt=-1)
Definition video_track_i.h:492
virtual int setSimulcastStreamModeLLApiInternal(SIMULCAST_STREAM_MODE mode, const SimulcastConfigInternal &simu_config)=0
virtual void unregisterModuleControlPanel()
Definition video_track_i.h:514
virtual bool enableMinorStreamPeriodicKeyFrame()
Definition video_track_i.h:508
virtual void GetVideoAvailabilityIndicatorEvents(std::vector< VideoAvailabilityIndicator > &events)
Definition video_track_i.h:436
virtual bool ClearVideoConfigsOnLeaveChannel()
Definition video_track_i.h:486
virtual void unregisterAAManager(std::shared_ptr< rtc::VideoAAManagerInterface > strategy_qoe_decision)
Definition video_track_i.h:517
virtual int setLocalVideoSend(bool send)=0
virtual rtc::VideoEncoderConfiguration getVideoEncoderConfiguration()
Definition video_track_i.h:466
virtual int setVideoEncoderConfigurationEx(const VideoEncoderConfiguration &config, utils::ConfigPriority priority=utils::CONFIG_PRIORITY_USER)=0
virtual void getBillingVideoProfileWithSimulcast(bool &enable, SimulcastConfigInternal &simu_config)
Definition video_track_i.h:472
virtual bool getStatisticsLLApiInternal(LocalVideoTrackStats &stats)=0
virtual bool removeVideoFilterLLApiInternal(agora_refptr< IVideoFilter > filter, media::base::VIDEO_MODULE_POSITION position=media::base::POSITION_POST_CAPTURER, const char *id=NULL)=0
virtual void unregisterProactiveCaller()
Definition video_track_i.h:511
const int id_
Definition video_track_i.h:550
virtual void unregisterVideoTrackStatsMetrics(const std::shared_ptr< IVideoStatsMetrics > &metrics)
Definition video_track_i.h:520
virtual int setEnabledLLApiInternal(bool enable, bool action_droppable=true)=0
virtual bool hasVideoFilterLLApiInternal(const char *id, media::base::VIDEO_MODULE_POSITION position)=0
virtual int updateVideoWatermarks(const WatermarkConfig *configs, uint32_t count)
Definition video_track_i.h:462
virtual int GetCaptureMode(CaptureModeItem &captureModeOut)=0
virtual InternalVideoSourceType getInternalVideoSourceType()
Definition video_track_i.h:464
DetachReason
Definition video_track_i.h:342
@ TRACK_DESTROY
Definition video_track_i.h:342
@ CODEC_CHANGE
Definition video_track_i.h:342
@ NETWORK_DESTROY
Definition video_track_i.h:342
@ MANUAL
Definition video_track_i.h:342
virtual void AddVideoAvailabilityIndicatorEvents(VideoAvailabilityIndicator event)
Definition video_track_i.h:434
virtual int32_t Width() const =0
virtual bool attach(const AttachInfo &info)=0
virtual int getFilterPropertyLLApiInternal(const char *id, const char *key, char *json_value, size_t buf_size)
Definition video_track_i.h:539
Definition NGIAgoraVideoTrack.h:394
Definition NGIAgoraMediaNode.h:318
virtual void registerVideoTrackStatsMetrics(const std::shared_ptr< IVideoStatsMetrics > &metrics)
Definition video_track_i.h:620
virtual uint32_t getRemoteSsrc()=0
virtual bool registerTrackObserver(std::shared_ptr< IVideoTrackObserver > observer)
Definition video_track_i.h:612
StateEvents< REMOTE_VIDEO_STATE, REMOTE_VIDEO_STATE_REASON > RemoteVideoEvents
Definition video_track_i.h:580
virtual void unregisterProactiveCaller()
Definition video_track_i.h:619
virtual int setFilterPropertyLLApiInternal(const char *id, const char *key, const char *json_value)
Definition video_track_i.h:636
virtual bool getStatisticsEx(RemoteVideoTrackStatsEx &statsex)
Definition video_track_i.h:610
virtual ~IRemoteVideoTrackEx()
Definition video_track_i.h:603
virtual int registerMediaPacketReceiverLLApiInternal(IMediaPacketReceiver *packetReceiver)=0
virtual bool removeVideoFilterLLApiInternal(agora_refptr< IVideoFilter > filter, media::base::VIDEO_MODULE_POSITION position=media::base::POSITION_POST_CAPTURER, const char *id=NULL)=0
virtual bool getStatisticsLLApiInternal(RemoteVideoTrackStats &stats)=0
virtual bool attach(const AttachInfo &info, REMOTE_VIDEO_STATE_REASON reason)=0
DetachReason
Definition video_track_i.h:579
@ MANUAL
Definition video_track_i.h:579
@ TRACK_DESTROY
Definition video_track_i.h:579
@ NETWORK_DESTROY
Definition video_track_i.h:579
virtual void OnRoleUpdate(CLIENT_ROLE_TYPE role)
Definition video_track_i.h:639
virtual int unregisterVideoEncodedFrameObserverLLApiInternal(agora::media::IVideoEncodedFrameObserver *encodedObserver)=0
virtual bool addRendererLLApiInternal(agora_refptr< IVideoSinkBase > videoRenderer, media::base::VIDEO_MODULE_POSITION position=media::base::POSITION_PRE_RENDERER)=0
virtual bool unregisterTrackObserver(IVideoTrackObserver *observer)
Definition video_track_i.h:615
virtual bool getTrackInfoLLApiInternal(VideoTrackInfo &info)=0
virtual bool hasVideoFilterLLApiInternal(const char *id, media::base::VIDEO_MODULE_POSITION position)=0
virtual void registerProactiveCaller(const std::shared_ptr< ProactiveCaller > &)
Definition video_track_i.h:618
virtual bool addVideoFilterLLApiInternal(agora_refptr< IVideoFilter > filter, media::base::VIDEO_MODULE_POSITION position=media::base::POSITION_POST_CAPTURER, const char *id=NULL)=0
virtual void unregisterVideoTrackStatsMetrics(const std::shared_ptr< IVideoStatsMetrics > &metrics)
Definition video_track_i.h:621
virtual int registerVideoEncodedFrameObserverLLApiInternal(agora::media::IVideoEncodedFrameObserver *encodedObserver)=0
virtual bool removeRendererLLApiInternal(agora_refptr< IVideoSinkBase > videoRenderer, media::base::VIDEO_MODULE_POSITION position)=0
utils::WeakObserversFacility< IVideoTrackObserver > track_observers_
Definition video_track_i.h:642
virtual REMOTE_VIDEO_STATE getStateLLApiInternal()=0
virtual int enableVideoFilterLLApiInternal(const char *id, bool enable)
Definition video_track_i.h:635
virtual bool detach(const DetachInfo &info, REMOTE_VIDEO_STATE_REASON reason)=0
virtual int unregisterMediaPacketReceiverLLApiInternal(IMediaPacketReceiver *packetReceiver)=0
Definition NGIAgoraVideoTrack.h:574
Definition video_track_i.h:265
virtual void onSvcaaEnabledStateUpdated(uint16_t enabled_state)
Definition video_track_i.h:296
virtual void OnVideoEncodeStrategyUpdated(agora::rtc::VideoEncodeStrategyInfo strategy)
Definition video_track_i.h:324
virtual void onFirstVideoFrameDecoded(std::string cid, uid_t uid, uint32_t ssrc, int width, int height, int timestamp_ms)
Definition video_track_i.h:280
virtual void onRemoteVideoStateChanged(uid_t uid, REMOTE_VIDEO_STATE state, REMOTE_VIDEO_STATE_REASON reason, int timestamp_ms)
Definition video_track_i.h:273
virtual void onSvcLayerUpdated(SvcAABandwidthReportInfo info, int supported_max_layers, AdaptiveScenarioType scenario_type, int channel_size, const std::map< VideoStreamIndex, 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:291
virtual void onEncoderConfigurationChanged(const std::unordered_map< int, VideoConfigurationEx > &config)
Definition video_track_i.h:290
virtual void OnRexferStatusUpdated(bool status, int32_t target_bitrate)
Definition video_track_i.h:302
virtual void OnNotifyDepartedFrame(uid_t uid, int picture_id)
Definition video_track_i.h:303
virtual void onViewSizeChanged(uid_t uid, view_t view, int width, int height)
Definition video_track_i.h:300
virtual void onVideoHWCodecSpecEvent(agora::rtc::VideoHWCodecSpec codecSpec)
Definition video_track_i.h:311
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:319
virtual void onEncoderStrategySupportedSvcLayersUpdated(int max_layers)
Definition video_track_i.h:297
virtual void onFirstVideoKeyFrameReceived(uid_t uid, uint64_t timestamp, const webrtc::FirstVideoFrameStreamInfo &streamInfo)
Definition video_track_i.h:282
virtual void OnBcmNetworkStatsFeeback(uid_t uid, std::string &&fb)
Definition video_track_i.h:327
virtual void OnVideoStatusUpdated(bool is_fallback, webrtc::MediaStreamId stream_id, int reason)
Definition video_track_i.h:308
virtual void onRecvSideFps(uid_t uid, int fps)
Definition video_track_i.h:289
virtual void OnEncoderStatusUpdate(webrtc::VideoCodecType codec_type, webrtc::HW_ENCODER_ACCELERATING_STATUS hw_accelerate_status)
Definition video_track_i.h:306
virtual void OnVideoCodingModuleInfosUpdated(webrtc::VideoCodingModuleInfos videoCodingInfos)
Definition video_track_i.h:323
virtual void onSendSideDelay(int id, int send_delay)
Definition video_track_i.h:287
virtual void OnBcmDecodeFeedback(uid_t uid, std::string &&fb)
Definition video_track_i.h:326
virtual void onRecvSideDelay(uid_t uid, int recv_delay)
Definition video_track_i.h:288
virtual void onRemoteAddVideoFilter(std::string cid, uid_t uid, uint32_t ssrc, std::string filter_name, bool enabled)
Definition video_track_i.h:318
virtual void OnSetRexferParams(bool fec_rexfer, float rexfer_alpha, int max_rexfer_times)
Definition video_track_i.h:301
virtual ~IVideoTrackObserver()=default
virtual void onLocalVideoStateChanged(int id, LOCAL_VIDEO_STREAM_STATE state, LOCAL_VIDEO_STREAM_REASON reason, int timestamp_ms)
Definition video_track_i.h:268
virtual void onCameraInfoListChanged(CameraInfoList cameraInfoList)
Definition video_track_i.h:304
virtual void onCameraCharacteristicProfileChanged(agora::rtc::CameraCharacteristicProfile profile)
Definition video_track_i.h:305
virtual void onCameraFacingChanged(int facing)
Definition video_track_i.h:299
virtual void OnRequestKeyFrame(uid_t uid, VIDEO_STREAM_TYPE type)
Definition video_track_i.h:322
virtual void onVideoPipelineDataFormatChanged(int format)
Definition video_track_i.h:298
virtual void onFirstVideoFrameRendered(int id, uid_t uid, int width, int height, int timestamp_ms)
Definition video_track_i.h:278
virtual void onVideoAvailabilityIndicatorEvent(VideoAvailabilityIndicator indicator)
Definition video_track_i.h:309
virtual void onLocalFilterStatusChanged(int track_id, std::string filter_name, bool enabled)
Definition video_track_i.h:317
virtual void onLocalAddVideoFilter(int track_id, std::string filter_name, bool enabled)
Definition video_track_i.h:316
virtual void OnFirstDecodableFrameReceived(uint8_t stream_id)
Definition video_track_i.h:325
virtual void onVideoSizeChanged(int id, uid_t uid, int width, int height, int rotation)
Definition video_track_i.h:312
virtual void onVideoContentChanged(uid_t uid, agora::VideoContentType newType, agora::VideoContentSubType newSubtype)
Definition video_track_i.h:320
virtual void onVideoRendererInfoEvent(VideoRendererInfo info)
Definition video_track_i.h:310
virtual void onWatermarkStats(int32_t image_count, int32_t buffer_count, int32_t literal_count, int32_t timestamp_count)
Definition video_track_i.h:314
virtual void onYuvConvertStats(const YuvConvertStats &stats)
Definition video_track_i.h:313
virtual void onSourceVideoSizeChanged(uid_t uid, int width, int height, int rotation, int timestamp_ms)
Definition video_track_i.h:284
Definition AgoraOptional.h:54
VIDEO_MODULE_POSITION
Definition AgoraMediaBase.h:1142
@ POSITION_PRE_RENDERER
Definition AgoraMediaBase.h:1144
@ POSITION_POST_CAPTURER
Definition AgoraMediaBase.h:1143
VIDEO_PIXEL_FORMAT
Definition AgoraMediaBase.h:464
Definition AgoraExtensions.h:5
CongestionControlType
Definition rtc_connection_i.h:85
SIMULCAST_STREAM_MODE
Definition AgoraBase.h:2157
VideoDumpMode
Definition video_track_i.h:125
@ VIDEO_DUMP_DECODED_YUV
Definition video_track_i.h:132
@ VIDEO_DUMP_ENCODED_STREAM
Definition video_track_i.h:130
@ VIDEO_DUMP_ALL
Definition video_track_i.h:127
@ VIDEO_DUMP_FILTERED_YUV
Definition video_track_i.h:129
@ VIDEO_DUMP_PRE_ENCODER_YUV
Definition video_track_i.h:134
@ VIDEO_DUMP_DEFAULT
Definition video_track_i.h:126
@ VIDEO_DUMP_RENDERED_YUV
Definition video_track_i.h:133
@ VIDEO_DUMP_RECEIVED_STREAM
Definition video_track_i.h:131
@ VIDEO_DUMP_CAPTURED_YUV
Definition video_track_i.h:128
VideoModuleId
Definition video_track_i.h:73
@ VideoModulePostprocess
Definition video_track_i.h:79
@ VideoModuleQoE
Definition video_track_i.h:82
@ VideoModuleEncode
Definition video_track_i.h:76
@ VideoModuleNetwork
Definition video_track_i.h:77
@ VideoModuleExtension
Definition video_track_i.h:83
@ VideoModulePipeline
Definition video_track_i.h:81
@ VideoModuleDecode
Definition video_track_i.h:78
@ VideoModuleRender
Definition video_track_i.h:80
@ VideoModulePreprocess
Definition video_track_i.h:75
@ VideoModuleCapture
Definition video_track_i.h:74
VIDEO_CONTENT_HINT
Definition AgoraBase.h:3130
CLIENT_ROLE_TYPE
Definition AgoraBase.h:2879
std::map< uint8_t, std::pair< uint16_t, uint32_t > > StreamsFecStatsMap
Definition local_user_i.h:34
std::weak_ptr< webrtc::Call > WeakPipelineBuilder
Definition common_defines.h:26
VIDEO_STREAM_TYPE
Definition AgoraBase.h:1613
std::vector< StateEvent< STATE_TYPE, REASON_TYPE > > StateEvents
Definition track_stat_i.h:21
VideoQoeEvent
Definition video_track_i.h:97
@ kVideoGlitchDetection
Definition video_track_i.h:104
@ kVideoQoe200msFreezeDrop
Definition video_track_i.h:100
@ kVideoQoe600msFreezeDrop
Definition video_track_i.h:99
@ kVideoQoeCriticalDrop
Definition video_track_i.h:98
@ kVideoTimestampException
Definition video_track_i.h:102
@ kVideoExtensionStatusDetection
Definition video_track_i.h:105
@ kVideoQoeFpsSubstandard
Definition video_track_i.h:101
@ kVideoQoePipelineException
Definition video_track_i.h:103
VideoProcessEvent
Definition video_track_i.h:109
@ kVideoProcessEventPreprocessEnqueueFailure
Definition video_track_i.h:113
@ kVideoProcessEventPreprocessFrameFailure
Definition video_track_i.h:114
@ kVideoProcessEventPreprocessCongested
Definition video_track_i.h:116
@ kVideoProcessEventNone
Definition video_track_i.h:110
@ kVideoProcessEventPreprocessNoIncomingFrame
Definition video_track_i.h:115
LOCAL_VIDEO_STREAM_STATE
Definition AgoraBase.h:3337
REMOTE_VIDEO_STATE
Definition AgoraBase.h:3580
SCREEN_SCENARIO_TYPE
Definition AgoraBase.h:3152
LOCAL_VIDEO_STREAM_REASON
Definition AgoraBase.h:3360
std::vector< CameraInfo > CameraInfoList
Definition video_node_i.h:425
InternalVideoSourceType
Definition video_track_i.h:61
@ MixedSource
Definition video_track_i.h:69
@ Screen
Definition video_track_i.h:65
@ CustomPacketSource
Definition video_track_i.h:68
@ CustomYuvSource
Definition video_track_i.h:66
@ CustomEncodedImageSource
Definition video_track_i.h:67
@ TranscodedSource
Definition video_track_i.h:70
@ None
Definition video_track_i.h:62
@ Custom
Definition video_track_i.h:64
@ Camera
Definition video_track_i.h:63
VideoAvailabilityLevel
Definition video_track_i.h:86
@ VideoAvailabilityLevel3
Definition video_track_i.h:89
@ VideoAvailabilityLevel2
Definition video_track_i.h:88
@ VideoAvailabilityLevel1
Definition video_track_i.h:87
unsigned int uid_t
Definition AgoraMediaBase.h:28
VideoPipelineEvent
Definition video_track_i.h:93
@ kVideoUplinkEventStaticFrames
Definition video_track_i.h:94
WATERMARK_SOURCE_TYPE
The source type of the watermark.
Definition AgoraBase.h:2385
@ BUFFER
Definition AgoraBase.h:2393
@ TIMESTAMPS
Definition AgoraBase.h:2405
@ IMAGE
Definition AgoraBase.h:2389
@ LITERAL
Definition AgoraBase.h:2399
VideoCodecAvailableEvent
Definition video_track_i.h:120
@ kVideoHwH264EncoderHighProfileAvailable
Definition video_track_i.h:122
@ kVideoHwH265EncoderAvailable
Definition video_track_i.h:121
REMOTE_VIDEO_STATE_REASON
Definition AgoraBase.h:3611
Definition AgoraAtomicOps.h:21
void * view_t
Definition AgoraBase.h:854
@ ERR_NOT_SUPPORTED
Definition AgoraBase.h:481
Definition common_defines.h:18
Definition video_node_i.h:387
Definition video_track_i.h:359
int fec_mode
Definition video_track_i.h:404
std::shared_ptr< webrtc::IAutoAdjustHarq > auto_adjust_harq
Definition video_track_i.h:374
int32_t fec_outside_bandwidth_ratio
Definition video_track_i.h:376
Optional< bool > response_quick_intra_request
Definition video_track_i.h:405
bool enable_minor_stream_vqc
Definition video_track_i.h:377
bool enable_minor_stream_fec_outside_ratio
Definition video_track_i.h:379
uint32_t sync_peer_uid
Definition video_track_i.h:397
std::string enable_hw_encoder
Definition video_track_i.h:370
VideoNegotiatedCodecCaps negotiated_video_codec_caps
Definition video_track_i.h:394
int hw_capture_delay
Definition video_track_i.h:396
VideoNodeRtpSink * network
Definition video_track_i.h:362
absl::optional< int > max_inflight_frame_count_pre_processsing
Definition video_track_i.h:389
std::string switch_to_rq
Definition video_track_i.h:383
std::unordered_map< uint8_t, std::string > fec_capabilities
Definition video_track_i.h:402
bool support_higher_standard_bitrate
Definition video_track_i.h:400
bool enable_two_bytes_extension
Definition video_track_i.h:366
Optional< SIMULCAST_STREAM_MODE > cfg_simulcast_stream_mode
Definition video_track_i.h:399
bool enable_minor_stream_intra_request
Definition video_track_i.h:380
webrtc::RsfecConfig rsfec_config
Definition video_track_i.h:367
bool enable_rq_classic_method
Definition video_track_i.h:384
uint32_t uid
Definition video_track_i.h:360
bool enable_quick_intra_high_fec
Definition video_track_i.h:388
uint64_t stats_space
Definition video_track_i.h:364
int fec_fix_rate
Definition video_track_i.h:386
bool enable_minor_stream_fec
Definition video_track_i.h:378
int fec_method
Definition video_track_i.h:382
bool enable_video_send_diagnose
Definition video_track_i.h:392
VideoQoEAnalyzerParameter qoe_analyzer_parameters
Definition video_track_i.h:401
VideoNodeEncoderEx::OPSParametersCollection ops_parameters
Definition video_track_i.h:373
WeakPipelineBuilder builder
Definition video_track_i.h:363
int harq_version
Definition video_track_i.h:375
CongestionControlType cc_type
Definition video_track_i.h:365
uint32_t cid
Definition video_track_i.h:361
int prefer_fec_method
Definition video_track_i.h:403
bool enable_check_for_disable_fec
Definition video_track_i.h:387
int32_t mode
Definition video_track_i.h:353
int32_t policy
Definition video_track_i.h:355
int32_t scene
Definition video_track_i.h:354
std::string type
Definition video_track_i.h:356
Definition video_track_i.h:408
DetachReason reason
Definition video_track_i.h:410
VideoNodeRtpSink * network
Definition video_track_i.h:409
Definition video_track_i.h:345
std::vector< std::vector< int > > fec_ratioLevel
Definition video_track_i.h:347
std::vector< int > fec_rttThreshold
Definition video_track_i.h:348
std::vector< int > fec_protection_factor
Definition video_track_i.h:346
bool pec_enabled
Definition video_track_i.h:349
Definition video_track_i.h:582
agora::rtc::VPR_POSITION vpr_position
Definition video_track_i.h:589
VideoNodeRtpSink * rtcp_sender
Definition video_track_i.h:584
WeakPipelineBuilder builder
Definition video_track_i.h:585
std::shared_ptr< webrtc::IRsfecCodecFactoryInterface > rsfec_codec_factory
Definition video_track_i.h:590
bool recv_media_packet
Definition video_track_i.h:586
VideoQoEAnalyzerParameter qoe_analyzer_parameters
Definition video_track_i.h:592
VideoNodeRtpSource * source
Definition video_track_i.h:583
uint64_t stats_space
Definition video_track_i.h:587
uint32_t video_threshhold_ms
Definition video_track_i.h:591
bool enable_vpr
Definition video_track_i.h:588
Definition video_track_i.h:595
DetachReason reason
Definition video_track_i.h:598
VideoNodeRtpSink * rtcp_sender
Definition video_track_i.h:597
VideoNodeRtpSource * source
Definition video_track_i.h:596
Definition video_track_i.h:330
int sent_loss_ratio
Definition video_track_i.h:332
uint32_t total_bwe_bps
Definition video_track_i.h:333
uint32_t media_send_bps
Definition video_track_i.h:335
uint32_t total_video_send_target_bps
Definition video_track_i.h:334
LocalVideoTrackStats local_video_stats
Definition video_track_i.h:331
uint32_t qp
Definition video_track_i.h:336
Definition NGIAgoraVideoTrack.h:246
Definition video_track_i.h:558
std::vector< VideoAvailabilityIndicator > video_availability
Definition video_track_i.h:573
uint32_t render_in_num
Definition video_track_i.h:565
int jitter_offset_ms
Definition video_track_i.h:569
VideoContentType content_type
Definition video_track_i.h:572
uint64_t firstVideoFrameRendered
Definition video_track_i.h:560
uint64_t qp_sum
Definition video_track_i.h:571
uint32_t loss_af_fec
Definition video_track_i.h:568
uint32_t render_out_num
Definition video_track_i.h:566
uint32_t dec_in_num
Definition video_track_i.h:564
bool isHardwareCodec
Definition video_track_i.h:561
int64_t totalFrozen200ms
Definition video_track_i.h:562
int decode_level[10]
Definition video_track_i.h:570
uint32_t last_frame_max
Definition video_track_i.h:563
uint64_t firstDecodingTimeTickMs
Definition video_track_i.h:559
uint32_t fec_pkts_num
Definition video_track_i.h:567
Definition NGIAgoraVideoTrack.h:461
RemoteVideoTrackStats()
Definition NGIAgoraVideoTrack.h:563
Definition NGIAgoraVideoTrack.h:66
Definition video_track_i.h:137
std::string extension_info
Definition video_track_i.h:146
int code
Definition video_track_i.h:140
std::vector< agora::rtc::VideoTimestampExceptionInfo > ts_exception_info
Definition video_track_i.h:144
std::vector< agora::rtc::QoEDropInfo > extra2
Definition video_track_i.h:143
std::vector< GlitchDetectionInfo > glitch_detection_infos
Definition video_track_i.h:145
VideoModuleId module
Definition video_track_i.h:139
uid_t uid
Definition video_track_i.h:141
int extra
Definition video_track_i.h:142
VideoAvailabilityLevel level
Definition video_track_i.h:138
Definition video_config_i.h:25
Definition AgoraBase.h:1960
Definition video_node_i.h:401
Definition video_track_i.h:161
int qoe_normal_report_max_times
Definition video_track_i.h:166
int qoe_timing_strategy_report_period
Definition video_track_i.h:168
bool enable_video_diagnose_logger
Definition video_track_i.h:163
int qoe_critical_report_max_times
Definition video_track_i.h:164
bool qoe_analyzer_enable
Definition video_track_i.h:162
int qoe_report_strategy
Definition video_track_i.h:167
int qoe_high_report_max_times
Definition video_track_i.h:165
Definition video_track_i.h:149
int isTexture
Definition video_track_i.h:153
int isSupportHDR
Definition video_track_i.h:152
int streamDepth
Definition video_track_i.h:151
int colorMatrix
Definition video_track_i.h:157
int colorTransfer
Definition video_track_i.h:156
int colorPrimary
Definition video_track_i.h:155
int renderType
Definition video_track_i.h:154
int colorRange
Definition video_track_i.h:158
int peer
Definition video_track_i.h:150
Definition AgoraBase.h:3694
media::base::VIDEO_PIXEL_FORMAT format
Definition AgoraBase.h:2498
int width
Definition AgoraBase.h:2485
int height
Definition AgoraBase.h:2489
const uint8_t * buffer
Definition AgoraBase.h:2505
int length
Definition AgoraBase.h:2493
Definition video_track_i.h:180
int length
Definition video_track_i.h:184
int width
Definition video_track_i.h:182
int height
Definition video_track_i.h:183
std::vector< uint8_t > buffer
Definition video_track_i.h:181
media::base::VIDEO_PIXEL_FORMAT format
Definition video_track_i.h:185
Defines the configuration for a watermark.
Definition AgoraBase.h:2515
WatermarkBuffer buffer
Definition AgoraBase.h:2528
const char * id
Definition AgoraBase.h:2519
WATERMARK_SOURCE_TYPE type
Definition AgoraBase.h:2523
WatermarkTimestamp timestamp
Definition AgoraBase.h:2534
WatermarkLiteral literal
Definition AgoraBase.h:2540
WatermarkOptions options
Definition AgoraBase.h:2552
const char * imageUrl
Definition AgoraBase.h:2546
WatermarkTimestampInner timestamp
Definition video_track_i.h:207
WatermarkConfigInner(const WatermarkConfig &other)
Definition video_track_i.h:222
std::string image_url
Definition video_track_i.h:208
WatermarkOptions options
Definition video_track_i.h:210
WATERMARK_SOURCE_TYPE type
Definition video_track_i.h:204
WatermarkLiteralInner literal
Definition video_track_i.h:206
std::string id
Definition video_track_i.h:203
~WatermarkConfigInner()
Definition video_track_i.h:212
WatermarkBufferInner buffer
Definition video_track_i.h:205
WatermarkConfigInner()
Definition video_track_i.h:218
const char * fontFilePath
Definition AgoraBase.h:2470
int fontSize
Definition AgoraBase.h:2453
const char * wmLiteral
Definition AgoraBase.h:2463
int strokeWidth
Definition AgoraBase.h:2457
Definition video_track_i.h:188
int font_size
Definition video_track_i.h:191
int stroke_width
Definition video_track_i.h:192
std::string font_file_path
Definition video_track_i.h:190
std::string wm_literal
Definition video_track_i.h:189
Definition AgoraBase.h:2341
int strokeWidth
Definition AgoraBase.h:2429
const char * fontFilePath
Definition AgoraBase.h:2425
int fontSize
Definition AgoraBase.h:2418
const char * format
Definition AgoraBase.h:2437
Definition video_track_i.h:195
int stroke_width
Definition video_track_i.h:199
std::string format
Definition video_track_i.h:198
int font_size
Definition video_track_i.h:197
std::string font_file_path
Definition video_track_i.h:196
Definition video_track_i.h:171
int width
Definition video_track_i.h:172
int maxUs
Definition video_track_i.h:176
int height
Definition video_track_i.h:173
std::string deviceId
Definition video_track_i.h:177
int method
Definition video_track_i.h:174
int avgUs
Definition video_track_i.h:175