Adjust base bitrate for experimental temporal layer count
Bug: webrtc:9260 Change-Id: I15eb24ddf94122d3b70cbf1ee25125a0adbf9f2d Reviewed-on: https://webrtc-review.googlesource.com/77363 Reviewed-by: Per Kjellander <perkj@webrtc.org> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org> Commit-Queue: Erik Språng <sprang@webrtc.org> Cr-Commit-Position: refs/heads/master@{#23322}
This commit is contained in:
parent
195d1d77ea
commit
79478ad675
@ -344,6 +344,7 @@ rtc_static_library("rtc_audio_video") {
|
||||
"../modules/audio_mixer:audio_mixer_impl",
|
||||
"../modules/audio_processing:audio_processing",
|
||||
"../modules/video_capture:video_capture_module",
|
||||
"../modules/video_coding:webrtc_vp8_helpers",
|
||||
"../pc:rtc_pc_base",
|
||||
"../rtc_base:rtc_base",
|
||||
"../rtc_base:rtc_task_queue",
|
||||
|
||||
@ -15,6 +15,7 @@
|
||||
#include "media/base/streamparams.h"
|
||||
#include "media/engine/constants.h"
|
||||
#include "media/engine/simulcast.h"
|
||||
#include "modules/video_coding/codecs/vp8/include/vp8_common_types.h"
|
||||
#include "rtc_base/arraysize.h"
|
||||
#include "rtc_base/logging.h"
|
||||
#include "system_wrappers/include/field_trial.h"
|
||||
@ -227,6 +228,21 @@ std::vector<webrtc::VideoStream> GetNormalSimulcastLayers(
|
||||
layers[s].num_temporal_layers = DefaultNumberOfTemporalLayers(s);
|
||||
layers[s].max_bitrate_bps = FindSimulcastMaxBitrateBps(width, height);
|
||||
layers[s].target_bitrate_bps = FindSimulcastTargetBitrateBps(width, height);
|
||||
int num_temporal_layers = DefaultNumberOfTemporalLayers(s);
|
||||
if (s == 0 && num_temporal_layers != 3) {
|
||||
// If alternative number temporal layers is selected, adjust the
|
||||
// bitrate of the lowest simulcast stream so that absolute bitrate for the
|
||||
// base temporal layer matches the bitrate for the base temporal layer
|
||||
// with the default 3 simulcast streams. Otherwise we risk a higher
|
||||
// threshold for receiving a feed at all.
|
||||
const float rate_factor =
|
||||
webrtc::kVp8LayerRateAlloction[3][0] /
|
||||
webrtc::kVp8LayerRateAlloction[num_temporal_layers][0];
|
||||
layers[s].max_bitrate_bps =
|
||||
static_cast<int>(layers[s].max_bitrate_bps * rate_factor);
|
||||
layers[s].target_bitrate_bps =
|
||||
static_cast<int>(layers[s].target_bitrate_bps * rate_factor);
|
||||
}
|
||||
layers[s].min_bitrate_bps = FindSimulcastMinBitrateBps(width, height);
|
||||
layers[s].max_framerate = max_framerate;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user