diff --git a/pc/media_session.cc b/pc/media_session.cc index 2a8a22b3a7..27d718b782 100644 --- a/pc/media_session.cc +++ b/pc/media_session.cc @@ -1565,18 +1565,14 @@ bool MediaSessionOptions::HasMediaDescription(MediaType type) const { [type](const MediaDescriptionOptions& t) { return t.type == type; }); } -MediaSessionDescriptionFactory::MediaSessionDescriptionFactory( - const TransportDescriptionFactory* transport_desc_factory, - rtc::UniqueRandomIdGenerator* ssrc_generator) - : ssrc_generator_(ssrc_generator), - transport_desc_factory_(transport_desc_factory) {} - MediaSessionDescriptionFactory::MediaSessionDescriptionFactory( cricket::MediaEngineInterface* media_engine, bool rtx_enabled, rtc::UniqueRandomIdGenerator* ssrc_generator, const TransportDescriptionFactory* transport_desc_factory) - : MediaSessionDescriptionFactory(transport_desc_factory, ssrc_generator) { + : ssrc_generator_(ssrc_generator), + transport_desc_factory_(transport_desc_factory) { + RTC_CHECK(transport_desc_factory_); if (media_engine) { audio_send_codecs_ = media_engine->voice().send_codecs(); audio_recv_codecs_ = media_engine->voice().recv_codecs(); @@ -2227,10 +2223,6 @@ RTCError MediaSessionDescriptionFactory::AddTransportOffer( const SessionDescription* current_desc, SessionDescription* offer_desc, IceCredentialsIterator* ice_credentials) const { - if (!transport_desc_factory_) { - LOG_AND_RETURN_ERROR(RTCErrorType::INTERNAL_ERROR, - "Missing transport description factory"); - } const TransportDescription* current_tdesc = GetTransportDescription(content_name, current_desc); std::unique_ptr new_tdesc( @@ -2252,9 +2244,6 @@ MediaSessionDescriptionFactory::CreateTransportAnswer( const SessionDescription* current_desc, bool require_transport_attributes, IceCredentialsIterator* ice_credentials) const { - if (!transport_desc_factory_) { - return nullptr; - } const TransportDescription* offer_tdesc = GetTransportDescription(content_name, offer_desc); const TransportDescription* current_tdesc = diff --git a/pc/media_session.h b/pc/media_session.h index 25adeed0ce..3100fb6fdb 100644 --- a/pc/media_session.h +++ b/pc/media_session.h @@ -139,16 +139,11 @@ struct MediaSessionOptions { // of the various fields to determine the proper result. class MediaSessionDescriptionFactory { public: - // Simple constructor that does not set any configuration for the factory. - // When using this constructor, the methods below can be used to set the - // configuration. + // This constructor automatically sets up the factory to get its configuration + // from the specified MediaEngine (when provided). // The TransportDescriptionFactory and the UniqueRandomIdGenerator are not // owned by MediaSessionDescriptionFactory, so they must be kept alive by the // user of this class. - MediaSessionDescriptionFactory(const TransportDescriptionFactory* factory, - rtc::UniqueRandomIdGenerator* ssrc_generator); - // This helper automatically sets up the factory to get its configuration - // from the specified MediaEngine MediaSessionDescriptionFactory(cricket::MediaEngineInterface* media_engine, bool rtx_enabled, rtc::UniqueRandomIdGenerator* ssrc_generator, diff --git a/pc/media_session_unittest.cc b/pc/media_session_unittest.cc index 3f52d5c1cc..753e8cd9c7 100644 --- a/pc/media_session_unittest.cc +++ b/pc/media_session_unittest.cc @@ -438,8 +438,8 @@ class MediaSessionDescriptionFactoryTest : public ::testing::Test { MediaSessionDescriptionFactoryTest() : tdf1_(field_trials), tdf2_(field_trials), - f1_(&tdf1_, &ssrc_generator1), - f2_(&tdf2_, &ssrc_generator2) { + f1_(nullptr, false, &ssrc_generator1, &tdf1_), + f2_(nullptr, false, &ssrc_generator2, &tdf2_) { f1_.set_audio_codecs(MAKE_VECTOR(kAudioCodecs1), MAKE_VECTOR(kAudioCodecs1)); f1_.set_video_codecs(MAKE_VECTOR(kVideoCodecs1), @@ -4589,8 +4589,8 @@ class MediaProtocolTest : public ::testing::TestWithParam { MediaProtocolTest() : tdf1_(field_trials_), tdf2_(field_trials_), - f1_(&tdf1_, &ssrc_generator1), - f2_(&tdf2_, &ssrc_generator2) { + f1_(nullptr, false, &ssrc_generator1, &tdf1_), + f2_(nullptr, false, &ssrc_generator2, &tdf2_) { f1_.set_audio_codecs(MAKE_VECTOR(kAudioCodecs1), MAKE_VECTOR(kAudioCodecs1)); f1_.set_video_codecs(MAKE_VECTOR(kVideoCodecs1), @@ -4654,7 +4654,7 @@ TEST_F(MediaSessionDescriptionFactoryTest, TestSetAudioCodecs) { webrtc::test::ScopedKeyValueConfig field_trials; TransportDescriptionFactory tdf(field_trials); UniqueRandomIdGenerator ssrc_generator; - MediaSessionDescriptionFactory sf(&tdf, &ssrc_generator); + MediaSessionDescriptionFactory sf(nullptr, false, &ssrc_generator, &tdf); std::vector send_codecs = MAKE_VECTOR(kAudioCodecs1); std::vector recv_codecs = MAKE_VECTOR(kAudioCodecs2); @@ -4726,7 +4726,7 @@ void TestAudioCodecsOffer(RtpTransceiverDirection direction) { webrtc::test::ScopedKeyValueConfig field_trials; TransportDescriptionFactory tdf(field_trials); UniqueRandomIdGenerator ssrc_generator; - MediaSessionDescriptionFactory sf(&tdf, &ssrc_generator); + MediaSessionDescriptionFactory sf(nullptr, false, &ssrc_generator, &tdf); const std::vector send_codecs = MAKE_VECTOR(kAudioCodecs1); const std::vector recv_codecs = MAKE_VECTOR(kAudioCodecs2); const std::vector sendrecv_codecs = @@ -4829,8 +4829,10 @@ void TestAudioCodecsAnswer(RtpTransceiverDirection offer_direction, TransportDescriptionFactory offer_tdf(field_trials); TransportDescriptionFactory answer_tdf(field_trials); UniqueRandomIdGenerator ssrc_generator1, ssrc_generator2; - MediaSessionDescriptionFactory offer_factory(&offer_tdf, &ssrc_generator1); - MediaSessionDescriptionFactory answer_factory(&answer_tdf, &ssrc_generator2); + MediaSessionDescriptionFactory offer_factory(nullptr, false, &ssrc_generator1, + &offer_tdf); + MediaSessionDescriptionFactory answer_factory(nullptr, false, + &ssrc_generator2, &answer_tdf); offer_factory.set_audio_codecs( VectorFromIndices(kOfferAnswerCodecs, kOfferSendCodecs),