diff --git a/trunk/src/app/srs_app_rtmp_conn.cpp b/trunk/src/app/srs_app_rtmp_conn.cpp index 19005075b..f01f11efe 100644 --- a/trunk/src/app/srs_app_rtmp_conn.cpp +++ b/trunk/src/app/srs_app_rtmp_conn.cpp @@ -305,7 +305,8 @@ SrsRtmpConn::SrsRtmpConn(SrsServer* svr, st_netfd_t c, string cip) realtime = SRS_PERF_MIN_LATENCY_ENABLED; send_min_interval = 0; tcp_nodelay = false; - + client_type = SrsRtmpConnUnknown; + _srs_config->subscribe(this); } @@ -709,6 +710,7 @@ int SrsRtmpConn::stream_service_cycle() source->source_id(), source->source_id()); source->set_cache(enabled_cache); + client_type = type; switch (type) { case SrsRtmpConnPlay: { srs_verbose("start to play stream %s.", req->stream.c_str()); @@ -1037,7 +1039,9 @@ int SrsRtmpConn::publishing(SrsSource* source) // use isolate thread to recv, // @see: https://github.com/ossrs/srs/issues/237 SrsPublishRecvThread trd(rtmp, req, - st_netfd_fileno(stfd), 0, this, source, true, vhost_is_edge); + st_netfd_fileno(stfd), 0, this, source, + client_type == SrsRtmpConnFMLEPublish, + vhost_is_edge); srs_info("start to publish stream %s success", req->stream.c_str()); ret = do_publishing(source, &trd); diff --git a/trunk/src/app/srs_app_rtmp_conn.hpp b/trunk/src/app/srs_app_rtmp_conn.hpp index f7af1036d..42f6fda51 100644 --- a/trunk/src/app/srs_app_rtmp_conn.hpp +++ b/trunk/src/app/srs_app_rtmp_conn.hpp @@ -35,6 +35,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include #include #include +#include class SrsServer; class SrsRtmpServer; @@ -150,6 +151,8 @@ private: int publish_normal_timeout; // whether enable the tcp_nodelay. bool tcp_nodelay; + // The type of client, play or publish. + SrsRtmpConnType client_type; public: SrsRtmpConn(SrsServer* svr, st_netfd_t c, std::string cip); virtual ~SrsRtmpConn();