解决不指定流或者TCP暂停断流问题

This commit is contained in:
sunhui 2021-03-10 23:17:15 +08:00
parent c0f4899950
commit f5e8bae760
2 changed files with 20 additions and 5 deletions

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;