Merge pull request #767 from sunhui2013/master

增加支持tcp收流暂停/恢复流检测功能
This commit is contained in:
夏楚 2021-03-14 10:05:22 +08:00 committed by GitHub
commit 29ebcaf3e9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 7 deletions

View File

@ -851,7 +851,7 @@ void installWebApi() {
return; return;
} }
auto server = it->second; auto server = it->second;
server->pauseRtpCheck(); server->pauseRtpCheck(allArgs["stream_id"]);
val["hit"] = 1; val["hit"] = 1;
}); });
@ -866,7 +866,7 @@ void installWebApi() {
return; return;
} }
auto server = it->second; auto server = it->second;
server->resumeRtpCheck(); server->resumeRtpCheck(allArgs["stream_id"]);
val["hit"] = 1; val["hit"] = 1;
}); });

View File

@ -160,15 +160,30 @@ uint16_t RtpServer::getPort() {
return _udp_server ? _udp_server->get_local_port() : 0; return _udp_server ? _udp_server->get_local_port() : 0;
} }
void RtpServer::pauseRtpCheck(){ void RtpServer::pauseRtpCheck(const string &stream_id){
if(_rtp_process) if(_rtp_process)
_rtp_process->setStopCheckRtp(true); _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(){ void RtpServer::resumeRtpCheck(const string &stream_id){
if(_rtp_process) if(_rtp_process)
_rtp_process->setStopCheckRtp(false); _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 }//namespace mediakit

View File

@ -60,12 +60,12 @@ public:
/** /**
* Rtp服务的RTP流检测 * Rtp服务的RTP流检测
*/ */
void pauseRtpCheck(); void pauseRtpCheck(const string &stream_id = "");
/** /**
* Rtp服务的RTP流检测 * Rtp服务的RTP流检测
*/ */
void resumeRtpCheck(); void resumeRtpCheck(const string &stream_id = "");
protected: protected:
Socket::Ptr _udp_server; Socket::Ptr _udp_server;