From 36193c37562c88f9825b116bbd2231b160ae5ace Mon Sep 17 00:00:00 2001 From: Seth Hampson Date: Thu, 14 Dec 2017 11:41:18 -0800 Subject: [PATCH] Adds active field to VideoStream struct. This change allows work to be done in parallel for lower level implementation and wiring/exposing multiple simulcast layer's encoding parameters at the api interface. Bug: webrtc:8653 Change-Id: I89c9a6af0786134771d28526056759bd63213a0a Reviewed-on: https://webrtc-review.googlesource.com/32902 Reviewed-by: Peter Thatcher Reviewed-by: Stefan Holmer Commit-Queue: Seth Hampson Cr-Commit-Position: refs/heads/master@{#21375} --- call/video_config.cc | 1 + call/video_config.h | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/call/video_config.cc b/call/video_config.cc index 982c013e46..35fcd3e9ba 100644 --- a/call/video_config.cc +++ b/call/video_config.cc @@ -24,6 +24,7 @@ VideoStream::VideoStream() target_bitrate_bps(-1), max_bitrate_bps(-1), max_qp(-1) {} +VideoStream::VideoStream(const VideoStream& other) = default; VideoStream::~VideoStream() = default; diff --git a/call/video_config.h b/call/video_config.h index 2276e785dd..038cdb2b5b 100644 --- a/call/video_config.h +++ b/call/video_config.h @@ -26,6 +26,7 @@ namespace webrtc { struct VideoStream { VideoStream(); ~VideoStream(); + VideoStream(const VideoStream& other); std::string ToString() const; size_t width; @@ -39,6 +40,9 @@ struct VideoStream { int max_qp; + // TODO(bugs.webrtc.org/8653): Support active per-simulcast layer. + bool active; + // Bitrate thresholds for enabling additional temporal layers. Since these are // thresholds in between layers, we have one additional layer. One threshold // gives two temporal layers, one below the threshold and one above, two give @@ -146,6 +150,11 @@ class VideoEncoderConfig { // The bitrate priority used for all VideoStreams. double bitrate_priority; + // The simulcast layer's configurations set by the application for this video + // sender. These are modified by the video_stream_factory before being passed + // down to lower layers for the video encoding. + std::vector simulcast_layers; + // Max number of encoded VideoStreams to produce. size_t number_of_streams;