Fix the bug and reland "Make min video target bitrate configurable."

This reverts commit 7e896d01623e136313757b6f97d99ea21586f4c4.

Reason for revert: Fixed the bug and submit again.

Original change's description:
> Revert "Make min video target bitrate configurable."
>
> This reverts commit a471e797bc6bb5d26375e4c56ff4aacbab08b8a9.
>
> Reason for revert: This CL adds a new symbol to .data instead of .rodata and the symbol should be a constant.
>
> Original change's description:
> > 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}
>
> TBR=nisse@webrtc.org,sprang@webrtc.org,crodbro@webrtc.org,yinwa@webrtc.org
>
> Change-Id: I90f23c2c849a6ec518710bbcbdd8e9eb249e9de8
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:10915
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150534
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28967}

TBR=mbonadei@webrtc.org,nisse@webrtc.org,sprang@webrtc.org,crodbro@webrtc.org,yinwa@webrtc.org

Change-Id: Ieef4972502e3c1e5a6e80d8909718dd312486a8e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10915
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150537
Reviewed-by: Ying Wang <yinwa@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28971}
This commit is contained in:
Ying Wang
2019-08-27 12:16:38 +02:00
committed by Commit Bot
parent 30ab015fc9
commit 4271afbc30
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 {