From b0590ef4febeff3d73ff972897c3ecb4492987b4 Mon Sep 17 00:00:00 2001 From: winlin Date: Fri, 7 Aug 2020 15:45:18 +0800 Subject: [PATCH] RTC: Remove source from conneciton init. --- trunk/src/app/srs_app_rtc_conn.cpp | 3 +-- trunk/src/app/srs_app_rtc_conn.hpp | 3 ++- trunk/src/app/srs_app_rtc_server.cpp | 16 +++++++--------- trunk/src/app/srs_app_rtc_server.hpp | 2 +- 4 files changed, 11 insertions(+), 13 deletions(-) diff --git a/trunk/src/app/srs_app_rtc_conn.cpp b/trunk/src/app/srs_app_rtc_conn.cpp index 960b134ad..30e9977d3 100644 --- a/trunk/src/app/srs_app_rtc_conn.cpp +++ b/trunk/src/app/srs_app_rtc_conn.cpp @@ -1965,8 +1965,7 @@ srs_error_t SrsRtcConnection::add_player2(SrsRequest* req, SrsSdp& local_sdp) return err; } -// TODO: FIXME: Remove unused source. -srs_error_t SrsRtcConnection::initialize(SrsRtcStream* source, SrsRequest* r, bool is_publisher, bool dtls, bool srtp, string username) +srs_error_t SrsRtcConnection::initialize(SrsRequest* r, bool is_publisher, bool dtls, bool srtp, string username) { srs_error_t err = srs_success; diff --git a/trunk/src/app/srs_app_rtc_conn.hpp b/trunk/src/app/srs_app_rtc_conn.hpp index 8f696b226..a35a47d21 100644 --- a/trunk/src/app/srs_app_rtc_conn.hpp +++ b/trunk/src/app/srs_app_rtc_conn.hpp @@ -395,6 +395,7 @@ private: private: // For each RTC session, we use a specified cid for debugging logs. SrsContextId cid; + // TODO: FIXME: Rename to req_. SrsRequest* req; SrsSdp remote_sdp; SrsSdp local_sdp; @@ -431,7 +432,7 @@ public: srs_error_t add_player2(SrsRequest* request, SrsSdp& local_sdp); public: // Before initialize, user must set the local SDP, which is used to inititlize DTLS. - srs_error_t initialize(SrsRtcStream* source, SrsRequest* r, bool is_publisher, bool dtls, bool srtp, std::string username); + srs_error_t initialize(SrsRequest* r, bool is_publisher, bool dtls, bool srtp, std::string username); // The peer address may change, we can identify that by STUN messages. srs_error_t on_stun(SrsUdpMuxSocket* skt, SrsStunPacket* r); srs_error_t on_dtls(char* data, int nb_data); diff --git a/trunk/src/app/srs_app_rtc_server.cpp b/trunk/src/app/srs_app_rtc_server.cpp index c24a61a0d..1c8c6d747 100644 --- a/trunk/src/app/srs_app_rtc_server.cpp +++ b/trunk/src/app/srs_app_rtc_server.cpp @@ -398,7 +398,7 @@ srs_error_t SrsRtcServer::create_session( // TODO: FIXME: add do_create_session to error process. SrsRtcConnection* session = new SrsRtcConnection(this, cid); - if ((err = do_create_session(session, req, remote_sdp, local_sdp, mock_eip, publish, dtls, srtp, source)) != srs_success) { + if ((err = do_create_session(session, req, remote_sdp, local_sdp, mock_eip, publish, dtls, srtp)) != srs_success) { srs_freep(session); return srs_error_wrap(err, "create session"); } @@ -410,7 +410,7 @@ srs_error_t SrsRtcServer::create_session( srs_error_t SrsRtcServer::do_create_session( SrsRtcConnection* session, SrsRequest* req, const SrsSdp& remote_sdp, SrsSdp& local_sdp, const std::string& mock_eip, - bool publish, bool dtls, bool srtp, SrsRtcStream* source + bool publish, bool dtls, bool srtp ) { srs_error_t err = srs_success; @@ -478,11 +478,13 @@ srs_error_t SrsRtcServer::do_create_session( session->set_state(WAITING_STUN); // Before session initialize, we must setup the local SDP. - if ((err = session->initialize(source, req, publish, dtls, srtp, username)) != srs_success) { + if ((err = session->initialize(req, publish, dtls, srtp, username)) != srs_success) { return srs_error_wrap(err, "init"); } + // We allows username is optional, but it never empty here. map_username_session.insert(make_pair(username, session)); + return err; } @@ -536,18 +538,14 @@ srs_error_t SrsRtcServer::setup_session2(SrsRtcConnection* session, SrsRequest* return err; } - SrsRtcStream* source = NULL; - if ((err = _srs_rtc_sources->fetch_or_create(req, &source)) != srs_success) { - return srs_error_wrap(err, "create source"); - } - // TODO: FIXME: Collision detect. string username = session->get_local_sdp()->get_ice_ufrag() + ":" + remote_sdp.get_ice_ufrag(); - if ((err = session->initialize(source, req, false, true, true, username)) != srs_success) { + if ((err = session->initialize(req, false, true, true, username)) != srs_success) { return srs_error_wrap(err, "init"); } + // We allows username is optional, but it never empty here. map_username_session.insert(make_pair(username, session)); session->set_remote_sdp(remote_sdp); diff --git a/trunk/src/app/srs_app_rtc_server.hpp b/trunk/src/app/srs_app_rtc_server.hpp index f6eba2a94..aa02b7425 100644 --- a/trunk/src/app/srs_app_rtc_server.hpp +++ b/trunk/src/app/srs_app_rtc_server.hpp @@ -109,7 +109,7 @@ public: private: srs_error_t do_create_session( SrsRtcConnection* session, SrsRequest* req, const SrsSdp& remote_sdp, SrsSdp& local_sdp, - const std::string& mock_eip, bool publish, bool dtls, bool srtp, SrsRtcStream* source + const std::string& mock_eip, bool publish, bool dtls, bool srtp ); public: // We start offering, create_session2 to generate offer, setup_session2 to handle answer.