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(