Negotiating Simulcast in the initial offer/answer - Part1.

This change adds Simulcast negotiation to media session offers/answers.
Next step is to add negotiation logic to PeerConnection.

Bug: webrtc:10075
Change-Id: Iea3a1084c16058f0efbc974cf623ec05c3c7a74f
Reviewed-on: https://webrtc-review.googlesource.com/c/115790
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Amit Hilbuch <amithi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26115}
diff --git a/pc/peerconnection.cc b/pc/peerconnection.cc
index a70ab2e..7f7cebd 100644
--- a/pc/peerconnection.cc
+++ b/pc/peerconnection.cc
@@ -58,8 +58,9 @@
 using cricket::ContentInfo;
 using cricket::ContentInfos;
 using cricket::MediaContentDescription;
-using cricket::SessionDescription;
 using cricket::MediaProtocolType;
+using cricket::SessionDescription;
+using cricket::SimulcastLayerList;
 using cricket::TransportInfo;
 
 using cricket::LOCAL_PORT_TYPE;
@@ -170,7 +171,7 @@
 }
 
 // Add options to |[audio/video]_media_description_options| from |senders|.
-void AddRtpSenderOptions(
+void AddPlanBRtpSenderOptions(
     const std::vector<rtc::scoped_refptr<
         RtpSenderProxyWithInternal<RtpSenderInternal>>>& senders,
     cricket::MediaDescriptionOptions* audio_media_description_options,
@@ -186,8 +187,8 @@
       RTC_DCHECK(sender->media_type() == cricket::MEDIA_TYPE_VIDEO);
       if (video_media_description_options) {
         video_media_description_options->AddVideoSender(
-            sender->id(), sender->internal()->stream_ids(),
-            num_sim_layers);
+            sender->id(), sender->internal()->stream_ids(), {},
+            SimulcastLayerList(), num_sim_layers);
       }
     }
   }
@@ -4014,9 +4015,10 @@
       !video_index ? nullptr
                    : &session_options->media_description_options[*video_index];
 
-  AddRtpSenderOptions(GetSendersInternal(), audio_media_description_options,
-                      video_media_description_options,
-                      offer_answer_options.num_simulcast_layers);
+  AddPlanBRtpSenderOptions(GetSendersInternal(),
+                           audio_media_description_options,
+                           video_media_description_options,
+                           offer_answer_options.num_simulcast_layers);
 }
 
 static cricket::MediaDescriptionOptions
@@ -4241,9 +4243,10 @@
       !video_index ? nullptr
                    : &session_options->media_description_options[*video_index];
 
-  AddRtpSenderOptions(GetSendersInternal(), audio_media_description_options,
-                      video_media_description_options,
-                      offer_answer_options.num_simulcast_layers);
+  AddPlanBRtpSenderOptions(GetSendersInternal(),
+                           audio_media_description_options,
+                           video_media_description_options,
+                           offer_answer_options.num_simulcast_layers);
 }
 
 void PeerConnection::GetOptionsForUnifiedPlanAnswer(