| 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
 | 
| 
 |