Revert "Reland "Ensure RTCRtpSenders are always created with one encoding""

This reverts commit fc5d627cef.

Reason for revert: Breaks upstream WPT tests

Original change's description:
> Reland "Ensure RTCRtpSenders are always created with one encoding"
>
> This is a reland of commit b8023690d9
>
> 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: I2d52fa5b1d7cfdc9dce279fcf9faf1e0129c9008
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/291140
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Florent Castelli <orphis@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#39145}

Bug: webrtc:10567
Change-Id: If9b5adb5debb7c87a15662a8d0f232405a0e8136
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/291221
Auto-Submit: Evan Shrubsole <eshr@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39147}
This commit is contained in:
Evan Shrubsole 2023-01-19 13:56:21 +00:00 committed by WebRTC LUCI CQ
parent 3e61f881cd
commit 9f9671fe7f
3 changed files with 10 additions and 47 deletions

View file

@ -1096,11 +1096,6 @@ PeerConnection::AddTransceiver(
} }
} }
// If no encoding parameters were provided, a default entry is created.
if (parameters.encodings.empty()) {
parameters.encodings.push_back({});
}
if (UnimplementedRtpParameterHasValue(parameters)) { if (UnimplementedRtpParameterHasValue(parameters)) {
LOG_AND_RETURN_ERROR( LOG_AND_RETURN_ERROR(
RTCErrorType::UNSUPPORTED_PARAMETER, RTCErrorType::UNSUPPORTED_PARAMETER,

View file

@ -2834,14 +2834,6 @@ TEST_P(PeerConnectionIntegrationTest, UnsignaledSsrcGetParametersVideo) {
EXPECT_TRUE(parameters.encodings[0].ssrc.has_value()); 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, // 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 // the new stream ID is successfully communicated in SDP and media continues to
// flow end-to-end. // flow end-to-end.
@ -3418,28 +3410,6 @@ TEST_F(PeerConnectionIntegrationTestUnifiedPlan,
} }
} }
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( INSTANTIATE_TEST_SUITE_P(
PeerConnectionIntegrationTest, PeerConnectionIntegrationTest,
PeerConnectionIntegrationTest, PeerConnectionIntegrationTest,

View file

@ -150,11 +150,10 @@ RtpTransmissionManager::AddTrackPlanB(
(track->kind() == MediaStreamTrackInterface::kAudioKind (track->kind() == MediaStreamTrackInterface::kAudioKind
? cricket::MEDIA_TYPE_AUDIO ? cricket::MEDIA_TYPE_AUDIO
: cricket::MEDIA_TYPE_VIDEO); : cricket::MEDIA_TYPE_VIDEO);
auto new_sender = CreateSender( auto new_sender =
media_type, track->id(), track, adjusted_stream_ids, CreateSender(media_type, track->id(), track, adjusted_stream_ids,
init_send_encodings init_send_encodings ? *init_send_encodings
? *init_send_encodings : std::vector<RtpEncodingParameters>());
: std::vector<RtpEncodingParameters>(1, RtpEncodingParameters{}));
if (track->kind() == MediaStreamTrackInterface::kAudioKind) { if (track->kind() == MediaStreamTrackInterface::kAudioKind) {
new_sender->internal()->SetMediaChannel(voice_media_send_channel()); new_sender->internal()->SetMediaChannel(voice_media_send_channel());
GetAudioTransceiver()->internal()->AddSender(new_sender); GetAudioTransceiver()->internal()->AddSender(new_sender);
@ -218,11 +217,10 @@ RtpTransmissionManager::AddTrackUnifiedPlan(
if (FindSenderById(sender_id)) { if (FindSenderById(sender_id)) {
sender_id = rtc::CreateRandomUuid(); sender_id = rtc::CreateRandomUuid();
} }
auto sender = CreateSender( auto sender = CreateSender(media_type, sender_id, track, stream_ids,
media_type, sender_id, track, stream_ids, init_send_encodings
init_send_encodings ? *init_send_encodings
? *init_send_encodings : std::vector<RtpEncodingParameters>());
: std::vector<RtpEncodingParameters>(1, RtpEncodingParameters{}));
auto receiver = CreateReceiver(media_type, rtc::CreateRandomUuid()); auto receiver = CreateReceiver(media_type, rtc::CreateRandomUuid());
transceiver = CreateAndAddTransceiver(sender, receiver); transceiver = CreateAndAddTransceiver(sender, receiver);
transceiver->internal()->set_created_by_addtrack(true); transceiver->internal()->set_created_by_addtrack(true);
@ -413,7 +411,7 @@ void RtpTransmissionManager::AddAudioTrack(AudioTrackInterface* track,
// Normal case; we've never seen this track before. // Normal case; we've never seen this track before.
auto new_sender = CreateSender(cricket::MEDIA_TYPE_AUDIO, track->id(), auto new_sender = CreateSender(cricket::MEDIA_TYPE_AUDIO, track->id(),
rtc::scoped_refptr<AudioTrackInterface>(track), rtc::scoped_refptr<AudioTrackInterface>(track),
{stream->id()}, {{}}); {stream->id()}, {});
new_sender->internal()->SetMediaChannel(voice_media_send_channel()); new_sender->internal()->SetMediaChannel(voice_media_send_channel());
GetAudioTransceiver()->internal()->AddSender(new_sender); GetAudioTransceiver()->internal()->AddSender(new_sender);
// If the sender has already been configured in SDP, we call SetSsrc, // If the sender has already been configured in SDP, we call SetSsrc,
@ -460,7 +458,7 @@ void RtpTransmissionManager::AddVideoTrack(VideoTrackInterface* track,
// Normal case; we've never seen this track before. // Normal case; we've never seen this track before.
auto new_sender = CreateSender(cricket::MEDIA_TYPE_VIDEO, track->id(), auto new_sender = CreateSender(cricket::MEDIA_TYPE_VIDEO, track->id(),
rtc::scoped_refptr<VideoTrackInterface>(track), rtc::scoped_refptr<VideoTrackInterface>(track),
{stream->id()}, {{}}); {stream->id()}, {});
new_sender->internal()->SetMediaChannel(video_media_send_channel()); new_sender->internal()->SetMediaChannel(video_media_send_channel());
GetVideoTransceiver()->internal()->AddSender(new_sender); GetVideoTransceiver()->internal()->AddSender(new_sender);
const RtpSenderInfo* sender_info = const RtpSenderInfo* sender_info =