Make min video target bitrate configurable.

Change-Id: I5adf1e675be2114b648878078a8f2e6808c390c7
Bug: webrtc:10915
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150331
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28959}
This commit is contained in:
Ying Wang
2019-08-26 10:10:52 +02:00
committed by Commit Bot
parent 3b407ff9a4
commit a471e797bc
4 changed files with 19 additions and 1 deletions

View File

@ -16,4 +16,5 @@ const int kMinVideoBitrateBps = 30000;
const int kVideoMtu = 1200;
const int kVideoRtpSendBufferSize = 65536;
const int kVideoRtpRecvBufferSize = 262144;
const char* kMinVideoBitrateExperiment = "WebRTC-Video-MinVideoBitrate";
} // namespace cricket

View File

@ -20,6 +20,7 @@ extern const int kVideoRtpRecvBufferSize;
extern const char kH264CodecName[];
extern const int kMinVideoBitrateBps;
extern const char* kMinVideoBitrateExperiment;
} // namespace cricket

View File

@ -27,7 +27,6 @@
#include "api/video_codecs/video_encoder.h"
#include "api/video_codecs/video_encoder_factory.h"
#include "call/call.h"
#include "media/engine/constants.h"
#include "media/engine/simulcast.h"
#include "media/engine/webrtc_media_engine.h"
#include "media/engine/webrtc_voice_engine.h"
@ -329,6 +328,9 @@ absl::optional<int> GetFallbackMinBpsFromFieldTrial(
}
int GetMinVideoBitrateBps(webrtc::VideoCodecType type) {
if (webrtc::field_trial::IsEnabled(kMinVideoBitrateExperiment)) {
return MinVideoBitrateConfig().min_video_bitrate->bps();
}
return GetFallbackMinBpsFromFieldTrial(type).value_or(kMinVideoBitrateBps);
}
} // namespace

View File

@ -29,12 +29,15 @@
#include "call/video_receive_stream.h"
#include "call/video_send_stream.h"
#include "media/base/media_engine.h"
#include "media/engine/constants.h"
#include "media/engine/unhandled_packets_buffer.h"
#include "rtc_base/async_invoker.h"
#include "rtc_base/critical_section.h"
#include "rtc_base/experiments/field_trial_parser.h"
#include "rtc_base/network_route.h"
#include "rtc_base/thread_annotations.h"
#include "rtc_base/thread_checker.h"
#include "system_wrappers/include/field_trial.h"
namespace webrtc {
class VideoDecoderFactory;
@ -48,6 +51,17 @@ class Thread;
namespace cricket {
struct MinVideoBitrateConfig {
webrtc::FieldTrialParameter<webrtc::DataRate> min_video_bitrate;
MinVideoBitrateConfig()
: min_video_bitrate("br", webrtc::DataRate::KilobitsPerSec<30>()) {
webrtc::ParseFieldTrial(
{&min_video_bitrate},
webrtc::field_trial::FindFullName(kMinVideoBitrateExperiment));
}
};
class WebRtcVideoChannel;
class UnsignalledSsrcHandler {