VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Directory :  /usr/local/lib/node_modules/mediasoup/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/local/lib/node_modules/mediasoup/BWE.md


Down Peaks:

worker/deps/libwebrtc/libwebrtc/modules/congestion_controller/goog_cc/trendline_estimator.cc
`TrendlineEstimator::Update()`

Trendline esimator determines a BW Overuse given that the accumulated delay increases.

Difference between sending and receiving deltas.

Delay referring to the RTP packet reception time given in the RTCP feedback packet.

Delay is calculated as a difference bettween the send time deltas for RTP packets and the received time deltas of such RTP packets.


Deltas are calculated by inter arrival:

worker/deps/libwebrtc/libwebrtc/modules/congestion_controller/goog_cc/trendline_estimator.cc

For each RTP packet represented in the RTCP feedback packet, send and receive deltas are calculated.


Inter arrival is called by delay based bwe:

worker/deps/libwebrtc/libwebrtc/modules/congestion_controller/goog_cc/delay_based_bwe.cc


Trendline esimator calculation:

 smoothing_coef_ = 0.9
0.9
> smoothed_delay_ = 5
5
> accumulated_delay_ = 10
10
> libwebrtc_trendline_update = function() { smoothed_delay_ = smoothing_coef_ * smoothed_delay_ + (1 - smoothing_coef_) * accumulated_delay_; }
[Function: libwebrtc_trendline_update]
> print = function () {console.log(`accumulated_delay_:${accumulated_delay_}, smoothed_delay_:${smoothed_delay_}`);}
[Function: print]
>
> libwebrtc_trendline_update(); print();
accumulated_delay_:10, smoothed_delay_:5.5
undefined
> libwebrtc_trendline_update(); print();
accumulated_delay_:10, smoothed_delay_:5.95
undefined
> libwebrtc_trendline_update(); print();
accumulated_delay_:10, smoothed_delay_:6.355
undefined
> libwebrtc_trendline_update(); print();
accumulated_delay_:10, smoothed_delay_:6.719500000000001
undefined
> libwebrtc_trendline_update(); print();
accumulated_delay_:10, smoothed_delay_:7.047550000000001
undefined
> libwebrtc_trendline_update(); print();
accumulated_delay_:10, smoothed_delay_:7.3427950000000015
undefined
> libwebrtc_trendline_update(); print();
accumulated_delay_:10, smoothed_delay_:7.608515500000001
undefined
> libwebrtc_trendline_update(); print();
accumulated_delay_:10, smoothed_delay_:7.847663950000001
undefined


// Smoothed delay calculation:

accumulated_delay_=21.998566;  smoothed_delay_=20.216605
accumulated_delay_=36.001434;  smoothed_delay_=21.795088
accumulated_delay_=148.998993; smoothed_delay_=34.515478
accumulated_delay_=95.001984;  smoothed_delay_=40.564129



VaKeR 2022