Revert "Ensure RTCRtpSenders are always created with one encoding"
This reverts commit b8023690d9f0e150cfe698cd68b477903ac66178.
Reason for revert: Breaking WPT tests in Chrome. Example build https://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/1263191/overview
Original change's description:
> Ensure RTCRtpSenders are always created with one encoding
>
> It is possible to have AddTransceiver calls with an empty array
> of encodings or AddTrack calls. In both cases, before negotiation,
> the sender's encodings array would be empty and it was not possible
> to update any value.
>
> Now, a default entry should be created in those cases, allowing to
> update the configuration before negotiation.
>
> Bug: webrtc:10567
> Change-Id: I1271e2965e1a97c1e472451e0ab8867fc24f6c2b
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/290994
> Auto-Submit: Florent Castelli <orphis@webrtc.org>
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Commit-Queue: Florent Castelli <orphis@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#39126}
Bug: webrtc:10567
Change-Id: Ib8931b38182251baac616540788a02a5fafaf670
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/291120
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Auto-Submit: Evan Shrubsole <eshr@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39132}
diff --git a/pc/peer_connection.cc b/pc/peer_connection.cc
index 36ffd11..5633be3 100644
--- a/pc/peer_connection.cc
+++ b/pc/peer_connection.cc
@@ -1096,11 +1096,6 @@
}
}
- // If no encoding parameters were provided, a default entry is created.
- if (parameters.encodings.empty()) {
- parameters.encodings.push_back({});
- }
-
if (UnimplementedRtpParameterHasValue(parameters)) {
LOG_AND_RETURN_ERROR(
RTCErrorType::UNSUPPORTED_PARAMETER,
diff --git a/pc/peer_connection_integrationtest.cc b/pc/peer_connection_integrationtest.cc
index 220415b..f46ef2e 100644
--- a/pc/peer_connection_integrationtest.cc
+++ b/pc/peer_connection_integrationtest.cc
@@ -2834,14 +2834,6 @@
EXPECT_TRUE(parameters.encodings[0].ssrc.has_value());
}
-TEST_P(PeerConnectionIntegrationTest,
- GetParametersHasEncodingsBeforeNegotiation) {
- ASSERT_TRUE(CreatePeerConnectionWrappers());
- auto sender = caller()->AddTrack(caller()->CreateLocalVideoTrack());
- auto parameters = sender->GetParameters();
- EXPECT_EQ(parameters.encodings.size(), 1u);
-}
-
// Test that if a track is removed and added again with a different stream ID,
// the new stream ID is successfully communicated in SDP and media continues to
// flow end-to-end.
@@ -3418,28 +3410,6 @@
}
}
-TEST_F(PeerConnectionIntegrationTestUnifiedPlan,
- GetParametersHasEncodingsBeforeNegotiation) {
- ASSERT_TRUE(CreatePeerConnectionWrappers());
- auto result = caller()->pc()->AddTransceiver(cricket::MEDIA_TYPE_VIDEO);
- auto transceiver = result.MoveValue();
- auto parameters = transceiver->sender()->GetParameters();
- EXPECT_EQ(parameters.encodings.size(), 1u);
-}
-
-TEST_F(PeerConnectionIntegrationTestUnifiedPlan,
- GetParametersHasInitEncodingsBeforeNegotiation) {
- ASSERT_TRUE(CreatePeerConnectionWrappers());
- RtpTransceiverInit init;
- init.send_encodings.push_back({});
- init.send_encodings[0].max_bitrate_bps = 12345;
- auto result = caller()->pc()->AddTransceiver(cricket::MEDIA_TYPE_VIDEO, init);
- auto transceiver = result.MoveValue();
- auto parameters = transceiver->sender()->GetParameters();
- ASSERT_EQ(parameters.encodings.size(), 1u);
- EXPECT_EQ(parameters.encodings[0].max_bitrate_bps, 12345);
-}
-
INSTANTIATE_TEST_SUITE_P(
PeerConnectionIntegrationTest,
PeerConnectionIntegrationTest,
diff --git a/pc/rtp_transmission_manager.cc b/pc/rtp_transmission_manager.cc
index 96b3088..96b748b 100644
--- a/pc/rtp_transmission_manager.cc
+++ b/pc/rtp_transmission_manager.cc
@@ -150,11 +150,10 @@
(track->kind() == MediaStreamTrackInterface::kAudioKind
? cricket::MEDIA_TYPE_AUDIO
: cricket::MEDIA_TYPE_VIDEO);
- auto new_sender = CreateSender(
- media_type, track->id(), track, adjusted_stream_ids,
- init_send_encodings
- ? *init_send_encodings
- : std::vector<RtpEncodingParameters>(1, RtpEncodingParameters{}));
+ auto new_sender =
+ CreateSender(media_type, track->id(), track, adjusted_stream_ids,
+ init_send_encodings ? *init_send_encodings
+ : std::vector<RtpEncodingParameters>());
if (track->kind() == MediaStreamTrackInterface::kAudioKind) {
new_sender->internal()->SetMediaChannel(voice_media_send_channel());
GetAudioTransceiver()->internal()->AddSender(new_sender);
@@ -218,11 +217,10 @@
if (FindSenderById(sender_id)) {
sender_id = rtc::CreateRandomUuid();
}
- auto sender = CreateSender(
- media_type, sender_id, track, stream_ids,
- init_send_encodings
- ? *init_send_encodings
- : std::vector<RtpEncodingParameters>(1, RtpEncodingParameters{}));
+ auto sender = CreateSender(media_type, sender_id, track, stream_ids,
+ init_send_encodings
+ ? *init_send_encodings
+ : std::vector<RtpEncodingParameters>());
auto receiver = CreateReceiver(media_type, rtc::CreateRandomUuid());
transceiver = CreateAndAddTransceiver(sender, receiver);
transceiver->internal()->set_created_by_addtrack(true);
@@ -413,7 +411,7 @@
// Normal case; we've never seen this track before.
auto new_sender = CreateSender(cricket::MEDIA_TYPE_AUDIO, track->id(),
rtc::scoped_refptr<AudioTrackInterface>(track),
- {stream->id()}, {{}});
+ {stream->id()}, {});
new_sender->internal()->SetMediaChannel(voice_media_send_channel());
GetAudioTransceiver()->internal()->AddSender(new_sender);
// If the sender has already been configured in SDP, we call SetSsrc,
@@ -460,7 +458,7 @@
// Normal case; we've never seen this track before.
auto new_sender = CreateSender(cricket::MEDIA_TYPE_VIDEO, track->id(),
rtc::scoped_refptr<VideoTrackInterface>(track),
- {stream->id()}, {{}});
+ {stream->id()}, {});
new_sender->internal()->SetMediaChannel(video_media_send_channel());
GetVideoTransceiver()->internal()->AddSender(new_sender);
const RtpSenderInfo* sender_info =