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:
commit
39aee2b318
2 changed files with 9 additions and 2 deletions
|
@ -305,7 +305,8 @@ SrsRtmpConn::SrsRtmpConn(SrsServer* svr, st_netfd_t c, string cip)
|
||||||
realtime = SRS_PERF_MIN_LATENCY_ENABLED;
|
realtime = SRS_PERF_MIN_LATENCY_ENABLED;
|
||||||
send_min_interval = 0;
|
send_min_interval = 0;
|
||||||
tcp_nodelay = false;
|
tcp_nodelay = false;
|
||||||
|
client_type = SrsRtmpConnUnknown;
|
||||||
|
|
||||||
_srs_config->subscribe(this);
|
_srs_config->subscribe(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -709,6 +710,7 @@ int SrsRtmpConn::stream_service_cycle()
|
||||||
source->source_id(), source->source_id());
|
source->source_id(), source->source_id());
|
||||||
source->set_cache(enabled_cache);
|
source->set_cache(enabled_cache);
|
||||||
|
|
||||||
|
client_type = type;
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case SrsRtmpConnPlay: {
|
case SrsRtmpConnPlay: {
|
||||||
srs_verbose("start to play stream %s.", req->stream.c_str());
|
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,
|
// use isolate thread to recv,
|
||||||
// @see: https://github.com/ossrs/srs/issues/237
|
// @see: https://github.com/ossrs/srs/issues/237
|
||||||
SrsPublishRecvThread trd(rtmp, req,
|
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());
|
srs_info("start to publish stream %s success", req->stream.c_str());
|
||||||
ret = do_publishing(source, &trd);
|
ret = do_publishing(source, &trd);
|
||||||
|
|
|
@ -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_st.hpp>
|
||||||
#include <srs_app_conn.hpp>
|
#include <srs_app_conn.hpp>
|
||||||
#include <srs_app_reload.hpp>
|
#include <srs_app_reload.hpp>
|
||||||
|
#include <srs_rtmp_stack.hpp>
|
||||||
|
|
||||||
class SrsServer;
|
class SrsServer;
|
||||||
class SrsRtmpServer;
|
class SrsRtmpServer;
|
||||||
|
@ -150,6 +151,8 @@ private:
|
||||||
int publish_normal_timeout;
|
int publish_normal_timeout;
|
||||||
// whether enable the tcp_nodelay.
|
// whether enable the tcp_nodelay.
|
||||||
bool tcp_nodelay;
|
bool tcp_nodelay;
|
||||||
|
// The type of client, play or publish.
|
||||||
|
SrsRtmpConnType client_type;
|
||||||
public:
|
public:
|
||||||
SrsRtmpConn(SrsServer* svr, st_netfd_t c, std::string cip);
|
SrsRtmpConn(SrsServer* svr, st_netfd_t c, std::string cip);
|
||||||
virtual ~SrsRtmpConn();
|
virtual ~SrsRtmpConn();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue