| Index: webrtc/media/engine/webrtcvideoengine2.cc
|
| diff --git a/webrtc/media/engine/webrtcvideoengine2.cc b/webrtc/media/engine/webrtcvideoengine2.cc
|
| index 0dd8938dc3451758fb0441cb4df457baa6832abe..26d6134a26d1deed77ba38f03fa43e959ab6084a 100644
|
| --- a/webrtc/media/engine/webrtcvideoengine2.cc
|
| +++ b/webrtc/media/engine/webrtcvideoengine2.cc
|
| @@ -733,6 +733,12 @@ bool WebRtcVideoChannel2::GetChangedSendParameters(
|
| params.max_bandwidth_bps == 0 ? -1 : params.max_bandwidth_bps);
|
| }
|
|
|
| + // Handle conference mode.
|
| + if (params.conference_mode != send_params_.conference_mode) {
|
| + changed_params->conference_mode =
|
| + rtc::Optional<bool>(params.conference_mode);
|
| + }
|
| +
|
| // Handle options.
|
| // TODO(pbos): Require VideoSendParameters to contain a full set of options
|
| // and check if params.options != options_ instead of applying a delta.
|
| @@ -1503,6 +1509,7 @@ WebRtcVideoChannel2::WebRtcVideoSendStream::WebRtcVideoSendStream(
|
| first_frame_timestamp_ms_(0),
|
| last_frame_timestamp_ms_(0) {
|
| parameters_.config.rtp.max_packet_size = kVideoMtu;
|
| + parameters_.conference_mode = send_params.conference_mode;
|
|
|
| sp.GetPrimarySsrcs(¶meters_.config.rtp.ssrcs);
|
| sp.GetFidSsrcs(parameters_.config.rtp.ssrcs,
|
| @@ -1792,6 +1799,9 @@ void WebRtcVideoChannel2::WebRtcVideoSendStream::SetSendParameters(
|
| parameters_.max_bitrate_bps = *params.max_bandwidth_bps;
|
| pending_encoder_reconfiguration_ = true;
|
| }
|
| + if (params.conference_mode) {
|
| + parameters_.conference_mode = *params.conference_mode;
|
| + }
|
| // Set codecs and options.
|
| if (params.codec) {
|
| SetCodecAndOptions(*params.codec,
|
| @@ -1806,6 +1816,10 @@ void WebRtcVideoChannel2::WebRtcVideoSendStream::SetSendParameters(
|
| parameters_.options = *params.options;
|
| }
|
| }
|
| + else if (params.conference_mode && parameters_.codec_settings) {
|
| + SetCodecAndOptions(*parameters_.codec_settings, parameters_.options);
|
| + return;
|
| + }
|
| if (recreate_stream) {
|
| LOG(LS_INFO) << "RecreateWebRtcStream (send) because of SetSendParameters";
|
| RecreateWebRtcStream();
|
| @@ -1855,8 +1869,8 @@ WebRtcVideoChannel2::WebRtcVideoSendStream::CreateVideoEncoderConfig(
|
| parameters_.max_bitrate_bps, stream_count);
|
|
|
| // Conference mode screencast uses 2 temporal layers split at 100kbit.
|
| - if (parameters_.options.conference_mode.value_or(false) &&
|
| - dimensions.is_screencast && encoder_config.streams.size() == 1) {
|
| + if (parameters_.conference_mode && dimensions.is_screencast &&
|
| + encoder_config.streams.size() == 1) {
|
| ScreenshareLayerConfig config = ScreenshareLayerConfig::GetDefault();
|
|
|
| // For screenshare in conference mode, tl0 and tl1 bitrates are piggybacked
|
|
|