diff --git a/trunk/src/app/srs_app_http_stream.cpp b/trunk/src/app/srs_app_http_stream.cpp old mode 100644 new mode 100755 index 9cc00f865..f25bdd30a --- a/trunk/src/app/srs_app_http_stream.cpp +++ b/trunk/src/app/srs_app_http_stream.cpp @@ -79,6 +79,17 @@ SrsBufferCache::~SrsBufferCache() srs_freep(req); } +int SrsBufferCache::update(SrsSource* s, SrsRequest* r) +{ + int ret = ERROR_SUCCESS; + + srs_freep(req); + req = r->copy(); + source = s; + + return ret; +} + int SrsBufferCache::start() { return pthread->start(); @@ -452,6 +463,17 @@ SrsLiveStream::~SrsLiveStream() srs_freep(req); } +int SrsLiveStream::update(SrsSource* s, SrsRequest* r) +{ + int ret = ERROR_SUCCESS; + + srs_freep(req); + source = s; + req = r->copy(); + + return ret; +} + int SrsLiveStream::serve_http(ISrsHttpResponseWriter* w, ISrsHttpMessage* r) { int ret = ERROR_SUCCESS; @@ -840,6 +862,8 @@ int SrsHttpStreamServer::http_mount(SrsSource* s, SrsRequest* r) srs_trace("http: mount flv stream for vhost=%s, mount=%s", sid.c_str(), mount.c_str()); } else { entry = sflvs[sid]; + entry->stream->update(s, r); + entry->cache->update(s, r); } if (entry->stream) { diff --git a/trunk/src/app/srs_app_http_stream.hpp b/trunk/src/app/srs_app_http_stream.hpp old mode 100644 new mode 100755 index 31b9b2cf6..d3eac934b --- a/trunk/src/app/srs_app_http_stream.hpp +++ b/trunk/src/app/srs_app_http_stream.hpp @@ -51,6 +51,7 @@ private: public: SrsBufferCache(SrsSource* s, SrsRequest* r); virtual ~SrsBufferCache(); + virtual int update(SrsSource* s, SrsRequest* r); public: virtual int start(); virtual int dump_cache(SrsConsumer* consumer, SrsRtmpJitterAlgorithm jitter); @@ -227,6 +228,7 @@ private: public: SrsLiveStream(SrsSource* s, SrsRequest* r, SrsBufferCache* c); virtual ~SrsLiveStream(); + virtual int update(SrsSource* s, SrsRequest* r); public: virtual int serve_http(ISrsHttpResponseWriter* w, ISrsHttpMessage* r); private: