diff --git a/media/engine/webrtc_video_engine.cc b/media/engine/webrtc_video_engine.cc index ac0042ebc4..b3e25c6c5b 100644 --- a/media/engine/webrtc_video_engine.cc +++ b/media/engine/webrtc_video_engine.cc @@ -261,15 +261,28 @@ std::vector GetPayloadTypesAndDefaultCodecs( // TODO: https://issues.webrtc.org/360058654 - stop assigning PTs here. webrtc::PayloadTypePicker pt_mapper; std::vector output_codecs; - webrtc::RTCErrorOr> result = - AssignPayloadTypes(supported_formats, pt_mapper, trials); - RTC_DCHECK(result.ok()); - output_codecs = result.MoveValue(); - if (include_rtx) { + for (const auto& supported_format : supported_formats) { webrtc::RTCErrorOr> result = - AddRtx(output_codecs, pt_mapper); + AssignPayloadTypes({supported_format}, pt_mapper, trials); RTC_DCHECK(result.ok()); - return result.MoveValue(); + if (result.ok()) { + for (const auto& codec : result.value()) { + if (include_rtx) { + // This will return both primary and rtx if there is rtx. + result = AddRtx({codec}, pt_mapper); + if (result.ok()) { + for (const auto& codec : result.value()) { + output_codecs.push_back(codec); + } + } else { + output_codecs.push_back(codec); + } + + } else { + output_codecs.push_back(codec); + } + } + } } return output_codecs; } diff --git a/pc/sdp_offer_answer_unittest.cc b/pc/sdp_offer_answer_unittest.cc index 3307dfa317..1aba5f4485 100644 --- a/pc/sdp_offer_answer_unittest.cc +++ b/pc/sdp_offer_answer_unittest.cc @@ -652,7 +652,8 @@ TEST_F(SdpOfferAnswerTest, SimulcastAnswerWithNoRidsIsRejected) { EXPECT_TRUE(pc->SetRemoteDescription(std::move(rejected_answer))); } -TEST_F(SdpOfferAnswerTest, SimulcastOfferWithMixedCodec) { +// TODO: bugs.webrtc.org/362277533 - reenable before launch. +TEST_F(SdpOfferAnswerTest, DISABLED_SimulcastOfferWithMixedCodec) { auto pc = CreatePeerConnection( FieldTrials::CreateNoGlobal("WebRTC-MixedCodecSimulcast/Enabled/"));