正在显示
3 个修改的文件
包含
10 行增加
和
8 行删除
| @@ -34,8 +34,9 @@ ISrsMessageHandler::~ISrsMessageHandler() | @@ -34,8 +34,9 @@ ISrsMessageHandler::~ISrsMessageHandler() | ||
| 34 | { | 34 | { |
| 35 | } | 35 | } |
| 36 | 36 | ||
| 37 | -SrsRecvThread::SrsRecvThread(ISrsMessageHandler* msg_handler, SrsRtmpServer* rtmp_sdk) | 37 | +SrsRecvThread::SrsRecvThread(ISrsMessageHandler* msg_handler, SrsRtmpServer* rtmp_sdk, int timeout_ms) |
| 38 | { | 38 | { |
| 39 | + timeout = timeout_ms; | ||
| 39 | handler = msg_handler; | 40 | handler = msg_handler; |
| 40 | rtmp = rtmp_sdk; | 41 | rtmp = rtmp_sdk; |
| 41 | trd = new SrsThread(this, 0, true); | 42 | trd = new SrsThread(this, 0, true); |
| @@ -65,7 +66,7 @@ int SrsRecvThread::cycle() | @@ -65,7 +66,7 @@ int SrsRecvThread::cycle() | ||
| 65 | int ret = ERROR_SUCCESS; | 66 | int ret = ERROR_SUCCESS; |
| 66 | 67 | ||
| 67 | if (!handler->can_handle()) { | 68 | if (!handler->can_handle()) { |
| 68 | - st_usleep(SRS_CONSTS_RTMP_PULSE_TIMEOUT_US); | 69 | + st_usleep(timeout * 1000); |
| 69 | return ret; | 70 | return ret; |
| 70 | } | 71 | } |
| 71 | 72 | ||
| @@ -109,11 +110,11 @@ void SrsRecvThread::on_thread_stop() | @@ -109,11 +110,11 @@ void SrsRecvThread::on_thread_stop() | ||
| 109 | rtmp->set_auto_response(true); | 110 | rtmp->set_auto_response(true); |
| 110 | 111 | ||
| 111 | // reset the timeout to pulse mode. | 112 | // reset the timeout to pulse mode. |
| 112 | - rtmp->set_recv_timeout(SRS_CONSTS_RTMP_PULSE_TIMEOUT_US); | 113 | + rtmp->set_recv_timeout(timeout * 1000); |
| 113 | } | 114 | } |
| 114 | 115 | ||
| 115 | -SrsQueueRecvThread::SrsQueueRecvThread(SrsRtmpServer* rtmp_sdk) | ||
| 116 | - : SrsRecvThread(this, rtmp_sdk) | 116 | +SrsQueueRecvThread::SrsQueueRecvThread(SrsRtmpServer* rtmp_sdk, int timeout_ms) |
| 117 | + : SrsRecvThread(this, rtmp_sdk, timeout_ms) | ||
| 117 | { | 118 | { |
| 118 | } | 119 | } |
| 119 | 120 |
| @@ -68,8 +68,9 @@ protected: | @@ -68,8 +68,9 @@ protected: | ||
| 68 | SrsThread* trd; | 68 | SrsThread* trd; |
| 69 | ISrsMessageHandler* handler; | 69 | ISrsMessageHandler* handler; |
| 70 | SrsRtmpServer* rtmp; | 70 | SrsRtmpServer* rtmp; |
| 71 | + int timeout; | ||
| 71 | public: | 72 | public: |
| 72 | - SrsRecvThread(ISrsMessageHandler* msg_handler, SrsRtmpServer* rtmp_sdk); | 73 | + SrsRecvThread(ISrsMessageHandler* msg_handler, SrsRtmpServer* rtmp_sdk, int timeout_ms); |
| 73 | virtual ~SrsRecvThread(); | 74 | virtual ~SrsRecvThread(); |
| 74 | public: | 75 | public: |
| 75 | virtual int start(); | 76 | virtual int start(); |
| @@ -91,7 +92,7 @@ class SrsQueueRecvThread : virtual public ISrsMessageHandler, virtual public Srs | @@ -91,7 +92,7 @@ class SrsQueueRecvThread : virtual public ISrsMessageHandler, virtual public Srs | ||
| 91 | private: | 92 | private: |
| 92 | std::vector<SrsMessage*> queue; | 93 | std::vector<SrsMessage*> queue; |
| 93 | public: | 94 | public: |
| 94 | - SrsQueueRecvThread(SrsRtmpServer* rtmp_sdk); | 95 | + SrsQueueRecvThread(SrsRtmpServer* rtmp_sdk, int timeout_ms); |
| 95 | virtual ~SrsQueueRecvThread(); | 96 | virtual ~SrsQueueRecvThread(); |
| 96 | public: | 97 | public: |
| 97 | virtual bool empty(); | 98 | virtual bool empty(); |
| @@ -500,7 +500,7 @@ int SrsRtmpConn::playing(SrsSource* source) | @@ -500,7 +500,7 @@ int SrsRtmpConn::playing(SrsSource* source) | ||
| 500 | 500 | ||
| 501 | // use isolate thread to recv, | 501 | // use isolate thread to recv, |
| 502 | // @see: https://github.com/winlinvip/simple-rtmp-server/issues/217 | 502 | // @see: https://github.com/winlinvip/simple-rtmp-server/issues/217 |
| 503 | - SrsQueueRecvThread trd(rtmp); | 503 | + SrsQueueRecvThread trd(rtmp, SRS_CONSTS_RTMP_PULSE_TIMEOUT_US); |
| 504 | 504 | ||
| 505 | // start isolate recv thread. | 505 | // start isolate recv thread. |
| 506 | if ((ret = trd.start()) != ERROR_SUCCESS) { | 506 | if ((ret = trd.start()) != ERROR_SUCCESS) { |
-
请 注册 或 登录 后发表评论