Base padding bitrate for an encoder on the bitrate allocated for that encoder, rather than the total bitrate of the channel group.
Review URL: https://codereview.webrtc.org/1231273004 Cr-Commit-Position: refs/heads/master@{#9584}
This commit is contained in:
@ -479,10 +479,8 @@ void ChannelGroup::OnNetworkChanged(uint32_t target_bitrate_bps,
|
||||
int pad_up_to_bitrate_bps = 0;
|
||||
{
|
||||
CriticalSectionScoped lock(encoder_map_cs_.get());
|
||||
for (const auto& encoder : send_encoders_) {
|
||||
pad_up_to_bitrate_bps +=
|
||||
encoder.second->GetPaddingNeededBps(target_bitrate_bps);
|
||||
}
|
||||
for (const auto& encoder : send_encoders_)
|
||||
pad_up_to_bitrate_bps += encoder.second->GetPaddingNeededBps();
|
||||
}
|
||||
pacer_->UpdateBitrate(
|
||||
target_bitrate_bps / 1000,
|
||||
|
@ -397,9 +397,10 @@ int32_t ViEEncoder::ScaleInputImage(bool enable) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ViEEncoder::GetPaddingNeededBps(int bitrate_bps) const {
|
||||
int ViEEncoder::GetPaddingNeededBps() const {
|
||||
int64_t time_of_last_frame_activity_ms;
|
||||
int min_transmit_bitrate_bps;
|
||||
int bitrate_bps;
|
||||
{
|
||||
CriticalSectionScoped cs(data_cs_.get());
|
||||
bool send_padding =
|
||||
@ -408,15 +409,12 @@ int ViEEncoder::GetPaddingNeededBps(int bitrate_bps) const {
|
||||
return 0;
|
||||
time_of_last_frame_activity_ms = time_of_last_frame_activity_ms_;
|
||||
min_transmit_bitrate_bps = 1000 * min_transmit_bitrate_kbps_;
|
||||
bitrate_bps = last_observed_bitrate_bps_;
|
||||
}
|
||||
|
||||
VideoCodec send_codec;
|
||||
if (vcm_->SendCodec(&send_codec) != 0)
|
||||
return 0;
|
||||
SimulcastStream* stream_configs = send_codec.simulcastStream;
|
||||
// Allocate the bandwidth between the streams.
|
||||
std::vector<uint32_t> stream_bitrates = AllocateStreamBitrates(
|
||||
bitrate_bps, stream_configs, send_codec.numberOfSimulcastStreams);
|
||||
|
||||
bool video_is_suspended = vcm_->VideoSuspended();
|
||||
|
||||
@ -427,6 +425,7 @@ int ViEEncoder::GetPaddingNeededBps(int bitrate_bps) const {
|
||||
if (send_codec.numberOfSimulcastStreams == 0) {
|
||||
pad_up_to_bitrate_bps = send_codec.minBitrate * 1000;
|
||||
} else {
|
||||
SimulcastStream* stream_configs = send_codec.simulcastStream;
|
||||
pad_up_to_bitrate_bps =
|
||||
stream_configs[send_codec.numberOfSimulcastStreams - 1].minBitrate *
|
||||
1000;
|
||||
|
@ -177,7 +177,7 @@ class ViEEncoder : public RtcpIntraFrameObserver,
|
||||
|
||||
int channel_id() const { return channel_id_; }
|
||||
|
||||
int GetPaddingNeededBps(int bitrate_bps) const;
|
||||
int GetPaddingNeededBps() const;
|
||||
|
||||
protected:
|
||||
// Called by BitrateObserver.
|
||||
|
Reference in New Issue
Block a user