Enables/disables simulcast streams by allocating a bitrate of 0 to the spatial layer.

Creates VideoStreams & VideoCodec.simulcastStreams with an active field, and then allocates 0 bitrate to simulcast streams that are inactive. This turns off the encoder for specific simulcast streams.

Bug: webrtc:8653
Change-Id: Id93b03dcd8d1191a7d3300bd77882c8af96ee469
Reviewed-on: https://webrtc-review.googlesource.com/37740
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Seth Hampson <shampson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21646}
This commit is contained in:
Seth Hampson
2018-01-12 11:33:12 -08:00
committed by Commit Bot
parent 4aa8ab5d56
commit 18c4261339
18 changed files with 516 additions and 76 deletions

View File

@ -509,6 +509,7 @@ struct SimulcastStream {
unsigned int targetBitrate; // kilobits/sec.
unsigned int minBitrate; // kilobits/sec.
unsigned int qpMax; // minimum quality
bool active; // encoded and sent.
};
struct SpatialLayer {
@ -540,6 +541,10 @@ class VideoCodec {
uint32_t maxFramerate;
// This enables/disables VP9 and H264 encoding/sending by allocating
// 0 bitrate if inactive.
bool active;
unsigned int qpMax;
unsigned char numberOfSimulcastStreams;
SimulcastStream simulcastStream[kMaxSimulcastStreams];