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:
@ -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
|
||||
|
@ -20,6 +20,7 @@ extern const int kVideoRtpRecvBufferSize;
|
||||
extern const char kH264CodecName[];
|
||||
|
||||
extern const int kMinVideoBitrateBps;
|
||||
extern const char* kMinVideoBitrateExperiment;
|
||||
|
||||
} // namespace cricket
|
||||
|
||||
|
@ -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
|
||||
|
@ -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 {
|
||||
|
Reference in New Issue
Block a user