Commit 338c2e18 by xiongziliang

过滤无效rtp包

parent c64bf1ea
...@@ -180,6 +180,9 @@ void RtspSession::onWholeRtspPacket(Parser &parser) { ...@@ -180,6 +180,9 @@ void RtspSession::onWholeRtspPacket(Parser &parser) {
} }
void RtspSession::onRtpPacket(const char *data, uint64_t len) { void RtspSession::onRtpPacket(const char *data, uint64_t len) {
if(!_pushSrc){
return;
}
if(len > 1600){ if(len > 1600){
//没有大于MTU的包 //没有大于MTU的包
return; return;
...@@ -1007,16 +1010,17 @@ inline void RtspSession::sendRtpPacket(const RtpPacket::Ptr & pkt) { ...@@ -1007,16 +1010,17 @@ inline void RtspSession::sendRtpPacket(const RtpPacket::Ptr & pkt) {
} }
void RtspSession::onRtpSorted(const RtpPacket::Ptr &rtppt, int trackidx) { void RtspSession::onRtpSorted(const RtpPacket::Ptr &rtppt, int trackidx) {
if(_pushSrc){ _pushSrc->onWrite(rtppt, false);
_pushSrc->onWrite(rtppt, false);
}
} }
inline void RtspSession::onRcvPeerUdpData(int iTrackIdx, const Buffer::Ptr &pBuf, const struct sockaddr& addr) { inline void RtspSession::onRcvPeerUdpData(int iTrackIdx, const Buffer::Ptr &pBuf, const struct sockaddr& addr) {
//这是rtcp心跳包,说明播放器还存活 //这是rtcp心跳包,说明播放器还存活
_ticker.resetTime(); _ticker.resetTime();
if(iTrackIdx % 2 == 0){ if(iTrackIdx % 2 == 0){
handleOneRtp(iTrackIdx / 2,_aTrackInfo[iTrackIdx / 2],( unsigned char *)pBuf->data(),pBuf->size());
if(_pushSrc){
handleOneRtp(iTrackIdx / 2,_aTrackInfo[iTrackIdx / 2],( unsigned char *)pBuf->data(),pBuf->size());
}
//这是rtp探测包 //这是rtp探测包
if(!_bGotAllPeerUdp){ if(!_bGotAllPeerUdp){
...@@ -1038,8 +1042,6 @@ inline void RtspSession::onRcvPeerUdpData(int iTrackIdx, const Buffer::Ptr &pBuf ...@@ -1038,8 +1042,6 @@ inline void RtspSession::onRcvPeerUdpData(int iTrackIdx, const Buffer::Ptr &pBuf
} }
} }
} }
}else{
// TraceL << "rtcp数据包" << (iTrackIdx-1)/2 ;
} }
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论