mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-07-05 10:58:11 +08:00
修改rtp超时检测相关http api,rtp超时检测最多暂停5分钟
This commit is contained in:
@@ -127,9 +127,15 @@ void RtpProcess::addTrackCompleted() {
|
||||
|
||||
bool RtpProcess::alive() {
|
||||
if (_stop_rtp_check.load()) {
|
||||
return true;
|
||||
if(_last_check_alive.elapsedTime() > 5 * 60 * 1000){
|
||||
//最多暂停5分钟的rtp超时检测,因为NAT映射有效期一般不会太长
|
||||
_stop_rtp_check = false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
_last_check_alive.elapsedTime();
|
||||
GET_CONFIG(uint64_t, timeoutSec, RtpProxy::kTimeoutSec)
|
||||
if (_last_frame_time.elapsedTime() / 1000 < timeoutSec) {
|
||||
return true;
|
||||
|
||||
@@ -94,6 +94,7 @@ private:
|
||||
MultiMediaSourceMuxer::Ptr _muxer;
|
||||
atomic_bool _stop_rtp_check{false};
|
||||
atomic_flag _busy_flag{false};
|
||||
Ticker _last_check_alive;
|
||||
};
|
||||
|
||||
}//namespace mediakit
|
||||
|
||||
@@ -160,31 +160,5 @@ uint16_t RtpServer::getPort() {
|
||||
return _udp_server ? _udp_server->get_local_port() : 0;
|
||||
}
|
||||
|
||||
void RtpServer::pauseRtpCheck(const string &stream_id){
|
||||
if(_rtp_process)
|
||||
_rtp_process->setStopCheckRtp(true);
|
||||
else{
|
||||
if(!stream_id.empty()){
|
||||
auto rtp_process = RtpSelector::Instance().getProcess(stream_id,false);
|
||||
if(rtp_process)
|
||||
rtp_process->setStopCheckRtp(true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void RtpServer::resumeRtpCheck(const string &stream_id){
|
||||
if(_rtp_process)
|
||||
_rtp_process->setStopCheckRtp(false);
|
||||
else{
|
||||
//解决不指定流或者TCP收流无法暂停
|
||||
if(!stream_id.empty()){
|
||||
auto rtp_process = RtpSelector::Instance().getProcess(stream_id,false);
|
||||
if(rtp_process)
|
||||
rtp_process->setStopCheckRtp(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}//namespace mediakit
|
||||
#endif//defined(ENABLE_RTPPROXY)
|
||||
@@ -57,16 +57,6 @@ public:
|
||||
*/
|
||||
void setOnDetach(const function<void()> &cb);
|
||||
|
||||
/**
|
||||
* 暂停Rtp服务的RTP流检测
|
||||
*/
|
||||
void pauseRtpCheck(const string &stream_id = "");
|
||||
|
||||
/**
|
||||
* 恢复Rtp服务的RTP流检测
|
||||
*/
|
||||
void resumeRtpCheck(const string &stream_id = "");
|
||||
|
||||
protected:
|
||||
Socket::Ptr _udp_server;
|
||||
TcpServer::Ptr _tcp_server;
|
||||
|
||||
Reference in New Issue
Block a user