|
Agora C++ API Reference for All Platforms
|
12 #include <unordered_map>
15 #include "AgoraBase.h"
16 #include "AgoraMediaBase.h"
17 #include "AgoraOptional.h"
18 #include "NGIAgoraVideoTrack.h"
19 #include "api/transport/network_types.h"
20 #include "api/video/video_content_type.h"
21 #include "call/rtp_config.h"
23 #include "rtc_connection_i.h"
24 #include "track_stat_i.h"
25 #include "video_config_i.h"
26 #include "common_defines.h"
27 #include "video_node_i.h"
28 #include "utils/thread/base_worker.h"
29 #include "utils/thread/thread_control_block.h"
30 #include "main/core/video/multi_stream_subscribe_interface.h"
31 #include "facilities/media_config/policy_chain/media_config_policy_chain.h"
32 #include "facilities/tools/weak_observers.h"
33 #include "facilities/media_config/policy_chain/general_val_policy_chain.h"
34 #include "main/core/video/strategy_framework/module_controller/video_module_control_aspect.h"
35 #include <utils/object/object_table.h>
36 #include "main/core/video/stats_and_events/video_stats_events_base.h"
38 class IFecMethodFactoryInterface;
40 class IRsfecCodecFactoryInterface;
41 class IAutoAdjustHarq;
47 class VideoNodeRtpSink;
48 class VideoNodeRtpSource;
49 class VideoTrackConfigurator;
50 class ProactiveCaller;
51 class IModuleControlPanel;
129 std::vector<agora::rtc::QoEDropInfo>
extra2;
164 int width,
int height,
165 int rotation,
int timestamp_ms) {}
180 webrtc::HW_ENCODER_ACCELERATING_STATUS hw_accelerate_status) {};
196 public VideoLocalTrackControlAspect {
299 virtual int GetConfigExs(std::vector<VideoConfigurationEx>& configs,
bool include_disable_config =
false) = 0;
369 uint8_t negotiated_video_decode_caps) {
return false; }
391 virtual void setEnabledEx(
bool enable,
bool action_droppable =
true) {}
400 static std::atomic<int> id_generator_;
422 public VideoRemoteTrackControlAspect {
VideoNodeRtpSink * rtcp_sender
Definition: video_track_i.h:442
VideoNodeEncoderEx::OPSParametersCollection ops_parameters
Definition: video_track_i.h:233
InternalVideoSourceType
Definition: video_track_i.h:53
LOCAL_VIDEO_STREAM_STATE
Definition: AgoraBase.h:2715
int32_t fec_outside_bandwidth_ratio
Definition: video_track_i.h:237
std::string hw_encoder_fotmat_config
Definition: video_track_i.h:271
virtual int32_t Width() const =0
int decode_level[10]
Definition: video_track_i.h:415
std::shared_ptr< webrtc::IAutoAdjustHarq > auto_adjust_harq
Definition: video_track_i.h:235
virtual int SetVideoConfigEx(const VideoConfigurationEx &configEx, utils::ConfigPriority priority=utils::CONFIG_PRIORITY_USER)=0
uint64_t firstDecodingTimeTickMs
Definition: video_track_i.h:404
int fec_fix_rate
Definition: video_track_i.h:251
virtual bool getVideoTextureCopyStatus()
Definition: video_track_i.h:343
@ kVideoProcessEventPreprocessNoIncomingFrame
Definition: video_track_i.h:103
@ TRACK_DESTROY
Definition: video_track_i.h:198
virtual void getSimucastStreamStatus(SIMULCAST_STREAM_MODE &mode, bool &enable)
Definition: video_track_i.h:346
VideoProcessEvent
Definition: video_track_i.h:97
uint32_t render_out_num
Definition: video_track_i.h:411
virtual void onRemoteAddVideoFilter(std::string cid, uid_t uid, uint32_t ssrc, std::string filter_name, bool enabled)
Definition: video_track_i.h:186
@ VideoAvailabilityLevel1
Definition: video_track_i.h:78
uint32_t fec_pkts_num
Definition: video_track_i.h:412
virtual void unregisterModuleControlPanel()
Definition: video_track_i.h:389
@ NETWORK_DESTROY
Definition: video_track_i.h:424
virtual void onViewSizeChanged(uid_t uid, agora::utils::object_handle view, int width, int height)
Definition: video_track_i.h:172
SCREEN_SCENARIO_TYPE
Definition: AgoraBase.h:2562
@ kVideoProcessEventNone
Definition: video_track_i.h:98
Optional< uint32_t > hw_encoder_height_alignment
Definition: video_track_i.h:266
Definition: video_track_i.h:190
virtual void onVideoSizeChanged(int id, uid_t uid, int width, int height, int rotation)
Definition: video_track_i.h:182
VideoQoEAnalyzerParameter qoe_analyzer_parameters
Definition: video_track_i.h:437
int dm_maxgc
Definition: video_track_i.h:245
Optional< SIMULCAST_STREAM_MODE > cfg_simulcast_stream_mode
Definition: video_track_i.h:277
VideoDumpMode
Definition: video_track_i.h:113
Definition: common_defines.h:11
int TrackId() const
Definition: video_track_i.h:352
Optional< bool > low_stream_enable_hw_encoder
Definition: video_track_i.h:229
@ MANUAL
Definition: video_track_i.h:198
int32_t scene
Definition: video_track_i.h:210
@ kVideoProcessEventPreprocessFrameFailure
Definition: video_track_i.h:102
virtual int addVideoWatermark(const char *watermarkUrl, const WatermarkOptions &options)
Definition: video_track_i.h:332
virtual bool enableMinorStreamPeriodicKeyFrame()
Definition: video_track_i.h:383
WeakPipelineBuilder builder
Definition: video_track_i.h:430
SIMULCAST_STREAM_MODE
Definition: AgoraBase.h:1966
Optional< uint32_t > hw_enc_hevc_exceptions
Definition: video_track_i.h:272
VideoCodecAvailableEvent
Definition: video_track_i.h:108
virtual int registerVideoEncodedImageReceiver(media::IVideoEncodedFrameObserver *videoReceiver)
Definition: video_track_i.h:356
virtual int prepareNodes(const char *id=nullptr)=0
virtual void onSourceVideoSizeChanged(uid_t uid, int width, int height, int rotation, int timestamp_ms)
Definition: video_track_i.h:163
virtual void onVideoAvailabilityIndicatorEvent(VideoAvailabilityIndicator indicator)
Definition: video_track_i.h:181
virtual void AddVideoAvailabilityIndicatorEvents(VideoAvailabilityIndicator event)
Definition: video_track_i.h:305
VideoAvailabilityLevel
Definition: video_track_i.h:77
virtual void unregisterProactiveCaller()
Definition: video_track_i.h:464
@ VIDEO_DUMP_RECEIVED_STREAM
Definition: video_track_i.h:118
virtual bool attach(const AttachInfo &info, REMOTE_VIDEO_STATE_REASON reason)=0
VideoContentType content_type
Definition: video_track_i.h:417
int sent_loss_ratio
Definition: video_track_i.h:192
IRemoteVideoTrackEx()=default
Definition: AgoraBase.h:1774
Definition: video_track_i.h:133
bool enable_minor_stream_fec
Definition: video_track_i.h:239
@ VideoModuleEncode
Definition: video_track_i.h:68
virtual void onFirstVideoFrameRendered(int id, uid_t uid, int width, int height, int timestamp_ms)
Definition: video_track_i.h:155
std::vector< int > fec_protection_factor
Definition: video_track_i.h:202
bool enable_quick_intra_high_fec
Definition: video_track_i.h:254
StateEvents< REMOTE_VIDEO_STATE, REMOTE_VIDEO_STATE_REASON > RemoteVideoEvents
Definition: video_track_i.h:425
virtual void onVideoContentChanged(uid_t uid, agora::VideoContentType newType, agora::VideoContentSubType newSubtype)
Definition: video_track_i.h:161
int qoe_critical_report_max_times
Definition: video_track_i.h:135
REMOTE_VIDEO_STATE_REASON
Definition: AgoraBase.h:2974
@ VideoModuleRender
Definition: video_track_i.h:72
bool local_video_attached
Definition: video_track_i.h:280
@ VideoModuleQoE
Definition: video_track_i.h:74
Definition: AgoraBase.h:1984
virtual void onFirstVideoFrameDecoded(std::string cid, uid_t uid, uint32_t ssrc, int width, int height, int timestamp_ms)
Definition: video_track_i.h:157
virtual void OnRexferStatusUpdated(bool status, int32_t target_bitrate)
Definition: video_track_i.h:174
virtual void onRemoteVideoStateChanged(uid_t uid, REMOTE_VIDEO_STATE state, REMOTE_VIDEO_STATE_REASON reason, int timestamp_ms)
Definition: video_track_i.h:150
virtual void onRecvSideDelay(uid_t uid, int recv_delay)
Definition: video_track_i.h:167
bool enable_rq_classic_method
Definition: video_track_i.h:248
@ VideoAvailabilityLevel2
Definition: video_track_i.h:79
virtual VideoTrackConfigurator * GetVideoTrackConfigurator()
Definition: video_track_i.h:335
virtual void OnRequestCodecFallback()
Definition: video_track_i.h:175
absl::optional< int > max_inflight_frame_count_pre_processsing
Definition: video_track_i.h:255
Optional< int > minscore_for_swh265enc
Definition: video_track_i.h:230
virtual void registerProactiveCaller(const std::shared_ptr< ProactiveCaller > &)
Definition: video_track_i.h:463
virtual int GetVideoProfileAutoAdjsut(std::string &config_video_profile, std::string &actual_video_profile)=0
bool enable_minor_stream_vqc
Definition: video_track_i.h:238
virtual bool registerTrackObserver(std::shared_ptr< IVideoTrackObserver > observer)
Definition: video_track_i.h:457
bool dm_lowred
Definition: video_track_i.h:247
Optional< uint32_t > av_enc_bitrate_adjustment_type
Definition: video_track_i.h:260
virtual void onEncoderConfigurationChanged(const std::vector< VideoConfigurationEx > &config)
Definition: video_track_i.h:169
std::vector< std::vector< int > > fec_ratioLevel
Definition: video_track_i.h:203
std::vector< CameraInfo > CameraInfoList
Definition: video_node_i.h:304
Definition: AgoraAtomicOps.h:21
uid_t user_id_
Definition: video_track_i.h:396
std::string hw_encoder_provider
Definition: video_track_i.h:228
virtual int unregisterVideoEncodedImageReceiver(media::IVideoEncodedFrameObserver *videoReceiver)
Definition: video_track_i.h:358
@ kVideoProcessEventPreprocessEnqueueFailure
Definition: video_track_i.h:101
@ CustomEncodedImageSource
virtual int setVideoEncoderConfigurationEx(const VideoEncoderConfiguration &config, utils::ConfigPriority priority=utils::CONFIG_PRIORITY_USER)=0
REMOTE_VIDEO_STATE
Definition: AgoraBase.h:2945
bool disable_rewrite_num_reorder_frame
Definition: video_track_i.h:434
int qoe_report_strategy
Definition: video_track_i.h:138
Definition: video_track_i.h:403
virtual bool unregisterTrackObserver(IVideoTrackObserver *observer)
Definition: video_track_i.h:322
int32_t policy
Definition: video_track_i.h:211
uid_t uid
Definition: video_track_i.h:127
Definition: video_track_i.h:196
std::vector< agora::rtc::VideoTimestampExceptionInfo > ts_exception_info
Definition: video_track_i.h:130
Definition: video_track_i.h:440
VideoNodeRtpSource * source
Definition: video_track_i.h:428
uint32_t uid
Definition: video_track_i.h:217
virtual void GetVideoAvailabilityIndicatorEvents(std::vector< VideoAvailabilityIndicator > &events)
Definition: video_track_i.h:307
uint32_t cid
Definition: video_track_i.h:218
std::vector< int > fec_rttThreshold
Definition: video_track_i.h:204
uint32_t render_in_num
Definition: video_track_i.h:410
virtual void onLocalVideoStateChanged(int id, LOCAL_VIDEO_STREAM_STATE state, LOCAL_VIDEO_STREAM_ERROR errorCode, int timestamp_ms)
Definition: video_track_i.h:145
VIDEO_CODEC_TYPE
Definition: AgoraBase.h:1150
virtual ~IVideoTrackObserver()=default
uint64_t stats_space
Definition: video_track_i.h:221
virtual rtc::VideoEncoderConfiguration getVideoEncoderConfiguration()
Definition: video_track_i.h:341
bool qoe_analyzer_enable
Definition: video_track_i.h:134
virtual int GetConfigExs(std::vector< VideoConfigurationEx > &configs, bool include_disable_config=false)=0
@ kVideoQoe200msFreezeDrop
Definition: video_track_i.h:91
virtual void onRecvSideFps(uid_t uid, int fps)
Definition: video_track_i.h:168
@ VideoModulePipeline
Definition: video_track_i.h:73
Definition: video_track_i.h:427
@ VIDEO_DUMP_FILTERED_YUV
Definition: video_track_i.h:116
Definition: video_track_i.h:283
uint8_t negotiated_video_decode_caps
Definition: video_track_i.h:269
int extra
Definition: video_track_i.h:128
@ MANUAL
Definition: video_track_i.h:424
virtual bool setEncoderTemporlayers(int temporlayersNum)
Definition: video_track_i.h:379
DetachReason reason
Definition: video_track_i.h:285
utils::WeakObserversFacility< IVideoTrackObserver > track_observers_
Definition: video_track_i.h:395
Definition: NGIAgoraVideoTrack.h:292
webrtc::RsfecConfig rsfec_config
Definition: video_track_i.h:224
@ VIDEO_DUMP_CAPTURED_YUV
Definition: video_track_i.h:115
WeakPipelineBuilder builder
Definition: video_track_i.h:220
virtual int setLocalVideoSend(bool send)=0
@ VIDEO_DUMP_RENDERED_YUV
Definition: video_track_i.h:120
virtual int onRequestEnableSimulcastStream()
Definition: video_track_i.h:371
@ NETWORK_DESTROY
Definition: video_track_i.h:198
virtual bool setH264BframeNumber(int bframeNum)
Definition: video_track_i.h:381
@ VideoModuleDecode
Definition: video_track_i.h:70
void setUniqueId(const std::string &unique_id)
Definition: video_track_i.h:354
@ kVideoTimestampException
Definition: video_track_i.h:93
virtual int ResetVideoConfigExByPriority(utils::ConfigPriority priority)=0
const int id_
Definition: video_track_i.h:394
int64_t totalFrozen200ms
Definition: video_track_i.h:407
std::string enable_hw_encoder
Definition: video_track_i.h:227
virtual void getBillingVideoProfile(int32_t &w, int32_t &h)
Definition: video_track_i.h:329
int jitter_offset_ms
Definition: video_track_i.h:414
std::shared_ptr< webrtc::IRsfecCodecFactoryInterface > rsfec_codec_factory
Definition: video_track_i.h:435
virtual int setUserId(uid_t uid)
Definition: video_track_i.h:309
std::string type
Definition: video_track_i.h:212
virtual bool ClearVideoConfigs()
Definition: video_track_i.h:362
virtual bool unregisterTrackObserver(IVideoTrackObserver *observer)
Definition: video_track_i.h:460
virtual int getEncoderType()=0
VideoNodeRtpSink * network
Definition: video_track_i.h:284
@ kVideoQoe600msFreezeDrop
Definition: video_track_i.h:90
@ CODEC_CHANGE
Definition: video_track_i.h:198
int largest_ref_distance
Definition: video_track_i.h:252
std::shared_ptr< webrtc::IFecMethodFactoryInterface > fec_method_factory
Definition: video_track_i.h:234
@ kVideoHwH264EncoderHighProfileAvailable
Definition: video_track_i.h:110
VideoNodeRtpSink * rtcp_sender
Definition: video_track_i.h:429
bool enable_two_bytes_extension
Definition: video_track_i.h:223
Definition: video_track_i.h:208
Definition: video_config_i.h:25
bool enable_minor_stream_fec_outside_ratio
Definition: video_track_i.h:240
std::string unique_id_
Definition: video_track_i.h:397
std::vector< StateEvent< STATE_TYPE, REASON_TYPE > > StateEvents
Definition: track_stat_i.h:21
uint32_t dec_in_num
Definition: video_track_i.h:409
int32_t mode
Definition: video_track_i.h:209
virtual void ReconfigureFecMethod(int fec_method, int dmec_version, int fec_mul_rdc)
Definition: video_track_i.h:377
LOCAL_VIDEO_STREAM_ERROR
Definition: AgoraBase.h:2738
virtual void onLocalFilterStatusChanged(int track_id, std::string filter_name, bool enabled)
Definition: video_track_i.h:185
virtual bool attach(const AttachInfo &info)=0
virtual void setEnabledEx(bool enable, bool action_droppable=true)
Definition: video_track_i.h:391
Definition: video_track_i.h:422
VideoModuleId
Definition: video_track_i.h:65
webrtc::ISmoothRender * smooth_render
Definition: video_track_i.h:433
VideoAvailabilityLevel level
Definition: video_track_i.h:124
virtual int32_t Height() const =0
virtual InternalVideoSourceType getInternalVideoSourceType()
Definition: video_track_i.h:339
@ kVideoQoeFpsSubstandard
Definition: video_track_i.h:92
@ TRACK_DESTROY
Definition: video_track_i.h:424
VideoQoEAnalyzerParameter qoe_analyzer_parameters
Definition: video_track_i.h:279
virtual int updateContentHint(VIDEO_CONTENT_HINT contentHint)
Definition: video_track_i.h:348
virtual uid_t getUserId()
Definition: video_track_i.h:311
virtual bool Enabled() const =0
CongestionControlType cc_type
Definition: video_track_i.h:222
Optional< uint32_t > av_enc_intra_key_interval
Definition: video_track_i.h:258
int hw_capture_delay
Definition: video_track_i.h:274
@ VideoModulePostprocess
Definition: video_track_i.h:71
@ ERR_NOT_SUPPORTED
Definition: AgoraBase.h:466
virtual ~ILocalVideoTrackEx()
Definition: video_track_i.h:289
virtual void registerModuleControlPanel(std::shared_ptr< rtc::IModuleControlPanel > panel)
Definition: video_track_i.h:388
Definition: NGIAgoraVideoTrack.h:461
@ kVideoQoeCriticalDrop
Definition: video_track_i.h:89
std::string switch_to_rq
Definition: video_track_i.h:246
DetachReason
Definition: video_track_i.h:424
VideoModuleId module
Definition: video_track_i.h:125
virtual bool detach(const DetachInfo &info, REMOTE_VIDEO_STATE_REASON reason)=0
virtual void onLocalAddVideoFilter(int track_id, std::string filter_name, bool enabled)
Definition: video_track_i.h:184
VideoQoeEvent
Definition: video_track_i.h:88
@ kVideoProcessEventPreprocessCongested
Definition: video_track_i.h:104
bool support_higher_standard_bitrate
Definition: video_track_i.h:278
virtual void OnRoiStatusUpdated(bool status)
Definition: video_track_i.h:178
CongestionControlType
Definition: rtc_connection_i.h:84
virtual int clearVideoWatermarks()
Definition: video_track_i.h:333
Definition: AgoraBase.h:2064
@ kVideoHwH265EncoderAvailable
Definition: video_track_i.h:109
virtual int setVideoDumpMode(int mode, bool enabled)
Definition: video_track_i.h:366
Definition: NGIAgoraVideoTrack.h:359
@ kVideoUplinkEventStaticFrames
Definition: video_track_i.h:85
int fec_method
Definition: video_track_i.h:243
Definition: video_track_i.h:216
virtual bool isVideoFilterEnabled(const char *id)
Definition: video_track_i.h:375
virtual bool hasPublished()=0
utils::WeakObserversFacility< IVideoTrackObserver > track_observers_
Definition: video_track_i.h:467
virtual void onVideoPipelineDataFormatChanged(int format)
Definition: video_track_i.h:170
virtual void getSimucastStreamConfig(SimulcastStreamConfig &simu_stream_config)
Definition: video_track_i.h:345
bool recv_media_packet
Definition: video_track_i.h:431
virtual void OnSetRexferParams(bool fec_rexfer, float rexfer_alpha)
Definition: video_track_i.h:173
virtual uint32_t getRemoteSsrc()=0
virtual bool getStatisticsEx(LocalVideoTrackStatsEx &statsEx)
Definition: video_track_i.h:326
int harq_version
Definition: video_track_i.h:236
virtual void unregisterProactiveCaller()
Definition: video_track_i.h:386
@ VideoAvailabilityLevel3
Definition: video_track_i.h:80
LocalVideoTrackStats local_video_stats
Definition: video_track_i.h:191
virtual int GetCaptureMode(CaptureModeItem &captureModeOut)=0
int code
Definition: video_track_i.h:126
uint32_t video_threshhold_ms
Definition: video_track_i.h:436
virtual int GetActiveStreamsCount()=0
DetachReason
Definition: video_track_i.h:198
VideoNodeRtpSource * source
Definition: video_track_i.h:441
uint64_t stats_space
Definition: video_track_i.h:432
int qoe_timing_strategy_report_period
Definition: video_track_i.h:139
virtual void OnNotifyDepartedFrame(uid_t uid, int picture_id)
Definition: video_track_i.h:176
virtual void registerProactiveCaller(const std::shared_ptr< rtc::ProactiveCaller > &configurator)
Definition: video_track_i.h:385
bool isHardwareCodec
Definition: video_track_i.h:406
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:187
VIDEO_CONTENT_HINT
Definition: AgoraBase.h:2540
int qoe_high_report_max_times
Definition: video_track_i.h:136
virtual void onCameraFacingChanged(int facing)
Definition: video_track_i.h:171
uint32_t sync_peer_uid
Definition: video_track_i.h:275
unsigned int uid_t
Definition: AgoraMediaBase.h:29
bool pec_enabled
Definition: video_track_i.h:205
virtual bool getIsAttachedToNetwork()
Definition: video_track_i.h:373
@ VIDEO_DUMP_DECODED_YUV
Definition: video_track_i.h:119
bool enable_video_send_diagnose
Definition: video_track_i.h:263
uint32_t last_frame_max
Definition: video_track_i.h:408
virtual ~IRemoteVideoTrackEx()
Definition: video_track_i.h:448
Definition: video_track_i.h:142
VideoPipelineEvent
Definition: video_track_i.h:84
virtual bool onNegotiationCodecChange(agora::rtc::VIDEO_CODEC_TYPE codec_type, uint8_t negotiated_video_decode_caps)
Definition: video_track_i.h:368
uint64_t firstVideoFrameRendered
Definition: video_track_i.h:405
virtual void onCameraInfoListChanged(CameraInfoList cameraInfoList)
Definition: video_track_i.h:177
@ VIDEO_DUMP_DEFAULT
Definition: video_track_i.h:114
uint32_t loss_af_fec
Definition: video_track_i.h:413
VideoNodeRtpSink * network
Definition: video_track_i.h:219
std::vector< VideoAvailabilityIndicator > video_availability
Definition: video_track_i.h:418
int dm_wsize
Definition: video_track_i.h:244
ILocalVideoTrackEx()
Definition: video_track_i.h:288
virtual bool getStatisticsEx(RemoteVideoTrackStatsEx &statsex)
Definition: video_track_i.h:455
@ VIDEO_DUMP_ENCODED_STREAM
Definition: video_track_i.h:117
int32_t minimum_fec_level
Definition: video_track_i.h:250
std::string window_title
Definition: video_track_i.h:213
virtual void onSendSideDelay(int id, int send_delay)
Definition: video_track_i.h:166
uint64_t qp_sum
Definition: video_track_i.h:416
virtual bool registerTrackObserver(std::shared_ptr< IVideoTrackObserver > observer)
Definition: video_track_i.h:319
Definition: video_node_i.h:26
virtual void onFirstVideoKeyFrameReceived(uid_t uid, uint64_t timestamp, const webrtc::FirstVideoFrameStreamInfo &streamInfo)
Definition: video_track_i.h:159
@ VideoModulePreprocess
Definition: video_track_i.h:67
bool enable_check_for_disable_fec
Definition: video_track_i.h:253
Optional< bool > hw_encoder_force_alignment
Definition: video_track_i.h:267
bool enable_minor_stream_intra_request
Definition: video_track_i.h:241
Definition: video_track_i.h:201
int qoe_normal_report_max_times
Definition: video_track_i.h:137
@ VideoModuleNetwork
Definition: video_track_i.h:69
Definition: NGIAgoraVideoTrack.h:154
virtual int updateScreenCaptureScenario(SCREEN_SCENARIO_TYPE screenScenario)
Definition: video_track_i.h:350
std::vector< agora::rtc::QoEDropInfo > extra2
Definition: video_track_i.h:129
virtual bool detach(const DetachInfo &info)=0
@ VideoModuleCapture
Definition: video_track_i.h:66
DetachReason reason
Definition: video_track_i.h:443
Optional< uint32_t > hw_encoder_width_alignment
Definition: video_track_i.h:265
Definition: video_track_i.h:123
std::weak_ptr< webrtc::Call > WeakPipelineBuilder
Definition: common_defines.h:19
virtual void OnEncoderStatusUpdate(webrtc::VideoCodecType codec_type, webrtc::HW_ENCODER_ACCELERATING_STATUS hw_accelerate_status)
Definition: video_track_i.h:179