提高rtsp客户端健壮性
This commit is contained in:
parent
be65ec5f1d
commit
d4908c3162
|
|
@ -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
|
||||||
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 {
|
||||||
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 {
|
||||||
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) {
|
||||||
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() {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue