mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
RTC: Refine API params to create connection
This commit is contained in:
parent
51aa899358
commit
a9d39f6946
5 changed files with 183 additions and 211 deletions
|
@ -31,6 +31,7 @@
|
|||
#include <srs_app_reload.hpp>
|
||||
#include <srs_app_hourglass.hpp>
|
||||
#include <srs_app_hybrid.hpp>
|
||||
#include <srs_app_rtc_sdp.hpp>
|
||||
|
||||
#include <string>
|
||||
|
||||
|
@ -84,6 +85,24 @@ public:
|
|||
virtual srs_error_t on_udp_packet(SrsUdpMuxSocket* skt, SrsRtcConnection* session, bool* pconsumed) = 0;
|
||||
};
|
||||
|
||||
// The user config for RTC publish or play.
|
||||
class SrsRtcUserConfig
|
||||
{
|
||||
public:
|
||||
// Original variables from API.
|
||||
SrsSdp remote_sdp_;
|
||||
std::string eip_;
|
||||
|
||||
// Generated data.
|
||||
SrsRequest* req_;
|
||||
bool publish_;
|
||||
bool dtls_;
|
||||
bool srtp_;
|
||||
public:
|
||||
SrsRtcUserConfig();
|
||||
virtual ~SrsRtcUserConfig();
|
||||
};
|
||||
|
||||
// The RTC server instance, listen UDP port, handle UDP packet, manage RTC connections.
|
||||
class SrsRtcServer : virtual public ISrsUdpMuxHandler, virtual public ISrsHourGlass, virtual public ISrsReloadHandler
|
||||
{
|
||||
|
@ -112,16 +131,9 @@ public:
|
|||
srs_error_t listen_api();
|
||||
public:
|
||||
// Peer start offering, we answer it.
|
||||
srs_error_t create_session(
|
||||
SrsRequest* req, const SrsSdp& remote_sdp, SrsSdp& local_sdp, const std::string& mock_eip,
|
||||
bool publish, bool dtls, bool srtp,
|
||||
SrsRtcConnection** psession
|
||||
);
|
||||
srs_error_t create_session(SrsRtcUserConfig* ruc, SrsSdp& local_sdp, SrsRtcConnection** psession);
|
||||
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
|
||||
);
|
||||
srs_error_t do_create_session(SrsRtcUserConfig* ruc, SrsSdp& local_sdp, SrsRtcConnection* session);
|
||||
public:
|
||||
SrsRtcConnection* find_session_by_username(const std::string& ufrag);
|
||||
// interface ISrsHourGlass
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue