Add field trial to override default number of temporal layers
Bug: webrtc:9260 Change-Id: I8765410f4afda61a0381cf35ec48be877197d790 Reviewed-on: https://webrtc-review.googlesource.com/75320 Commit-Queue: Erik Språng <sprang@webrtc.org> Reviewed-by: Per Kjellander <perkj@webrtc.org> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org> Cr-Commit-Position: refs/heads/master@{#23234}
This commit is contained in:
parent
5702736f7e
commit
bfe3d854cd
@ -53,13 +53,31 @@ const SimulcastFormat kSimulcastFormats[] = {
|
||||
|
||||
const int kMaxScreenshareSimulcastLayers = 2;
|
||||
|
||||
// Multiway: Number of temporal layers for each simulcast stream, for maximum
|
||||
// possible number of simulcast streams |kMaxSimulcastStreams|. The array
|
||||
// goes from lowest resolution at position 0 to highest resolution.
|
||||
// For example, first three elements correspond to say: QVGA, VGA, WHD.
|
||||
static const int
|
||||
kDefaultConferenceNumberOfTemporalLayers[webrtc::kMaxSimulcastStreams] =
|
||||
{3, 3, 3, 3};
|
||||
// Multiway: Number of temporal layers for each simulcast stream.
|
||||
int DefaultNumberOfTemporalLayers(int simulcast_id) {
|
||||
RTC_CHECK_GE(simulcast_id, 0);
|
||||
RTC_CHECK_LT(simulcast_id, webrtc::kMaxSimulcastStreams);
|
||||
|
||||
const int kDefaultNumTemporalLayers = 3;
|
||||
|
||||
const std::string group_name =
|
||||
webrtc::field_trial::FindFullName("WebRTC-VP8ConferenceTemporalLayers");
|
||||
if (group_name.empty())
|
||||
return kDefaultNumTemporalLayers;
|
||||
|
||||
int num_temporal_layers = kDefaultNumTemporalLayers;
|
||||
if (sscanf(group_name.c_str(), "%d", &num_temporal_layers) == 1 &&
|
||||
num_temporal_layers > 0 &&
|
||||
num_temporal_layers <= webrtc::kMaxTemporalStreams) {
|
||||
return num_temporal_layers;
|
||||
}
|
||||
|
||||
RTC_LOG(LS_WARNING) << "Attempt to set number of temporal layers to "
|
||||
"incorrect value: "
|
||||
<< group_name;
|
||||
|
||||
return kDefaultNumTemporalLayers;
|
||||
}
|
||||
|
||||
int FindSimulcastFormatIndex(int width, int height) {
|
||||
RTC_DCHECK_GE(width, 0);
|
||||
@ -196,7 +214,7 @@ std::vector<webrtc::VideoStream> GetNormalSimulcastLayers(
|
||||
layers[s].height = height;
|
||||
// TODO(pbos): Fill actual temporal-layer bitrate thresholds.
|
||||
layers[s].max_qp = max_qp;
|
||||
layers[s].num_temporal_layers = kDefaultConferenceNumberOfTemporalLayers[s];
|
||||
layers[s].num_temporal_layers = DefaultNumberOfTemporalLayers(s);
|
||||
layers[s].max_bitrate_bps = FindSimulcastMaxBitrateBps(width, height);
|
||||
layers[s].target_bitrate_bps = FindSimulcastTargetBitrateBps(width, height);
|
||||
layers[s].min_bitrate_bps = FindSimulcastMinBitrateBps(width, height);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user