diff --git a/README.md b/README.md index c957836f3..427a4abfc 100755 --- a/README.md +++ b/README.md @@ -176,6 +176,7 @@ The ports used by SRS: ## V4 changes +* v4.0, 2021-05-15, Rename SrsSource* to SrsLiveSource*. 4.0.112 * v4.0, 2021-05-15, Rename SrsRtpPacket2 to SrsRtpPacket. 4.0.111 * v4.0, 2021-05-14, RTC: Remove [Object Cache Pool](https://github.com/ossrs/srs/commit/14bfc98122bba369572417c19ebb2a61b373fc45#commitcomment-47655008), no effect. 4.0.110 * v4.0, 2021-05-14, Change virtual public to public. 4.0.109 diff --git a/trunk/src/app/srs_app_coworkers.cpp b/trunk/src/app/srs_app_coworkers.cpp index 71431d1ac..226976524 100644 --- a/trunk/src/app/srs_app_coworkers.cpp +++ b/trunk/src/app/srs_app_coworkers.cpp @@ -139,7 +139,7 @@ SrsRequest* SrsCoWorkers::find_stream_info(string vhost, string app, string stre return it->second; } -srs_error_t SrsCoWorkers::on_publish(SrsSource* s, SrsRequest* r) +srs_error_t SrsCoWorkers::on_publish(SrsLiveSource* s, SrsRequest* r) { srs_error_t err = srs_success; @@ -157,7 +157,7 @@ srs_error_t SrsCoWorkers::on_publish(SrsSource* s, SrsRequest* r) return err; } -void SrsCoWorkers::on_unpublish(SrsSource* s, SrsRequest* r) +void SrsCoWorkers::on_unpublish(SrsLiveSource* s, SrsRequest* r) { string url = r->get_stream_url(); diff --git a/trunk/src/app/srs_app_coworkers.hpp b/trunk/src/app/srs_app_coworkers.hpp index 43fd69656..af9c9a1ef 100644 --- a/trunk/src/app/srs_app_coworkers.hpp +++ b/trunk/src/app/srs_app_coworkers.hpp @@ -31,7 +31,7 @@ class SrsJsonAny; class SrsRequest; -class SrsSource; +class SrsLiveSource; // For origin cluster. class SrsCoWorkers @@ -50,8 +50,8 @@ public: private: virtual SrsRequest* find_stream_info(std::string vhost, std::string app, std::string stream); public: - virtual srs_error_t on_publish(SrsSource* s, SrsRequest* r); - virtual void on_unpublish(SrsSource* s, SrsRequest* r); + virtual srs_error_t on_publish(SrsLiveSource* s, SrsRequest* r); + virtual void on_unpublish(SrsLiveSource* s, SrsRequest* r); }; #endif diff --git a/trunk/src/app/srs_app_dvr.hpp b/trunk/src/app/srs_app_dvr.hpp index 579d5db30..8e078a1cd 100644 --- a/trunk/src/app/srs_app_dvr.hpp +++ b/trunk/src/app/srs_app_dvr.hpp @@ -29,7 +29,7 @@ #include #include -class SrsSource; +class SrsLiveSource; class SrsOriginHub; class SrsRequest; class SrsBuffer; diff --git a/trunk/src/app/srs_app_edge.cpp b/trunk/src/app/srs_app_edge.cpp index 4de21e115..f06f8bdb6 100644 --- a/trunk/src/app/srs_app_edge.cpp +++ b/trunk/src/app/srs_app_edge.cpp @@ -189,7 +189,7 @@ SrsEdgeIngester::~SrsEdgeIngester() srs_freep(trd); } -srs_error_t SrsEdgeIngester::initialize(SrsSource* s, SrsPlayEdge* e, SrsRequest* r) +srs_error_t SrsEdgeIngester::initialize(SrsLiveSource* s, SrsPlayEdge* e, SrsRequest* r) { source = s; edge = e; @@ -468,7 +468,7 @@ void SrsEdgeForwarder::set_queue_size(srs_utime_t queue_size) return queue->set_queue_size(queue_size); } -srs_error_t SrsEdgeForwarder::initialize(SrsSource* s, SrsPublishEdge* e, SrsRequest* r) +srs_error_t SrsEdgeForwarder::initialize(SrsLiveSource* s, SrsPublishEdge* e, SrsRequest* r) { source = s; edge = e; @@ -671,7 +671,7 @@ SrsPlayEdge::~SrsPlayEdge() srs_freep(ingester); } -srs_error_t SrsPlayEdge::initialize(SrsSource* source, SrsRequest* req) +srs_error_t SrsPlayEdge::initialize(SrsLiveSource* source, SrsRequest* req) { srs_error_t err = srs_success; @@ -751,7 +751,7 @@ void SrsPublishEdge::set_queue_size(srs_utime_t queue_size) return forwarder->set_queue_size(queue_size); } -srs_error_t SrsPublishEdge::initialize(SrsSource* source, SrsRequest* req) +srs_error_t SrsPublishEdge::initialize(SrsLiveSource* source, SrsRequest* req) { srs_error_t err = srs_success; diff --git a/trunk/src/app/srs_app_edge.hpp b/trunk/src/app/srs_app_edge.hpp index 39eda1777..eb899acb2 100644 --- a/trunk/src/app/srs_app_edge.hpp +++ b/trunk/src/app/srs_app_edge.hpp @@ -32,7 +32,7 @@ class SrsStSocket; class SrsRtmpServer; -class SrsSource; +class SrsLiveSource; class SrsRequest; class SrsPlayEdge; class SrsPublishEdge; @@ -117,7 +117,7 @@ public: class SrsEdgeIngester : public ISrsCoroutineHandler { private: - SrsSource* source; + SrsLiveSource* source; SrsPlayEdge* edge; SrsRequest* req; SrsCoroutine* trd; @@ -127,7 +127,7 @@ public: SrsEdgeIngester(); virtual ~SrsEdgeIngester(); public: - virtual srs_error_t initialize(SrsSource* s, SrsPlayEdge* e, SrsRequest* r); + virtual srs_error_t initialize(SrsLiveSource* s, SrsPlayEdge* e, SrsRequest* r); virtual srs_error_t start(); virtual void stop(); virtual std::string get_curr_origin(); @@ -145,7 +145,7 @@ private: class SrsEdgeForwarder : public ISrsCoroutineHandler { private: - SrsSource* source; + SrsLiveSource* source; SrsPublishEdge* edge; SrsRequest* req; SrsCoroutine* trd; @@ -164,7 +164,7 @@ public: public: virtual void set_queue_size(srs_utime_t queue_size); public: - virtual srs_error_t initialize(SrsSource* s, SrsPublishEdge* e, SrsRequest* r); + virtual srs_error_t initialize(SrsLiveSource* s, SrsPublishEdge* e, SrsRequest* r); virtual srs_error_t start(); virtual void stop(); // Interface ISrsReusableThread2Handler @@ -189,7 +189,7 @@ public: // Always use the req of source, // For we assume all client to edge is invalid, // if auth open, edge must valid it from origin, then service it. - virtual srs_error_t initialize(SrsSource* source, SrsRequest* req); + virtual srs_error_t initialize(SrsLiveSource* source, SrsRequest* req); // When client play stream on edge. virtual srs_error_t on_client_play(); // When all client stopped play, disconnect to origin. @@ -212,7 +212,7 @@ public: public: virtual void set_queue_size(srs_utime_t queue_size); public: - virtual srs_error_t initialize(SrsSource* source, SrsRequest* req); + virtual srs_error_t initialize(SrsLiveSource* source, SrsRequest* req); virtual bool can_publish(); // When client publish stream on edge. virtual srs_error_t on_client_publish(); diff --git a/trunk/src/app/srs_app_forward.cpp b/trunk/src/app/srs_app_forward.cpp index 25090ebfa..583deb197 100755 --- a/trunk/src/app/srs_app_forward.cpp +++ b/trunk/src/app/srs_app_forward.cpp @@ -76,7 +76,7 @@ srs_error_t SrsForwarder::initialize(SrsRequest* r, string ep) srs_error_t err = srs_success; // it's ok to use the request object, - // SrsSource already copy it and never delete it. + // SrsLiveSource already copy it and never delete it. req = r; // the ep(endpoint) to forward to diff --git a/trunk/src/app/srs_app_forward.hpp b/trunk/src/app/srs_app_forward.hpp index 4f69edc40..75bf65e2b 100644 --- a/trunk/src/app/srs_app_forward.hpp +++ b/trunk/src/app/srs_app_forward.hpp @@ -37,7 +37,7 @@ class SrsMessageQueue; class SrsRtmpJitter; class SrsRtmpClient; class SrsRequest; -class SrsSource; +class SrsLiveSource; class SrsOriginHub; class SrsKbps; class SrsSimpleRtmpClient; diff --git a/trunk/src/app/srs_app_gb28181.cpp b/trunk/src/app/srs_app_gb28181.cpp index 4663d25f9..d99ef0544 100644 --- a/trunk/src/app/srs_app_gb28181.cpp +++ b/trunk/src/app/srs_app_gb28181.cpp @@ -1432,7 +1432,7 @@ srs_error_t SrsGb28181RtmpMuxer::initialize(SrsServer *s, SrsRequest* r) req = r; server = s; - if ((err = _srs_sources->fetch_or_create(req, (ISrsSourceHandler*)server, &source)) != srs_success) { + if ((err = _srs_sources->fetch_or_create(req, (ISrsLiveSourceHandler*)server, &source)) != srs_success) { return srs_error_wrap(err, "create source"); } diff --git a/trunk/src/app/srs_app_gb28181.hpp b/trunk/src/app/srs_app_gb28181.hpp index 4d3e37fa1..268fb895b 100644 --- a/trunk/src/app/srs_app_gb28181.hpp +++ b/trunk/src/app/srs_app_gb28181.hpp @@ -100,7 +100,7 @@ class SrsGb28181StreamChannel; class SrsGb28181SipSession; class SrsRtpJitterBuffer; class SrsServer; -class SrsSource; +class SrsLiveSource; class SrsRequest; class SrsResourceManager; class SrsGb28181Conn; @@ -326,7 +326,7 @@ private: std::string aac_specific_config; SrsRequest* req; - SrsSource* source; + SrsLiveSource* source; SrsServer* server; SrsRtpJitterBuffer *jitter_buffer; diff --git a/trunk/src/app/srs_app_hds.hpp b/trunk/src/app/srs_app_hds.hpp index 513b7e9a6..092847b14 100644 --- a/trunk/src/app/srs_app_hds.hpp +++ b/trunk/src/app/srs_app_hds.hpp @@ -33,7 +33,7 @@ class SrsRequest; class SrsSharedPtrMessage; class SrsHdsFragment; -class SrsSource; +class SrsLiveSource; // Mux RTMP to Adobe HDS streaming. class SrsHds diff --git a/trunk/src/app/srs_app_hls.hpp b/trunk/src/app/srs_app_hls.hpp index 3d00672a5..6f68a7e4f 100644 --- a/trunk/src/app/srs_app_hls.hpp +++ b/trunk/src/app/srs_app_hls.hpp @@ -41,7 +41,7 @@ class SrsRtmpJitter; class SrsTsContextWriter; class SrsRequest; class SrsPithyPrint; -class SrsSource; +class SrsLiveSource; class SrsOriginHub; class SrsFileWriter; class SrsSimpleStream; diff --git a/trunk/src/app/srs_app_http_conn.cpp b/trunk/src/app/srs_app_http_conn.cpp index 729ce2171..aaeaeb405 100644 --- a/trunk/src/app/srs_app_http_conn.cpp +++ b/trunk/src/app/srs_app_http_conn.cpp @@ -533,12 +533,12 @@ srs_error_t SrsHttpServer::serve_http(ISrsHttpResponseWriter* w, ISrsHttpMessage return http_static->mux.serve_http(w, r); } -srs_error_t SrsHttpServer::http_mount(SrsSource* s, SrsRequest* r) +srs_error_t SrsHttpServer::http_mount(SrsLiveSource* s, SrsRequest* r) { return http_stream->http_mount(s, r); } -void SrsHttpServer::http_unmount(SrsSource* s, SrsRequest* r) +void SrsHttpServer::http_unmount(SrsLiveSource* s, SrsRequest* r) { http_stream->http_unmount(s, r); } diff --git a/trunk/src/app/srs_app_http_conn.hpp b/trunk/src/app/srs_app_http_conn.hpp index 4331fefe8..4ae86c7df 100644 --- a/trunk/src/app/srs_app_http_conn.hpp +++ b/trunk/src/app/srs_app_http_conn.hpp @@ -38,7 +38,7 @@ #include class SrsServer; -class SrsSource; +class SrsLiveSource; class SrsRequest; class SrsConsumer; class SrsStSocket; @@ -208,8 +208,8 @@ public: public: virtual srs_error_t serve_http(ISrsHttpResponseWriter* w, ISrsHttpMessage* r); public: - virtual srs_error_t http_mount(SrsSource* s, SrsRequest* r); - virtual void http_unmount(SrsSource* s, SrsRequest* r); + virtual srs_error_t http_mount(SrsLiveSource* s, SrsRequest* r); + virtual void http_unmount(SrsLiveSource* s, SrsRequest* r); }; #endif diff --git a/trunk/src/app/srs_app_http_stream.cpp b/trunk/src/app/srs_app_http_stream.cpp index eb4e372e9..0057ae16d 100755 --- a/trunk/src/app/srs_app_http_stream.cpp +++ b/trunk/src/app/srs_app_http_stream.cpp @@ -57,7 +57,7 @@ using namespace std; #include #include -SrsBufferCache::SrsBufferCache(SrsSource* s, SrsRequest* r) +SrsBufferCache::SrsBufferCache(SrsLiveSource* s, SrsRequest* r) { req = r->copy()->as_http(); source = s; @@ -76,7 +76,7 @@ SrsBufferCache::~SrsBufferCache() srs_freep(req); } -srs_error_t SrsBufferCache::update_auth(SrsSource* s, SrsRequest* r) +srs_error_t SrsBufferCache::update_auth(SrsLiveSource* s, SrsRequest* r) { srs_freep(req); req = r->copy(); @@ -104,7 +104,7 @@ srs_error_t SrsBufferCache::dump_cache(SrsConsumer* consumer, SrsRtmpJitterAlgor return err; } - // the jitter is get from SrsSource, which means the time_jitter of vhost. + // the jitter is get from SrsLiveSource, which means the time_jitter of vhost. if ((err = queue->dump_packets(consumer, false, jitter)) != srs_success) { return srs_error_wrap(err, "dump packets"); } @@ -241,7 +241,7 @@ srs_error_t SrsTsStreamEncoder::write_metadata(int64_t /*timestamp*/, char* /*da bool SrsTsStreamEncoder::has_cache() { - // for ts stream, use gop cache of SrsSource is ok. + // for ts stream, use gop cache of SrsLiveSource is ok. return false; } @@ -308,7 +308,7 @@ srs_error_t SrsFlvStreamEncoder::write_metadata(int64_t timestamp, char* data, i bool SrsFlvStreamEncoder::has_cache() { - // for flv stream, use gop cache of SrsSource is ok. + // for flv stream, use gop cache of SrsLiveSource is ok. return false; } @@ -515,7 +515,7 @@ srs_error_t SrsBufferWriter::writev(const iovec* iov, int iovcnt, ssize_t* pnwri return writer->writev(iov, iovcnt, pnwrite); } -SrsLiveStream::SrsLiveStream(SrsSource* s, SrsRequest* r, SrsBufferCache* c) +SrsLiveStream::SrsLiveStream(SrsLiveSource* s, SrsRequest* r, SrsBufferCache* c) { source = s; cache = c; @@ -527,7 +527,7 @@ SrsLiveStream::~SrsLiveStream() srs_freep(req); } -srs_error_t SrsLiveStream::update_auth(SrsSource* s, SrsRequest* r) +srs_error_t SrsLiveStream::update_auth(SrsLiveSource* s, SrsRequest* r) { source = s; @@ -893,7 +893,7 @@ srs_error_t SrsHttpStreamServer::initialize() } // TODO: FIXME: rename for HTTP FLV mount. -srs_error_t SrsHttpStreamServer::http_mount(SrsSource* s, SrsRequest* r) +srs_error_t SrsHttpStreamServer::http_mount(SrsLiveSource* s, SrsRequest* r) { srs_error_t err = srs_success; @@ -967,7 +967,7 @@ srs_error_t SrsHttpStreamServer::http_mount(SrsSource* s, SrsRequest* r) return err; } -void SrsHttpStreamServer::http_unmount(SrsSource* s, SrsRequest* r) +void SrsHttpStreamServer::http_unmount(SrsLiveSource* s, SrsRequest* r) { std::string sid = r->get_stream_url(); @@ -1000,7 +1000,7 @@ srs_error_t SrsHttpStreamServer::on_reload_vhost_http_remux_updated(string vhost return srs_error_wrap(err, "init flv entry"); } - // http mount need SrsRequest and SrsSource param, only create a mapping template entry + // http mount need SrsRequest and SrsLiveSource param, only create a mapping template entry // and do mount automatically on playing http flv if this stream is a new http_remux stream. return err; } @@ -1019,7 +1019,7 @@ srs_error_t SrsHttpStreamServer::on_reload_vhost_http_remux_updated(string vhost continue; } - SrsSource* source = entry->source; + SrsLiveSource* source = entry->source; if (_srs_config->get_vhost_http_remux_enabled(vhost)) { http_mount(source, req); } else { @@ -1127,7 +1127,7 @@ srs_error_t SrsHttpStreamServer::hijack(ISrsHttpMessage* request, ISrsHttpHandle } } - SrsSource* s = NULL; + SrsLiveSource* s = NULL; if ((err = _srs_sources->fetch_or_create(r, server, &s)) != srs_success) { return srs_error_wrap(err, "source create"); } diff --git a/trunk/src/app/srs_app_http_stream.hpp b/trunk/src/app/srs_app_http_stream.hpp index de8a25d87..39b035810 100755 --- a/trunk/src/app/srs_app_http_stream.hpp +++ b/trunk/src/app/srs_app_http_stream.hpp @@ -40,13 +40,13 @@ private: srs_utime_t fast_cache; private: SrsMessageQueue* queue; - SrsSource* source; + SrsLiveSource* source; SrsRequest* req; SrsCoroutine* trd; public: - SrsBufferCache(SrsSource* s, SrsRequest* r); + SrsBufferCache(SrsLiveSource* s, SrsRequest* r); virtual ~SrsBufferCache(); - virtual srs_error_t update_auth(SrsSource* s, SrsRequest* r); + virtual srs_error_t update_auth(SrsLiveSource* s, SrsRequest* r); public: virtual srs_error_t start(); virtual srs_error_t dump_cache(SrsConsumer* consumer, SrsRtmpJitterAlgorithm jitter); @@ -72,8 +72,8 @@ public: virtual srs_error_t write_metadata(int64_t timestamp, char* data, int size) = 0; public: // For some stream, for example, mp3 and aac, the audio stream, - // we use large gop cache in encoder, for the gop cache of SrsSource is ignore audio. - // @return true to use gop cache of encoder; otherwise, use SrsSource. + // we use large gop cache in encoder, for the gop cache of SrsLiveSource is ignore audio. + // @return true to use gop cache of encoder; otherwise, use SrsLiveSource. virtual bool has_cache() = 0; // Dumps the cache of encoder to consumer. virtual srs_error_t dump_cache(SrsConsumer* consumer, SrsRtmpJitterAlgorithm jitter) = 0; @@ -184,12 +184,12 @@ class SrsLiveStream : public ISrsHttpHandler { private: SrsRequest* req; - SrsSource* source; + SrsLiveSource* source; SrsBufferCache* cache; public: - SrsLiveStream(SrsSource* s, SrsRequest* r, SrsBufferCache* c); + SrsLiveStream(SrsLiveSource* s, SrsRequest* r, SrsBufferCache* c); virtual ~SrsLiveStream(); - virtual srs_error_t update_auth(SrsSource* s, SrsRequest* r); + virtual srs_error_t update_auth(SrsLiveSource* s, SrsRequest* r); public: virtual srs_error_t serve_http(ISrsHttpResponseWriter* w, ISrsHttpMessage* r); private: @@ -211,7 +211,7 @@ public: // We will free the request. SrsRequest* req; // Shared source. - SrsSource* source; + SrsLiveSource* source; public: // For template, the mount contains variables. // For concrete stream, the mount is url to access. @@ -249,8 +249,8 @@ public: virtual srs_error_t initialize(); public: // HTTP flv/ts/mp3/aac stream - virtual srs_error_t http_mount(SrsSource* s, SrsRequest* r); - virtual void http_unmount(SrsSource* s, SrsRequest* r); + virtual srs_error_t http_mount(SrsLiveSource* s, SrsRequest* r); + virtual void http_unmount(SrsLiveSource* s, SrsRequest* r); // Interface ISrsReloadHandler. public: virtual srs_error_t on_reload_vhost_added(std::string vhost); diff --git a/trunk/src/app/srs_app_recv_thread.cpp b/trunk/src/app/srs_app_recv_thread.cpp index 5376df700..cafc96b13 100644 --- a/trunk/src/app/srs_app_recv_thread.cpp +++ b/trunk/src/app/srs_app_recv_thread.cpp @@ -278,7 +278,7 @@ void SrsQueueRecvThread::on_stop() } SrsPublishRecvThread::SrsPublishRecvThread(SrsRtmpServer* rtmp_sdk, SrsRequest* _req, - int mr_sock_fd, srs_utime_t tm, SrsRtmpConn* conn, SrsSource* source, SrsContextId parent_cid) + int mr_sock_fd, srs_utime_t tm, SrsRtmpConn* conn, SrsLiveSource* source, SrsContextId parent_cid) : trd(this, rtmp_sdk, tm, parent_cid) { rtmp = rtmp_sdk; diff --git a/trunk/src/app/srs_app_recv_thread.hpp b/trunk/src/app/srs_app_recv_thread.hpp index 792b862c0..7024beca0 100644 --- a/trunk/src/app/srs_app_recv_thread.hpp +++ b/trunk/src/app/srs_app_recv_thread.hpp @@ -37,7 +37,7 @@ class SrsRtmpServer; class SrsCommonMessage; class SrsRtmpConn; -class SrsSource; +class SrsLiveSource; class SrsRequest; class SrsConsumer; class SrsHttpConn; @@ -164,7 +164,7 @@ private: srs_error_t recv_error; SrsRtmpConn* _conn; // The params for conn callback. - SrsSource* _source; + SrsLiveSource* _source; // The error timeout cond // @see https://github.com/ossrs/srs/issues/244 srs_cond_t error; @@ -173,7 +173,7 @@ private: SrsContextId ncid; public: SrsPublishRecvThread(SrsRtmpServer* rtmp_sdk, SrsRequest* _req, - int mr_sock_fd, srs_utime_t tm, SrsRtmpConn* conn, SrsSource* source, SrsContextId parent_cid); + int mr_sock_fd, srs_utime_t tm, SrsRtmpConn* conn, SrsLiveSource* source, SrsContextId parent_cid); virtual ~SrsPublishRecvThread(); public: // Wait for error for some timeout. diff --git a/trunk/src/app/srs_app_rtc_conn.cpp b/trunk/src/app/srs_app_rtc_conn.cpp index c910730fc..2cdd979a5 100644 --- a/trunk/src/app/srs_app_rtc_conn.cpp +++ b/trunk/src/app/srs_app_rtc_conn.cpp @@ -1073,7 +1073,7 @@ srs_error_t SrsRtcPublishStream::initialize(SrsRequest* r, SrsRtcStreamDescripti #if defined(SRS_RTC) && defined(SRS_FFMPEG_FIT) bool rtc_to_rtmp = _srs_config->get_rtc_to_rtmp(req->vhost); if (rtc_to_rtmp) { - SrsSource *rtmp = NULL; + SrsLiveSource *rtmp = NULL; if ((err = _srs_sources->fetch_or_create(r, _srs_hybrid->srs()->instance(), &rtmp)) != srs_success) { return srs_error_wrap(err, "create source"); } diff --git a/trunk/src/app/srs_app_rtc_source.cpp b/trunk/src/app/srs_app_rtc_source.cpp index b068b2a70..fe20b743a 100644 --- a/trunk/src/app/srs_app_rtc_source.cpp +++ b/trunk/src/app/srs_app_rtc_source.cpp @@ -1231,7 +1231,7 @@ srs_error_t SrsRtcFromRtmpBridger::consume_packets(vector& pkts) return err; } -SrsRtmpFromRtcBridger::SrsRtmpFromRtcBridger(SrsSource *src) +SrsRtmpFromRtcBridger::SrsRtmpFromRtcBridger(SrsLiveSource *src) { source_ = src; codec_ = NULL; diff --git a/trunk/src/app/srs_app_rtc_source.hpp b/trunk/src/app/srs_app_rtc_source.hpp index 77cc74441..e8075ed01 100644 --- a/trunk/src/app/srs_app_rtc_source.hpp +++ b/trunk/src/app/srs_app_rtc_source.hpp @@ -162,7 +162,7 @@ public: virtual void on_consumers_finished() = 0; }; -// SrsRtcStream bridge to SrsSource +// SrsRtcStream bridge to SrsLiveSource class ISrsRtcSourceBridger { public: @@ -259,7 +259,7 @@ private: }; #ifdef SRS_FFMPEG_FIT -class SrsRtcFromRtmpBridger : public ISrsSourceBridger +class SrsRtcFromRtmpBridger : public ISrsLiveSourceBridger { private: SrsRequest* req; @@ -302,7 +302,7 @@ private: class SrsRtmpFromRtcBridger : public ISrsRtcSourceBridger { private: - SrsSource *source_; + SrsLiveSource *source_; SrsAudioTranscoder *codec_; bool is_first_audio; bool is_first_video; @@ -323,7 +323,7 @@ private: uint16_t lost_sn_; int64_t key_frame_ts_; public: - SrsRtmpFromRtcBridger(SrsSource *src); + SrsRtmpFromRtcBridger(SrsLiveSource *src); virtual ~SrsRtmpFromRtcBridger(); public: srs_error_t initialize(SrsRequest* r); diff --git a/trunk/src/app/srs_app_rtmp_conn.cpp b/trunk/src/app/srs_app_rtmp_conn.cpp index b2dac498e..637069d65 100644 --- a/trunk/src/app/srs_app_rtmp_conn.cpp +++ b/trunk/src/app/srs_app_rtmp_conn.cpp @@ -526,7 +526,7 @@ srs_error_t SrsRtmpConn::stream_service_cycle() rtmp->set_send_timeout(SRS_CONSTS_RTMP_TIMEOUT); // find a source to serve. - SrsSource* source = NULL; + SrsLiveSource* source = NULL; if ((err = _srs_sources->fetch_or_create(req, server, &source)) != srs_success) { return srs_error_wrap(err, "rtmp: fetch source"); } @@ -621,7 +621,7 @@ srs_error_t SrsRtmpConn::check_vhost(bool try_default_vhost) return err; } -srs_error_t SrsRtmpConn::playing(SrsSource* source) +srs_error_t SrsRtmpConn::playing(SrsLiveSource* source) { srs_error_t err = srs_success; @@ -709,7 +709,7 @@ srs_error_t SrsRtmpConn::playing(SrsSource* source) return err; } -srs_error_t SrsRtmpConn::do_playing(SrsSource* source, SrsConsumer* consumer, SrsQueueRecvThread* rtrd) +srs_error_t SrsRtmpConn::do_playing(SrsLiveSource* source, SrsConsumer* consumer, SrsQueueRecvThread* rtrd) { srs_error_t err = srs_success; @@ -836,7 +836,7 @@ srs_error_t SrsRtmpConn::do_playing(SrsSource* source, SrsConsumer* consumer, Sr return err; } -srs_error_t SrsRtmpConn::publishing(SrsSource* source) +srs_error_t SrsRtmpConn::publishing(SrsLiveSource* source) { srs_error_t err = srs_success; @@ -875,7 +875,7 @@ srs_error_t SrsRtmpConn::publishing(SrsSource* source) return err; } -srs_error_t SrsRtmpConn::do_publishing(SrsSource* source, SrsPublishRecvThread* rtrd) +srs_error_t SrsRtmpConn::do_publishing(SrsLiveSource* source, SrsPublishRecvThread* rtrd) { srs_error_t err = srs_success; @@ -955,7 +955,7 @@ srs_error_t SrsRtmpConn::do_publishing(SrsSource* source, SrsPublishRecvThread* return err; } -srs_error_t SrsRtmpConn::acquire_publish(SrsSource* source) +srs_error_t SrsRtmpConn::acquire_publish(SrsLiveSource* source) { srs_error_t err = srs_success; @@ -1003,7 +1003,7 @@ srs_error_t SrsRtmpConn::acquire_publish(SrsSource* source) } } -void SrsRtmpConn::release_publish(SrsSource* source) +void SrsRtmpConn::release_publish(SrsLiveSource* source) { // when edge, notice edge to change state. // when origin, notice all service to unpublish. @@ -1014,7 +1014,7 @@ void SrsRtmpConn::release_publish(SrsSource* source) } } -srs_error_t SrsRtmpConn::handle_publish_message(SrsSource* source, SrsCommonMessage* msg) +srs_error_t SrsRtmpConn::handle_publish_message(SrsLiveSource* source, SrsCommonMessage* msg) { srs_error_t err = srs_success; @@ -1055,7 +1055,7 @@ srs_error_t SrsRtmpConn::handle_publish_message(SrsSource* source, SrsCommonMess return err; } -srs_error_t SrsRtmpConn::process_publish_message(SrsSource* source, SrsCommonMessage* msg) +srs_error_t SrsRtmpConn::process_publish_message(SrsLiveSource* source, SrsCommonMessage* msg) { srs_error_t err = srs_success; diff --git a/trunk/src/app/srs_app_rtmp_conn.hpp b/trunk/src/app/srs_app_rtmp_conn.hpp index acfc15c70..60d938a3a 100644 --- a/trunk/src/app/srs_app_rtmp_conn.hpp +++ b/trunk/src/app/srs_app_rtmp_conn.hpp @@ -38,7 +38,7 @@ class SrsServer; class SrsRtmpServer; class SrsRequest; class SrsResponse; -class SrsSource; +class SrsLiveSource; class SrsRefer; class SrsConsumer; class SrsCommonMessage; @@ -161,14 +161,14 @@ private: // The stream(play/publish) service cycle, identify client first. virtual srs_error_t stream_service_cycle(); virtual srs_error_t check_vhost(bool try_default_vhost); - virtual srs_error_t playing(SrsSource* source); - virtual srs_error_t do_playing(SrsSource* source, SrsConsumer* consumer, SrsQueueRecvThread* trd); - virtual srs_error_t publishing(SrsSource* source); - virtual srs_error_t do_publishing(SrsSource* source, SrsPublishRecvThread* trd); - virtual srs_error_t acquire_publish(SrsSource* source); - virtual void release_publish(SrsSource* source); - virtual srs_error_t handle_publish_message(SrsSource* source, SrsCommonMessage* msg); - virtual srs_error_t process_publish_message(SrsSource* source, SrsCommonMessage* msg); + virtual srs_error_t playing(SrsLiveSource* source); + virtual srs_error_t do_playing(SrsLiveSource* source, SrsConsumer* consumer, SrsQueueRecvThread* trd); + virtual srs_error_t publishing(SrsLiveSource* source); + virtual srs_error_t do_publishing(SrsLiveSource* source, SrsPublishRecvThread* trd); + virtual srs_error_t acquire_publish(SrsLiveSource* source); + virtual void release_publish(SrsLiveSource* source); + virtual srs_error_t handle_publish_message(SrsLiveSource* source, SrsCommonMessage* msg); + virtual srs_error_t process_publish_message(SrsLiveSource* source, SrsCommonMessage* msg); virtual srs_error_t process_play_control_msg(SrsConsumer* consumer, SrsCommonMessage* msg); virtual void set_sock_options(); private: diff --git a/trunk/src/app/srs_app_server.cpp b/trunk/src/app/srs_app_server.cpp index 124eb3d32..5ea232e8a 100644 --- a/trunk/src/app/srs_app_server.cpp +++ b/trunk/src/app/srs_app_server.cpp @@ -1782,7 +1782,7 @@ srs_error_t SrsServer::on_reload_http_stream_updated() return err; } -srs_error_t SrsServer::on_publish(SrsSource* s, SrsRequest* r) +srs_error_t SrsServer::on_publish(SrsLiveSource* s, SrsRequest* r) { srs_error_t err = srs_success; @@ -1798,7 +1798,7 @@ srs_error_t SrsServer::on_publish(SrsSource* s, SrsRequest* r) return err; } -void SrsServer::on_unpublish(SrsSource* s, SrsRequest* r) +void SrsServer::on_unpublish(SrsLiveSource* s, SrsRequest* r) { http_server->http_unmount(s, r); diff --git a/trunk/src/app/srs_app_server.hpp b/trunk/src/app/srs_app_server.hpp index 83b2a9b4c..344150304 100644 --- a/trunk/src/app/srs_app_server.hpp +++ b/trunk/src/app/srs_app_server.hpp @@ -261,7 +261,7 @@ public: // TODO: FIXME: Rename to SrsLiveServer. // SRS RTMP server, initialize and listen, start connection service thread, destroy client. -class SrsServer : public ISrsReloadHandler, public ISrsSourceHandler +class SrsServer : public ISrsReloadHandler, public ISrsLiveSourceHandler , public ISrsResourceManager, public ISrsCoroutineHandler , public ISrsHourGlass { @@ -393,10 +393,10 @@ public: virtual srs_error_t on_reload_http_stream_enabled(); virtual srs_error_t on_reload_http_stream_disabled(); virtual srs_error_t on_reload_http_stream_updated(); -// Interface ISrsSourceHandler +// Interface ISrsLiveSourceHandler public: - virtual srs_error_t on_publish(SrsSource* s, SrsRequest* r); - virtual void on_unpublish(SrsSource* s, SrsRequest* r); + virtual srs_error_t on_publish(SrsLiveSource* s, SrsRequest* r); + virtual void on_unpublish(SrsLiveSource* s, SrsRequest* r); }; #endif diff --git a/trunk/src/app/srs_app_source.cpp b/trunk/src/app/srs_app_source.cpp index ed737f1cc..f716fcd9b 100755 --- a/trunk/src/app/srs_app_source.cpp +++ b/trunk/src/app/srs_app_source.cpp @@ -418,7 +418,7 @@ ISrsWakable::~ISrsWakable() { } -SrsConsumer::SrsConsumer(SrsSource* s) +SrsConsumer::SrsConsumer(SrsLiveSource* s) { source = s; paused = false; @@ -719,11 +719,11 @@ bool SrsGopCache::pure_audio() return cached_video_count == 0; } -ISrsSourceHandler::ISrsSourceHandler() +ISrsLiveSourceHandler::ISrsLiveSourceHandler() { } -ISrsSourceHandler::~ISrsSourceHandler() +ISrsLiveSourceHandler::~ISrsLiveSourceHandler() { } @@ -861,7 +861,7 @@ SrsOriginHub::~SrsOriginHub() #endif } -srs_error_t SrsOriginHub::initialize(SrsSource* s, SrsRequest* r) +srs_error_t SrsOriginHub::initialize(SrsLiveSource* s, SrsRequest* r) { srs_error_t err = srs_success; @@ -1213,7 +1213,7 @@ srs_error_t SrsOriginHub::on_dvr_request_sh() // feed the dvr the metadata/sequence header, // when reload to start dvr, dvr will never get the sequence header in stream, - // use the SrsSource.on_dvr_request_sh to push the sequence header to DVR. + // use the SrsLiveSource.on_dvr_request_sh to push the sequence header to DVR. if (cache_metadata && (err = dvr->on_meta_data(cache_metadata)) != srs_success) { return srs_error_wrap(err, "dvr metadata"); } @@ -1328,7 +1328,7 @@ srs_error_t SrsOriginHub::on_reload_vhost_hls(string vhost) // when reload, we must fetch the sequence header from source cache. // notice the source to get the cached sequence header. // when reload to start hls, hls will never get the sequence header in stream, - // use the SrsSource.on_hls_start to push the sequence header to HLS. + // use the SrsLiveSource.on_hls_start to push the sequence header to HLS. SrsSharedPtrMessage* cache_sh_video = source->meta->vsh(); if (cache_sh_video) { if ((err = format->on_video(cache_sh_video)) != srs_success) { @@ -1684,26 +1684,26 @@ srs_error_t SrsMetaCache::update_vsh(SrsSharedPtrMessage* msg) return vformat->on_video(msg); } -SrsSourceManager* _srs_sources = NULL; +SrsLiveSourceManager* _srs_sources = NULL; -SrsSourceManager::SrsSourceManager() +SrsLiveSourceManager::SrsLiveSourceManager() { lock = srs_mutex_new(); timer_ = new SrsHourGlass("sources", this, 1 * SRS_UTIME_SECONDS); } -SrsSourceManager::~SrsSourceManager() +SrsLiveSourceManager::~SrsLiveSourceManager() { srs_mutex_destroy(lock); srs_freep(timer_); } -srs_error_t SrsSourceManager::initialize() +srs_error_t SrsLiveSourceManager::initialize() { return setup_ticks(); } -srs_error_t SrsSourceManager::fetch_or_create(SrsRequest* r, ISrsSourceHandler* h, SrsSource** pps) +srs_error_t SrsLiveSourceManager::fetch_or_create(SrsRequest* r, ISrsLiveSourceHandler* h, SrsLiveSource** pps) { srs_error_t err = srs_success; @@ -1712,7 +1712,7 @@ srs_error_t SrsSourceManager::fetch_or_create(SrsRequest* r, ISrsSourceHandler* // TODO: FIXME: Use smaller lock. SrsLocker(lock); - SrsSource* source = NULL; + SrsLiveSource* source = NULL; if ((source = fetch(r)) != NULL) { *pps = source; return err; @@ -1726,7 +1726,7 @@ srs_error_t SrsSourceManager::fetch_or_create(SrsRequest* r, ISrsSourceHandler* srs_trace("new source, stream_url=%s", stream_url.c_str()); - source = new SrsSource(); + source = new SrsLiveSource(); if ((err = source->initialize(r, h)) != srs_success) { err = srs_error_wrap(err, "init source %s", r->get_stream_url().c_str()); goto failed; @@ -1741,9 +1741,9 @@ failed: return err; } -SrsSource* SrsSourceManager::fetch(SrsRequest* r) +SrsLiveSource* SrsLiveSourceManager::fetch(SrsRequest* r) { - SrsSource* source = NULL; + SrsLiveSource* source = NULL; string stream_url = r->get_stream_url(); if (pool.find(stream_url) == pool.end()) { @@ -1760,17 +1760,17 @@ SrsSource* SrsSourceManager::fetch(SrsRequest* r) return source; } -void SrsSourceManager::dispose() +void SrsLiveSourceManager::dispose() { - std::map::iterator it; + std::map::iterator it; for (it = pool.begin(); it != pool.end(); ++it) { - SrsSource* source = it->second; + SrsLiveSource* source = it->second; source->dispose(); } return; } -srs_error_t SrsSourceManager::setup_ticks() +srs_error_t SrsLiveSourceManager::setup_ticks() { srs_error_t err = srs_success; @@ -1785,13 +1785,13 @@ srs_error_t SrsSourceManager::setup_ticks() return err; } -srs_error_t SrsSourceManager::notify(int event, srs_utime_t interval, srs_utime_t tick) +srs_error_t SrsLiveSourceManager::notify(int event, srs_utime_t interval, srs_utime_t tick) { srs_error_t err = srs_success; - std::map::iterator it; + std::map::iterator it; for (it = pool.begin(); it != pool.end();) { - SrsSource* source = it->second; + SrsLiveSource* source = it->second; // Do cycle source to cleanup components, such as hls dispose. if ((err = source->cycle()) != srs_success) { @@ -1826,25 +1826,25 @@ srs_error_t SrsSourceManager::notify(int event, srs_utime_t interval, srs_utime_ return err; } -void SrsSourceManager::destroy() +void SrsLiveSourceManager::destroy() { - std::map::iterator it; + std::map::iterator it; for (it = pool.begin(); it != pool.end(); ++it) { - SrsSource* source = it->second; + SrsLiveSource* source = it->second; srs_freep(source); } pool.clear(); } -ISrsSourceBridger::ISrsSourceBridger() +ISrsLiveSourceBridger::ISrsLiveSourceBridger() { } -ISrsSourceBridger::~ISrsSourceBridger() +ISrsLiveSourceBridger::~ISrsLiveSourceBridger() { } -SrsSource::SrsSource() +SrsLiveSource::SrsLiveSource() { req = NULL; jitter_algorithm = SrsRtmpJitterAlgorithmOFF; @@ -1870,7 +1870,7 @@ SrsSource::SrsSource() atc = false; } -SrsSource::~SrsSource() +SrsLiveSource::~SrsLiveSource() { _srs_config->unsubscribe(this); @@ -1890,14 +1890,14 @@ SrsSource::~SrsSource() srs_freep(bridger_); } -void SrsSource::dispose() +void SrsLiveSource::dispose() { hub->dispose(); meta->dispose(); gop_cache->dispose(); } -srs_error_t SrsSource::cycle() +srs_error_t SrsLiveSource::cycle() { srs_error_t err = hub->cycle(); if (err != srs_success) { @@ -1907,7 +1907,7 @@ srs_error_t SrsSource::cycle() return srs_success; } -bool SrsSource::expired() +bool SrsLiveSource::expired() { // unknown state? if (die_at == 0) { @@ -1932,7 +1932,7 @@ bool SrsSource::expired() return false; } -srs_error_t SrsSource::initialize(SrsRequest* r, ISrsSourceHandler* h) +srs_error_t SrsLiveSource::initialize(SrsRequest* r, ISrsLiveSourceHandler* h) { srs_error_t err = srs_success; @@ -1963,13 +1963,13 @@ srs_error_t SrsSource::initialize(SrsRequest* r, ISrsSourceHandler* h) return err; } -void SrsSource::set_bridger(ISrsSourceBridger* v) +void SrsLiveSource::set_bridger(ISrsLiveSourceBridger* v) { srs_freep(bridger_); bridger_ = v; } -srs_error_t SrsSource::on_reload_vhost_play(string vhost) +srs_error_t SrsLiveSource::on_reload_vhost_play(string vhost) { srs_error_t err = srs_success; @@ -2052,7 +2052,7 @@ srs_error_t SrsSource::on_reload_vhost_play(string vhost) return err; } -srs_error_t SrsSource::on_source_id_changed(SrsContextId id) +srs_error_t SrsLiveSource::on_source_id_changed(SrsContextId id) { srs_error_t err = srs_success; @@ -2075,27 +2075,27 @@ srs_error_t SrsSource::on_source_id_changed(SrsContextId id) return err; } -SrsContextId SrsSource::source_id() +SrsContextId SrsLiveSource::source_id() { return _source_id; } -SrsContextId SrsSource::pre_source_id() +SrsContextId SrsLiveSource::pre_source_id() { return _pre_source_id; } -bool SrsSource::inactive() +bool SrsLiveSource::inactive() { return _can_publish; } -void SrsSource::update_auth(SrsRequest* r) +void SrsLiveSource::update_auth(SrsRequest* r) { req->update_auth(r); } -bool SrsSource::can_publish(bool is_edge) +bool SrsLiveSource::can_publish(bool is_edge) { // TODO: FIXME: Should check the status of bridger. @@ -2106,7 +2106,7 @@ bool SrsSource::can_publish(bool is_edge) return _can_publish; } -srs_error_t SrsSource::on_meta_data(SrsCommonMessage* msg, SrsOnMetaDataPacket* metadata) +srs_error_t SrsLiveSource::on_meta_data(SrsCommonMessage* msg, SrsOnMetaDataPacket* metadata) { srs_error_t err = srs_success; @@ -2152,7 +2152,7 @@ srs_error_t SrsSource::on_meta_data(SrsCommonMessage* msg, SrsOnMetaDataPacket* return hub->on_meta_data(meta->data(), metadata); } -srs_error_t SrsSource::on_audio(SrsCommonMessage* shared_audio) +srs_error_t SrsLiveSource::on_audio(SrsCommonMessage* shared_audio) { srs_error_t err = srs_success; @@ -2197,7 +2197,7 @@ srs_error_t SrsSource::on_audio(SrsCommonMessage* shared_audio) return err; } -srs_error_t SrsSource::on_audio_imp(SrsSharedPtrMessage* msg) +srs_error_t SrsLiveSource::on_audio_imp(SrsSharedPtrMessage* msg) { srs_error_t err = srs_success; @@ -2265,7 +2265,7 @@ srs_error_t SrsSource::on_audio_imp(SrsSharedPtrMessage* msg) return err; } -srs_error_t SrsSource::on_video(SrsCommonMessage* shared_video) +srs_error_t SrsLiveSource::on_video(SrsCommonMessage* shared_video) { srs_error_t err = srs_success; @@ -2322,7 +2322,7 @@ srs_error_t SrsSource::on_video(SrsCommonMessage* shared_video) return err; } -srs_error_t SrsSource::on_video_imp(SrsSharedPtrMessage* msg) +srs_error_t SrsLiveSource::on_video_imp(SrsSharedPtrMessage* msg) { srs_error_t err = srs_success; @@ -2386,7 +2386,7 @@ srs_error_t SrsSource::on_video_imp(SrsSharedPtrMessage* msg) return err; } -srs_error_t SrsSource::on_aggregate(SrsCommonMessage* msg) +srs_error_t SrsLiveSource::on_aggregate(SrsCommonMessage* msg) { srs_error_t err = srs_success; @@ -2476,7 +2476,7 @@ srs_error_t SrsSource::on_aggregate(SrsCommonMessage* msg) return err; } -srs_error_t SrsSource::on_publish() +srs_error_t SrsLiveSource::on_publish() { srs_error_t err = srs_success; @@ -2523,7 +2523,7 @@ srs_error_t SrsSource::on_publish() return err; } -void SrsSource::on_unpublish() +void SrsLiveSource::on_unpublish() { // ignore when already unpublished. if (_can_publish) { @@ -2569,7 +2569,7 @@ void SrsSource::on_unpublish() } } -srs_error_t SrsSource::create_consumer(SrsConsumer*& consumer) +srs_error_t SrsLiveSource::create_consumer(SrsConsumer*& consumer) { srs_error_t err = srs_success; @@ -2587,7 +2587,7 @@ srs_error_t SrsSource::create_consumer(SrsConsumer*& consumer) return err; } -srs_error_t SrsSource::consumer_dumps(SrsConsumer* consumer, bool ds, bool dm, bool dg) +srs_error_t SrsLiveSource::consumer_dumps(SrsConsumer* consumer, bool ds, bool dm, bool dg) { srs_error_t err = srs_success; @@ -2630,7 +2630,7 @@ srs_error_t SrsSource::consumer_dumps(SrsConsumer* consumer, bool ds, bool dm, b return err; } -void SrsSource::on_consumer_destroy(SrsConsumer* consumer) +void SrsLiveSource::on_consumer_destroy(SrsConsumer* consumer) { std::vector::iterator it; it = std::find(consumers.begin(), consumers.end(), consumer); @@ -2644,33 +2644,33 @@ void SrsSource::on_consumer_destroy(SrsConsumer* consumer) } } -void SrsSource::set_cache(bool enabled) +void SrsLiveSource::set_cache(bool enabled) { gop_cache->set(enabled); } -SrsRtmpJitterAlgorithm SrsSource::jitter() +SrsRtmpJitterAlgorithm SrsLiveSource::jitter() { return jitter_algorithm; } -srs_error_t SrsSource::on_edge_start_publish() +srs_error_t SrsLiveSource::on_edge_start_publish() { return publish_edge->on_client_publish(); } // TODO: FIXME: Use edge strategy pattern. -srs_error_t SrsSource::on_edge_proxy_publish(SrsCommonMessage* msg) +srs_error_t SrsLiveSource::on_edge_proxy_publish(SrsCommonMessage* msg) { return publish_edge->on_proxy_publish(msg); } -void SrsSource::on_edge_proxy_unpublish() +void SrsLiveSource::on_edge_proxy_unpublish() { publish_edge->on_proxy_unpublish(); } -string SrsSource::get_curr_origin() +string SrsLiveSource::get_curr_origin() { return play_edge->get_curr_origin(); } diff --git a/trunk/src/app/srs_app_source.hpp b/trunk/src/app/srs_app_source.hpp index aad6cd9f7..6a8193d75 100644 --- a/trunk/src/app/srs_app_source.hpp +++ b/trunk/src/app/srs_app_source.hpp @@ -41,7 +41,7 @@ class SrsRtmpFormat; class SrsConsumer; class SrsPlayEdge; class SrsPublishEdge; -class SrsSource; +class SrsLiveSource; class SrsCommonMessage; class SrsOnMetaDataPacket; class SrsSharedPtrMessage; @@ -182,12 +182,12 @@ public: virtual void wakeup() = 0; }; -// The consumer for SrsSource, that is a play client. +// The consumer for SrsLiveSource, that is a play client. class SrsConsumer : public ISrsWakable { private: SrsRtmpJitter* jitter; - SrsSource* source; + SrsLiveSource* source; SrsMessageQueue* queue; bool paused; // when source id changed, notice all consumers @@ -201,7 +201,7 @@ private: srs_utime_t mw_duration; #endif public: - SrsConsumer(SrsSource* s); + SrsConsumer(SrsLiveSource* s); virtual ~SrsConsumer(); public: // Set the size of queue. @@ -294,16 +294,16 @@ public: // The handler to handle the event of srs source. // For example, the http flv streaming module handle the event and // mount http when rtmp start publishing. -class ISrsSourceHandler +class ISrsLiveSourceHandler { public: - ISrsSourceHandler(); - virtual ~ISrsSourceHandler(); + ISrsLiveSourceHandler(); + virtual ~ISrsLiveSourceHandler(); public: // when stream start publish, mount stream. - virtual srs_error_t on_publish(SrsSource* s, SrsRequest* r) = 0; + virtual srs_error_t on_publish(SrsLiveSource* s, SrsRequest* r) = 0; // when stream stop publish, unmount stream. - virtual void on_unpublish(SrsSource* s, SrsRequest* r) = 0; + virtual void on_unpublish(SrsLiveSource* s, SrsRequest* r) = 0; }; // The mix queue to correct the timestamp for mix_correct algorithm. @@ -328,7 +328,7 @@ public: class SrsOriginHub : public ISrsReloadHandler { private: - SrsSource* source; + SrsLiveSource* source; SrsRequest* req; bool is_active; private: @@ -356,7 +356,7 @@ public: public: // Initialize the hub with source and request. // @param r The request object, managed by source. - virtual srs_error_t initialize(SrsSource* s, SrsRequest* r); + virtual srs_error_t initialize(SrsLiveSource* s, SrsRequest* r); // Dispose the hub, release utilities resource, // For example, delete all HLS pieces. virtual void dispose(); @@ -451,26 +451,26 @@ public: }; // The source manager to create and refresh all stream sources. -class SrsSourceManager : public ISrsHourGlass +class SrsLiveSourceManager : public ISrsHourGlass { private: srs_mutex_t lock; - std::map pool; + std::map pool; SrsHourGlass* timer_; public: - SrsSourceManager(); - virtual ~SrsSourceManager(); + SrsLiveSourceManager(); + virtual ~SrsLiveSourceManager(); public: virtual srs_error_t initialize(); // create source when fetch from cache failed. // @param r the client request. // @param h the event handler for source. // @param pps the matched source, if success never be NULL. - virtual srs_error_t fetch_or_create(SrsRequest* r, ISrsSourceHandler* h, SrsSource** pps); + virtual srs_error_t fetch_or_create(SrsRequest* r, ISrsLiveSourceHandler* h, SrsLiveSource** pps); private: // Get the exists source, NULL when not exists. // update the request and return the exists source. - virtual SrsSource* fetch(SrsRequest* r); + virtual SrsLiveSource* fetch(SrsRequest* r); public: // dispose and cycle all sources. virtual void dispose(); @@ -485,14 +485,14 @@ public: }; // Global singleton instance. -extern SrsSourceManager* _srs_sources; +extern SrsLiveSourceManager* _srs_sources; -// For RTMP2RTC, bridge SrsSource to SrsRtcStream -class ISrsSourceBridger +// For RTMP2RTC, bridge SrsLiveSource to SrsRtcStream +class ISrsLiveSourceBridger { public: - ISrsSourceBridger(); - virtual ~ISrsSourceBridger(); + ISrsLiveSourceBridger(); + virtual ~ISrsLiveSourceBridger(); public: virtual srs_error_t on_publish() = 0; virtual srs_error_t on_audio(SrsSharedPtrMessage* audio) = 0; @@ -501,8 +501,7 @@ public: }; // The live streaming source. -// TODO: FIXME: Rename to SrsLiveStream. -class SrsSource : public ISrsReloadHandler +class SrsLiveSource : public ISrsReloadHandler { friend class SrsOriginHub; private: @@ -533,9 +532,9 @@ private: // The time of the packet we just got. int64_t last_packet_time; // The event handler. - ISrsSourceHandler* handler; + ISrsLiveSourceHandler* handler; // The source bridger for other source. - ISrsSourceBridger* bridger_; + ISrsLiveSourceBridger* bridger_; // The edge control service SrsPlayEdge* play_edge; SrsPublishEdge* publish_edge; @@ -552,8 +551,8 @@ private: // We will remove the source when source die. srs_utime_t die_at; public: - SrsSource(); - virtual ~SrsSource(); + SrsLiveSource(); + virtual ~SrsLiveSource(); public: virtual void dispose(); virtual srs_error_t cycle(); @@ -561,9 +560,9 @@ public: virtual bool expired(); public: // Initialize the hls with handlers. - virtual srs_error_t initialize(SrsRequest* r, ISrsSourceHandler* h); + virtual srs_error_t initialize(SrsRequest* r, ISrsLiveSourceHandler* h); // Bridge to other source, forward packets to it. - void set_bridger(ISrsSourceBridger* v); + void set_bridger(ISrsLiveSourceBridger* v); // Interface ISrsReloadHandler public: virtual srs_error_t on_reload_vhost_play(std::string vhost); diff --git a/trunk/src/app/srs_app_threads.cpp b/trunk/src/app/srs_app_threads.cpp index a7dff9b82..25aeb4705 100644 --- a/trunk/src/app/srs_app_threads.cpp +++ b/trunk/src/app/srs_app_threads.cpp @@ -292,7 +292,7 @@ srs_error_t srs_thread_initialize() // The global objects which depends on ST. _srs_hybrid = new SrsHybridServer(); _srs_rtc_sources = new SrsRtcStreamManager(); - _srs_sources = new SrsSourceManager(); + _srs_sources = new SrsLiveSourceManager(); _srs_stages = new SrsStageManager(); _srs_blackhole = new SrsRtcBlackhole(); _srs_rtc_manager = new SrsResourceManager("RTC", true); diff --git a/trunk/src/core/srs_core_version4.hpp b/trunk/src/core/srs_core_version4.hpp index 47bad09fc..ca1e9f4e5 100644 --- a/trunk/src/core/srs_core_version4.hpp +++ b/trunk/src/core/srs_core_version4.hpp @@ -26,6 +26,6 @@ #define VERSION_MAJOR 4 #define VERSION_MINOR 0 -#define VERSION_REVISION 111 +#define VERSION_REVISION 112 #endif