码率分配
评估码率分配核心类BitrateAllocator
WebRTC在进行带宽评估后会通过OnNetworkChanged方法回调到BitrateAllocator类,音频,视频等媒体的码率分配都是在此类中进行;
AddObserver方法
音频和视频在其(audio/audio_send_stream.cc)AudioSendStream
的ConfigureBitrateObserver和(video/video_send_stream_impl.cc)VideoSendStreamImpl
的StartupVideoSendStream方法的调用 bitrate_allocator_->AddObserver
注册监听和参数设置;
在BitrateAllocator::AddObserver
中会判断是不是已经加入过如果没有加入过则push到bitrate_observer_configs_
中,后续的码率分配都是以bitrate_observer_configs_循环分配。
AllocateBitrates 方法
先看一段WebRTC的日志输出: