Commit d4908c31 by xiongziliang

提高rtsp客户端健壮性

parent be65ec5f
...@@ -464,14 +464,10 @@ void RtspPlayer::onRtpPacket(const char *data, uint64_t len) { ...@@ -464,14 +464,10 @@ void RtspPlayer::onRtpPacket(const char *data, uint64_t len) {
uint8_t interleaved = data[1]; uint8_t interleaved = data[1];
if(interleaved %2 == 0){ if(interleaved %2 == 0){
trackIdx = getTrackIndexByInterleaved(interleaved); trackIdx = getTrackIndexByInterleaved(interleaved);
if (trackIdx != -1) { handleOneRtp(trackIdx, _sdp_track[trackIdx], (unsigned char *)data + 4, len - 4);
handleOneRtp(trackIdx, _sdp_track[trackIdx], (unsigned char *)data + 4, len - 4);
}
}else{ }else{
trackIdx = getTrackIndexByInterleaved(interleaved - 1); trackIdx = getTrackIndexByInterleaved(interleaved - 1);
if (trackIdx != -1) { onRtcpPacket(trackIdx, _sdp_track[trackIdx], (unsigned char *) data + 4, len - 4);
onRtcpPacket(trackIdx, _sdp_track[trackIdx], (unsigned char *) data + 4, len - 4);
}
} }
} }
...@@ -713,9 +709,6 @@ void RtspPlayer::onRecvRTP_l(const RtpPacket::Ptr &pkt, const SdpTrack::Ptr &tra ...@@ -713,9 +709,6 @@ void RtspPlayer::onRecvRTP_l(const RtpPacket::Ptr &pkt, const SdpTrack::Ptr &tra
onRecvRTP(pkt, track); onRecvRTP(pkt, track);
int iTrackIndex = getTrackIndexByInterleaved(pkt->interleaved); int iTrackIndex = getTrackIndexByInterleaved(pkt->interleaved);
if (iTrackIndex == -1) {
return;
}
RtcpCounter &counter = _rtcp_counter[iTrackIndex]; RtcpCounter &counter = _rtcp_counter[iTrackIndex];
counter.pktCnt = pkt->sequence; counter.pktCnt = pkt->sequence;
auto &ticker = _rtcp_send_ticker[iTrackIndex]; auto &ticker = _rtcp_send_ticker[iTrackIndex];
...@@ -788,7 +781,7 @@ int RtspPlayer::getTrackIndexByInterleaved(int interleaved) const { ...@@ -788,7 +781,7 @@ int RtspPlayer::getTrackIndexByInterleaved(int interleaved) const {
if (_sdp_track.size() == 1) { if (_sdp_track.size() == 1) {
return 0; return 0;
} }
return -1; throw SockException(Err_shutdown, StrPrinter << "no such track with interleaved:" << interleaved);
} }
int RtspPlayer::getTrackIndexByTrackType(TrackType trackType) const { int RtspPlayer::getTrackIndexByTrackType(TrackType trackType) const {
...@@ -800,7 +793,7 @@ int RtspPlayer::getTrackIndexByTrackType(TrackType trackType) const { ...@@ -800,7 +793,7 @@ int RtspPlayer::getTrackIndexByTrackType(TrackType trackType) const {
if (_sdp_track.size() == 1) { if (_sdp_track.size() == 1) {
return 0; return 0;
} }
return -1; throw SockException(Err_shutdown, StrPrinter << "no such track with type:" << (int) trackType);
} }
} /* namespace mediakit */ } /* namespace mediakit */
...@@ -347,7 +347,7 @@ inline int RtspPusher::getTrackIndexByTrackType(TrackType type) { ...@@ -347,7 +347,7 @@ inline int RtspPusher::getTrackIndexByTrackType(TrackType type) {
if(_aTrackInfo.size() == 1){ if(_aTrackInfo.size() == 1){
return 0; return 0;
} }
return -1; throw SockException(Err_shutdown, StrPrinter << "no such track with type:" << (int) type);
} }
void RtspPusher::sendRecord() { void RtspPusher::sendRecord() {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论