RTC: Rename SrsRtcPlayer to SrsRtcPlayStream, SrsRtcPublisher to SrsRtcPublishStream

pull/1882/head
winlin 5 years ago
parent 4c73b9a819
commit 428b9f14c0

@ -271,7 +271,7 @@ SrsRtcOutgoingInfo::~SrsRtcOutgoingInfo()
{ {
} }
SrsRtcPlayer::SrsRtcPlayer(SrsRtcConnection* s, SrsContextId parent_cid) SrsRtcPlayStream::SrsRtcPlayStream(SrsRtcConnection* s, SrsContextId parent_cid)
{ {
_parent_cid = parent_cid; _parent_cid = parent_cid;
trd = new SrsDummyCoroutine(); trd = new SrsDummyCoroutine();
@ -291,7 +291,7 @@ SrsRtcPlayer::SrsRtcPlayer(SrsRtcConnection* s, SrsContextId parent_cid)
_srs_config->subscribe(this); _srs_config->subscribe(this);
} }
SrsRtcPlayer::~SrsRtcPlayer() SrsRtcPlayStream::~SrsRtcPlayStream()
{ {
_srs_config->unsubscribe(this); _srs_config->unsubscribe(this);
@ -300,7 +300,7 @@ SrsRtcPlayer::~SrsRtcPlayer()
srs_freep(video_queue_); srs_freep(video_queue_);
} }
srs_error_t SrsRtcPlayer::initialize(uint32_t vssrc, uint32_t assrc, uint16_t v_pt, uint16_t a_pt) srs_error_t SrsRtcPlayStream::initialize(uint32_t vssrc, uint32_t assrc, uint16_t v_pt, uint16_t a_pt)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -324,7 +324,7 @@ srs_error_t SrsRtcPlayer::initialize(uint32_t vssrc, uint32_t assrc, uint16_t v_
return err; return err;
} }
srs_error_t SrsRtcPlayer::on_reload_vhost_play(string vhost) srs_error_t SrsRtcPlayStream::on_reload_vhost_play(string vhost)
{ {
SrsRequest* req = session_->req; SrsRequest* req = session_->req;
@ -340,17 +340,17 @@ srs_error_t SrsRtcPlayer::on_reload_vhost_play(string vhost)
return srs_success; return srs_success;
} }
srs_error_t SrsRtcPlayer::on_reload_vhost_realtime(string vhost) srs_error_t SrsRtcPlayStream::on_reload_vhost_realtime(string vhost)
{ {
return on_reload_vhost_play(vhost); return on_reload_vhost_play(vhost);
} }
SrsContextId SrsRtcPlayer::cid() SrsContextId SrsRtcPlayStream::cid()
{ {
return trd->cid(); return trd->cid();
} }
srs_error_t SrsRtcPlayer::start() srs_error_t SrsRtcPlayStream::start()
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -364,17 +364,17 @@ srs_error_t SrsRtcPlayer::start()
return err; return err;
} }
void SrsRtcPlayer::stop() void SrsRtcPlayStream::stop()
{ {
trd->stop(); trd->stop();
} }
void SrsRtcPlayer::stop_loop() void SrsRtcPlayStream::stop_loop()
{ {
trd->interrupt(); trd->interrupt();
} }
srs_error_t SrsRtcPlayer::cycle() srs_error_t SrsRtcPlayStream::cycle()
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -470,7 +470,7 @@ srs_error_t SrsRtcPlayer::cycle()
} }
} }
srs_error_t SrsRtcPlayer::send_packets(SrsRtcSource* source, const vector<SrsRtpPacket2*>& pkts, SrsRtcOutgoingInfo& info) srs_error_t SrsRtcPlayStream::send_packets(SrsRtcSource* source, const vector<SrsRtpPacket2*>& pkts, SrsRtcOutgoingInfo& info)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -512,7 +512,7 @@ srs_error_t SrsRtcPlayer::send_packets(SrsRtcSource* source, const vector<SrsRtp
return err; return err;
} }
srs_error_t SrsRtcPlayer::do_send_packets(const std::vector<SrsRtpPacket2*>& pkts, SrsRtcOutgoingInfo& info) srs_error_t SrsRtcPlayStream::do_send_packets(const std::vector<SrsRtpPacket2*>& pkts, SrsRtcOutgoingInfo& info)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -596,7 +596,7 @@ srs_error_t SrsRtcPlayer::do_send_packets(const std::vector<SrsRtpPacket2*>& pkt
return err; return err;
} }
void SrsRtcPlayer::nack_fetch(vector<SrsRtpPacket2*>& pkts, uint32_t ssrc, uint16_t seq) void SrsRtcPlayStream::nack_fetch(vector<SrsRtpPacket2*>& pkts, uint32_t ssrc, uint16_t seq)
{ {
SrsRtpPacket2* pkt = NULL; SrsRtpPacket2* pkt = NULL;
@ -611,12 +611,12 @@ void SrsRtcPlayer::nack_fetch(vector<SrsRtpPacket2*>& pkts, uint32_t ssrc, uint1
} }
} }
void SrsRtcPlayer::simulate_nack_drop(int nn) void SrsRtcPlayStream::simulate_nack_drop(int nn)
{ {
nn_simulate_nack_drop = nn; nn_simulate_nack_drop = nn;
} }
void SrsRtcPlayer::simulate_drop_packet(SrsRtpHeader* h, int nn_bytes) void SrsRtcPlayStream::simulate_drop_packet(SrsRtpHeader* h, int nn_bytes)
{ {
srs_warn("RTC NACK simulator #%d drop seq=%u, ssrc=%u/%s, ts=%u, %d bytes", nn_simulate_nack_drop, srs_warn("RTC NACK simulator #%d drop seq=%u, ssrc=%u/%s, ts=%u, %d bytes", nn_simulate_nack_drop,
h->get_sequence(), h->get_ssrc(), (h->get_ssrc()==video_ssrc? "Video":"Audio"), h->get_timestamp(), h->get_sequence(), h->get_ssrc(), (h->get_ssrc()==video_ssrc? "Video":"Audio"), h->get_timestamp(),
@ -625,7 +625,7 @@ void SrsRtcPlayer::simulate_drop_packet(SrsRtpHeader* h, int nn_bytes)
nn_simulate_nack_drop--; nn_simulate_nack_drop--;
} }
srs_error_t SrsRtcPlayer::on_rtcp(char* data, int nb_data) srs_error_t SrsRtcPlayStream::on_rtcp(char* data, int nb_data)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -690,21 +690,21 @@ srs_error_t SrsRtcPlayer::on_rtcp(char* data, int nb_data)
return err; return err;
} }
srs_error_t SrsRtcPlayer::on_rtcp_sr(char* buf, int nb_buf) srs_error_t SrsRtcPlayStream::on_rtcp_sr(char* buf, int nb_buf)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
// TODO: FIXME: Implements it. // TODO: FIXME: Implements it.
return err; return err;
} }
srs_error_t SrsRtcPlayer::on_rtcp_xr(char* buf, int nb_buf) srs_error_t SrsRtcPlayStream::on_rtcp_xr(char* buf, int nb_buf)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
// TODO: FIXME: Implements it. // TODO: FIXME: Implements it.
return err; return err;
} }
srs_error_t SrsRtcPlayer::on_rtcp_feedback(char* buf, int nb_buf) srs_error_t SrsRtcPlayStream::on_rtcp_feedback(char* buf, int nb_buf)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -790,7 +790,7 @@ srs_error_t SrsRtcPlayer::on_rtcp_feedback(char* buf, int nb_buf)
return err; return err;
} }
srs_error_t SrsRtcPlayer::on_rtcp_ps_feedback(char* buf, int nb_buf) srs_error_t SrsRtcPlayStream::on_rtcp_ps_feedback(char* buf, int nb_buf)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -840,14 +840,14 @@ srs_error_t SrsRtcPlayer::on_rtcp_ps_feedback(char* buf, int nb_buf)
return err; return err;
} }
srs_error_t SrsRtcPlayer::on_rtcp_rr(char* data, int nb_data) srs_error_t SrsRtcPlayStream::on_rtcp_rr(char* data, int nb_data)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
// TODO: FIXME: Implements it. // TODO: FIXME: Implements it.
return err; return err;
} }
SrsRtcPublisher::SrsRtcPublisher(SrsRtcConnection* session) SrsRtcPublishStream::SrsRtcPublishStream(SrsRtcConnection* session)
{ {
report_timer = new SrsHourGlass(this, 200 * SRS_UTIME_MILLISECONDS); report_timer = new SrsHourGlass(this, 200 * SRS_UTIME_MILLISECONDS);
@ -869,7 +869,7 @@ SrsRtcPublisher::SrsRtcPublisher(SrsRtcConnection* session)
twcc_fb_count_ = 0; twcc_fb_count_ = 0;
} }
SrsRtcPublisher::~SrsRtcPublisher() SrsRtcPublishStream::~SrsRtcPublishStream()
{ {
// TODO: FIXME: Do unpublish when session timeout. // TODO: FIXME: Do unpublish when session timeout.
if (source) { if (source) {
@ -884,7 +884,7 @@ SrsRtcPublisher::~SrsRtcPublisher()
srs_freep(audio_queue_); srs_freep(audio_queue_);
} }
srs_error_t SrsRtcPublisher::initialize(uint32_t vssrc, uint32_t assrc, int twcc_id, SrsRequest* r) srs_error_t SrsRtcPublishStream::initialize(uint32_t vssrc, uint32_t assrc, int twcc_id, SrsRequest* r)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -934,7 +934,7 @@ srs_error_t SrsRtcPublisher::initialize(uint32_t vssrc, uint32_t assrc, int twcc
return err; return err;
} }
void SrsRtcPublisher::check_send_nacks(SrsRtpNackForReceiver* nack, uint32_t ssrc) void SrsRtcPublishStream::check_send_nacks(SrsRtpNackForReceiver* nack, uint32_t ssrc)
{ {
// If DTLS is not OK, drop all messages. // If DTLS is not OK, drop all messages.
if (!session_->transport_) { if (!session_->transport_) {
@ -984,7 +984,7 @@ void SrsRtcPublisher::check_send_nacks(SrsRtpNackForReceiver* nack, uint32_t ssr
} }
} }
srs_error_t SrsRtcPublisher::send_rtcp_rr(uint32_t ssrc, SrsRtpRingBuffer* rtp_queue) srs_error_t SrsRtcPublishStream::send_rtcp_rr(uint32_t ssrc, SrsRtpRingBuffer* rtp_queue)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -1042,7 +1042,7 @@ srs_error_t SrsRtcPublisher::send_rtcp_rr(uint32_t ssrc, SrsRtpRingBuffer* rtp_q
return err; return err;
} }
srs_error_t SrsRtcPublisher::send_rtcp_xr_rrtr(uint32_t ssrc) srs_error_t SrsRtcPublishStream::send_rtcp_xr_rrtr(uint32_t ssrc)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -1103,7 +1103,7 @@ srs_error_t SrsRtcPublisher::send_rtcp_xr_rrtr(uint32_t ssrc)
return err; return err;
} }
srs_error_t SrsRtcPublisher::send_rtcp_fb_pli(uint32_t ssrc) srs_error_t SrsRtcPublishStream::send_rtcp_fb_pli(uint32_t ssrc)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -1140,12 +1140,12 @@ srs_error_t SrsRtcPublisher::send_rtcp_fb_pli(uint32_t ssrc)
return err; return err;
} }
srs_error_t SrsRtcPublisher::on_twcc(uint16_t sn) { srs_error_t SrsRtcPublishStream::on_twcc(uint16_t sn) {
srs_utime_t now = srs_get_system_time(); srs_utime_t now = srs_get_system_time();
return rtcp_twcc_.recv_packet(sn, now); return rtcp_twcc_.recv_packet(sn, now);
} }
srs_error_t SrsRtcPublisher::on_rtp(char* data, int nb_data) srs_error_t SrsRtcPublishStream::on_rtp(char* data, int nb_data)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -1254,7 +1254,7 @@ srs_error_t SrsRtcPublisher::on_rtp(char* data, int nb_data)
return err; return err;
} }
void SrsRtcPublisher::on_before_decode_payload(SrsRtpPacket2* pkt, SrsBuffer* buf, ISrsRtpPayloader** ppayload) void SrsRtcPublishStream::on_before_decode_payload(SrsRtpPacket2* pkt, SrsBuffer* buf, ISrsRtpPayloader** ppayload)
{ {
// No payload, ignore. // No payload, ignore.
if (buf->empty()) { if (buf->empty()) {
@ -1276,7 +1276,7 @@ void SrsRtcPublisher::on_before_decode_payload(SrsRtpPacket2* pkt, SrsBuffer* bu
} }
} }
srs_error_t SrsRtcPublisher::on_audio(SrsRtpPacket2* pkt) srs_error_t SrsRtcPublishStream::on_audio(SrsRtpPacket2* pkt)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -1288,7 +1288,7 @@ srs_error_t SrsRtcPublisher::on_audio(SrsRtpPacket2* pkt)
return err; return err;
} }
srs_error_t SrsRtcPublisher::on_video(SrsRtpPacket2* pkt) srs_error_t SrsRtcPublishStream::on_video(SrsRtpPacket2* pkt)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -1307,7 +1307,7 @@ srs_error_t SrsRtcPublisher::on_video(SrsRtpPacket2* pkt)
return err; return err;
} }
srs_error_t SrsRtcPublisher::on_nack(SrsRtpPacket2* pkt) srs_error_t SrsRtcPublishStream::on_nack(SrsRtpPacket2* pkt)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -1352,7 +1352,7 @@ srs_error_t SrsRtcPublisher::on_nack(SrsRtpPacket2* pkt)
return err; return err;
} }
srs_error_t SrsRtcPublisher::send_periodic_twcc() srs_error_t SrsRtcPublishStream::send_periodic_twcc()
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
srs_utime_t now = srs_get_system_time(); srs_utime_t now = srs_get_system_time();
@ -1381,7 +1381,7 @@ srs_error_t SrsRtcPublisher::send_periodic_twcc()
return err; return err;
} }
srs_error_t SrsRtcPublisher::on_rtcp(char* data, int nb_data) srs_error_t SrsRtcPublishStream::on_rtcp(char* data, int nb_data)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -1446,7 +1446,7 @@ srs_error_t SrsRtcPublisher::on_rtcp(char* data, int nb_data)
return err; return err;
} }
srs_error_t SrsRtcPublisher::on_rtcp_sr(char* buf, int nb_buf) srs_error_t SrsRtcPublishStream::on_rtcp_sr(char* buf, int nb_buf)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -1537,7 +1537,7 @@ block +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
return err; return err;
} }
srs_error_t SrsRtcPublisher::on_rtcp_xr(char* buf, int nb_buf) srs_error_t SrsRtcPublishStream::on_rtcp_xr(char* buf, int nb_buf)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -1601,14 +1601,14 @@ srs_error_t SrsRtcPublisher::on_rtcp_xr(char* buf, int nb_buf)
return err; return err;
} }
srs_error_t SrsRtcPublisher::on_rtcp_feedback(char* buf, int nb_buf) srs_error_t SrsRtcPublishStream::on_rtcp_feedback(char* buf, int nb_buf)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
// TODO: FIXME: Implements it. // TODO: FIXME: Implements it.
return err; return err;
} }
srs_error_t SrsRtcPublisher::on_rtcp_ps_feedback(char* buf, int nb_buf) srs_error_t SrsRtcPublishStream::on_rtcp_ps_feedback(char* buf, int nb_buf)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -1654,7 +1654,7 @@ srs_error_t SrsRtcPublisher::on_rtcp_ps_feedback(char* buf, int nb_buf)
return err; return err;
} }
srs_error_t SrsRtcPublisher::on_rtcp_rr(char* buf, int nb_buf) srs_error_t SrsRtcPublishStream::on_rtcp_rr(char* buf, int nb_buf)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -1723,7 +1723,7 @@ block +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
return err; return err;
} }
void SrsRtcPublisher::request_keyframe() void SrsRtcPublishStream::request_keyframe()
{ {
SrsContextId scid = _srs_context->get_id(); SrsContextId scid = _srs_context->get_id();
SrsContextId pcid = session_->context_id(); SrsContextId pcid = session_->context_id();
@ -1732,7 +1732,7 @@ void SrsRtcPublisher::request_keyframe()
request_keyframe_ = true; request_keyframe_ = true;
} }
srs_error_t SrsRtcPublisher::notify(int type, srs_utime_t interval, srs_utime_t tick) srs_error_t SrsRtcPublishStream::notify(int type, srs_utime_t interval, srs_utime_t tick)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -1750,12 +1750,12 @@ srs_error_t SrsRtcPublisher::notify(int type, srs_utime_t interval, srs_utime_t
return err; return err;
} }
void SrsRtcPublisher::simulate_nack_drop(int nn) void SrsRtcPublishStream::simulate_nack_drop(int nn)
{ {
nn_simulate_nack_drop = nn; nn_simulate_nack_drop = nn;
} }
void SrsRtcPublisher::simulate_drop_packet(SrsRtpHeader* h, int nn_bytes) void SrsRtcPublishStream::simulate_drop_packet(SrsRtpHeader* h, int nn_bytes)
{ {
srs_warn("RTC NACK simulator #%d drop seq=%u, ssrc=%u/%s, ts=%u, %d bytes", nn_simulate_nack_drop, srs_warn("RTC NACK simulator #%d drop seq=%u, ssrc=%u/%s, ts=%u, %d bytes", nn_simulate_nack_drop,
h->get_sequence(), h->get_ssrc(), (h->get_ssrc()==video_ssrc? "Video":"Audio"), h->get_timestamp(), h->get_sequence(), h->get_ssrc(), (h->get_ssrc()==video_ssrc? "Video":"Audio"), h->get_timestamp(),
@ -2019,7 +2019,7 @@ srs_error_t SrsRtcConnection::start_play()
if (player_) { if (player_) {
return err; return err;
} }
player_ = new SrsRtcPlayer(this, _srs_context->get_id()); player_ = new SrsRtcPlayStream(this, _srs_context->get_id());
uint32_t video_ssrc = 0; uint32_t video_ssrc = 0;
uint32_t audio_ssrc = 0; uint32_t audio_ssrc = 0;
@ -2037,11 +2037,11 @@ srs_error_t SrsRtcConnection::start_play()
} }
if ((err = player_->initialize(video_ssrc, audio_ssrc, video_payload_type, audio_payload_type)) != srs_success) { if ((err = player_->initialize(video_ssrc, audio_ssrc, video_payload_type, audio_payload_type)) != srs_success) {
return srs_error_wrap(err, "SrsRtcPlayer init"); return srs_error_wrap(err, "SrsRtcPlayStream init");
} }
if ((err = player_->start()) != srs_success) { if ((err = player_->start()) != srs_success) {
return srs_error_wrap(err, "start SrsRtcPlayer"); return srs_error_wrap(err, "start SrsRtcPlayStream");
} }
return err; return err;
@ -2056,7 +2056,7 @@ srs_error_t SrsRtcConnection::start_publish()
if (publisher_) { if (publisher_) {
return err; return err;
} }
publisher_ = new SrsRtcPublisher(this); publisher_ = new SrsRtcPublishStream(this);
// Request PLI for exists players? // Request PLI for exists players?
//publisher_->request_keyframe(); //publisher_->request_keyframe();

@ -182,7 +182,8 @@ public:
virtual ~SrsRtcOutgoingInfo(); virtual ~SrsRtcOutgoingInfo();
}; };
class SrsRtcPlayer : virtual public ISrsCoroutineHandler, virtual public ISrsReloadHandler // A RTC play stream, client pull and play stream from SRS.
class SrsRtcPlayStream : virtual public ISrsCoroutineHandler, virtual public ISrsReloadHandler
{ {
protected: protected:
SrsContextId _parent_cid; SrsContextId _parent_cid;
@ -208,8 +209,8 @@ private:
// Whether enabled nack. // Whether enabled nack.
bool nack_enabled_; bool nack_enabled_;
public: public:
SrsRtcPlayer(SrsRtcConnection* s, SrsContextId parent_cid); SrsRtcPlayStream(SrsRtcConnection* s, SrsContextId parent_cid);
virtual ~SrsRtcPlayer(); virtual ~SrsRtcPlayStream();
public: public:
srs_error_t initialize(uint32_t vssrc, uint32_t assrc, uint16_t v_pt, uint16_t a_pt); srs_error_t initialize(uint32_t vssrc, uint32_t assrc, uint16_t v_pt, uint16_t a_pt);
// interface ISrsReloadHandler // interface ISrsReloadHandler
@ -242,7 +243,8 @@ private:
srs_error_t on_rtcp_rr(char* data, int nb_data); srs_error_t on_rtcp_rr(char* data, int nb_data);
}; };
class SrsRtcPublisher : virtual public ISrsHourGlass, virtual public ISrsRtpPacketDecodeHandler, virtual public ISrsRtcPublishStream // A RTC publish stream, client push and publish stream to SRS.
class SrsRtcPublishStream : virtual public ISrsHourGlass, virtual public ISrsRtpPacketDecodeHandler, virtual public ISrsRtcPublishStream
{ {
private: private:
SrsHourGlass* report_timer; SrsHourGlass* report_timer;
@ -275,8 +277,8 @@ private:
SrsRtcpTWCC rtcp_twcc_; SrsRtcpTWCC rtcp_twcc_;
SrsRtpExtensionTypes extension_types_; SrsRtpExtensionTypes extension_types_;
public: public:
SrsRtcPublisher(SrsRtcConnection* session); SrsRtcPublishStream(SrsRtcConnection* session);
virtual ~SrsRtcPublisher(); virtual ~SrsRtcPublishStream();
public: public:
srs_error_t initialize(uint32_t vssrc, uint32_t assrc, int twcc_id, SrsRequest* req); srs_error_t initialize(uint32_t vssrc, uint32_t assrc, int twcc_id, SrsRequest* req);
private: private:
@ -317,16 +319,16 @@ private:
class SrsRtcConnection class SrsRtcConnection
{ {
friend class SrsSecurityTransport; friend class SrsSecurityTransport;
friend class SrsRtcPlayer; friend class SrsRtcPlayStream;
friend class SrsRtcPublisher; friend class SrsRtcPublishStream;
public: public:
bool disposing_; bool disposing_;
private: private:
SrsRtcServer* server_; SrsRtcServer* server_;
SrsRtcConnectionStateType state_; SrsRtcConnectionStateType state_;
SrsSecurityTransport* transport_; SrsSecurityTransport* transport_;
SrsRtcPlayer* player_; SrsRtcPlayStream* player_;
SrsRtcPublisher* publisher_; SrsRtcPublishStream* publisher_;
bool is_publisher_; bool is_publisher_;
private: private:
SrsUdpMuxSocket* sendonly_skt; SrsUdpMuxSocket* sendonly_skt;
@ -402,13 +404,13 @@ public:
virtual ~ISrsRtcHijacker(); virtual ~ISrsRtcHijacker();
public: public:
// When start publisher by RTC. // When start publisher by RTC.
virtual srs_error_t on_start_publish(SrsRtcConnection* session, SrsRtcPublisher* publisher, SrsRequest* req) = 0; virtual srs_error_t on_start_publish(SrsRtcConnection* session, SrsRtcPublishStream* publisher, SrsRequest* req) = 0;
// When got RTP plaintext packet. // When got RTP plaintext packet.
virtual srs_error_t on_rtp_packet(SrsRtcConnection* session, SrsRtcPublisher* publisher, SrsRequest* req, SrsRtpPacket2* pkt) = 0; virtual srs_error_t on_rtp_packet(SrsRtcConnection* session, SrsRtcPublishStream* publisher, SrsRequest* req, SrsRtpPacket2* pkt) = 0;
// When start player by RTC. // When start player by RTC.
virtual srs_error_t on_start_play(SrsRtcConnection* session, SrsRtcPlayer* player, SrsRequest* req) = 0; virtual srs_error_t on_start_play(SrsRtcConnection* session, SrsRtcPlayStream* player, SrsRequest* req) = 0;
// When start consuming for player for RTC. // When start consuming for player for RTC.
virtual srs_error_t on_start_consume(SrsRtcConnection* session, SrsRtcPlayer* player, SrsRequest* req, SrsRtcConsumer* consumer) = 0; virtual srs_error_t on_start_consume(SrsRtcConnection* session, SrsRtcPlayStream* player, SrsRequest* req, SrsRtcConsumer* consumer) = 0;
}; };
extern ISrsRtcHijacker* _srs_rtc_hijacker; extern ISrsRtcHijacker* _srs_rtc_hijacker;

@ -103,6 +103,7 @@ public:
virtual void request_keyframe() = 0; virtual void request_keyframe() = 0;
}; };
// A Source is a stream, to publish and to play with, binding to SrsRtcPublishStream and SrsRtcPlayStream.
class SrsRtcSource class SrsRtcSource
{ {
private: private:

Loading…
Cancel
Save