1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

for #742, fix publish recv thread bug.

This commit is contained in:
winlin 2017-01-23 16:44:42 +08:00
commit 39aee2b318
2 changed files with 9 additions and 2 deletions

View file

@ -305,6 +305,7 @@ 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);

View file

@ -35,6 +35,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_app_st.hpp>
#include <srs_app_conn.hpp>
#include <srs_app_reload.hpp>
#include <srs_rtmp_stack.hpp>
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();