Sets sending status for active RtpRtcp modules.
When a simulcast stream is enabled or disabled, we want this state
change to be reflected properly in the RtpRtcp modules. Each video send
stream can contain multiple rtp_rtcp_modules pertaining to different
simulcast streams. These modules are currently all turned on/off when
the send stream is started and stopped. This change allows for
individual modules to be turned on/off. This means if a module stops
sending it will send a bye message, so the receiving side will not
expect more frames to be sent when the stream is inactive and the
encoder is no longer encoding/sending images.
Bug: webrtc:8653
Change-Id: Ib6d00240f627b4ff1714646e847026f24c7c3aa4
Reviewed-on: https://webrtc-review.googlesource.com/42841
Commit-Queue: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21880}
diff --git a/call/video_send_stream.h b/call/video_send_stream.h
index ff9c477..b5daa3e 100644
--- a/call/video_send_stream.h
+++ b/call/video_send_stream.h
@@ -252,6 +252,16 @@
Config(const Config&);
};
+ // Updates the sending state for all simulcast layers that the video send
+ // stream owns. This can mean updating the activity one or for multiple
+ // layers. The ordering of active layers is the order in which the
+ // rtp modules are stored in the VideoSendStream.
+ // Note: This starts stream activity if it is inactive and one of the layers
+ // is active. This stops stream activity if it is active and all layers are
+ // inactive.
+ virtual void UpdateActiveSimulcastLayers(
+ const std::vector<bool> active_layers) = 0;
+
// Starts stream activity.
// When a stream is active, it can receive, process and deliver packets.
virtual void Start() = 0;