From 9874ee0d7a3c2ae6000ae6e82ae9087986b0469e Mon Sep 17 00:00:00 2001 From: pbos Date: Mon, 22 Jun 2015 04:44:26 -0700 Subject: [PATCH] Add temporal-layers option to video_loopback. BUG= R=asapersson@webrtc.org, sprang@webrtc.org Review URL: https://codereview.webrtc.org/1194533002 Cr-Commit-Position: refs/heads/master@{#9482} --- webrtc/video/loopback.cc | 4 ++++ webrtc/video/loopback.h | 1 + webrtc/video/screenshare_loopback.cc | 1 + webrtc/video/video_loopback.cc | 10 ++++++++++ 4 files changed, 16 insertions(+) diff --git a/webrtc/video/loopback.cc b/webrtc/video/loopback.cc index 7e5ca078c1..ef382de33c 100644 --- a/webrtc/video/loopback.cc +++ b/webrtc/video/loopback.cc @@ -158,6 +158,10 @@ VideoEncoderConfig Loopback::CreateEncoderConfig() { static_cast(config_.max_bitrate_kbps) * 1000; stream->max_framerate = config_.fps; stream->max_qp = 56; + if (config_.num_temporal_layers != 0) { + stream->temporal_layer_thresholds_bps.resize(config_.num_temporal_layers - + 1); + } return encoder_config; } diff --git a/webrtc/video/loopback.h b/webrtc/video/loopback.h index d0aa591b4c..0a8bb9793b 100644 --- a/webrtc/video/loopback.h +++ b/webrtc/video/loopback.h @@ -32,6 +32,7 @@ class Loopback { size_t max_bitrate_kbps; int32_t min_transmit_bitrate_kbps; std::string codec; + size_t num_temporal_layers; int32_t loss_percent; int32_t link_capacity_kbps; int32_t queue_size; diff --git a/webrtc/video/screenshare_loopback.cc b/webrtc/video/screenshare_loopback.cc index 2ac3b2985e..c0f96d4ff8 100644 --- a/webrtc/video/screenshare_loopback.cc +++ b/webrtc/video/screenshare_loopback.cc @@ -159,6 +159,7 @@ void Loopback() { flags::MaxBitrate(), flags::MinTransmitBitrate(), flags::Codec(), + 0, // Default number of temporal layers. flags::LossPercent(), flags::LinkCapacity(), flags::QueueSize(), diff --git a/webrtc/video/video_loopback.cc b/webrtc/video/video_loopback.cc index d183920b16..789b5cceac 100644 --- a/webrtc/video/video_loopback.cc +++ b/webrtc/video/video_loopback.cc @@ -103,6 +103,15 @@ DEFINE_string( "E.g. running with --force_fieldtrials=WebRTC-FooFeature/Enable/" " will assign the group Enable to field trial WebRTC-FooFeature. Multiple " "trials are separated by \"/\""); + +DEFINE_int32(num_temporal_layers, + 0, + "Number of temporal layers. Set to 1-4 to override."); + +size_t NumTemporalLayers() { + return static_cast(FLAGS_num_temporal_layers); +} + } // namespace flags void Loopback() { @@ -114,6 +123,7 @@ void Loopback() { flags::MaxBitrate(), 0, // No min transmit bitrate. flags::Codec(), + flags::NumTemporalLayers(), flags::LossPercent(), flags::LinkCapacity(), flags::QueueSize(),