1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

RTC: Refien NACK code

This commit is contained in:
winlin 2020-08-10 15:35:17 +08:00
parent f066686255
commit f841e0c37a

View file

@ -580,50 +580,48 @@ srs_error_t SrsRtcPlayStream::send_packets(SrsRtcStream* source, const vector<Sr
void SrsRtcPlayStream::nack_fetch(vector<SrsRtpPacket2*>& pkts, uint32_t ssrc, uint16_t seq) void SrsRtcPlayStream::nack_fetch(vector<SrsRtpPacket2*>& pkts, uint32_t ssrc, uint16_t seq)
{ {
if (true) { for (map<uint32_t, SrsRtcAudioSendTrack*>::iterator it = audio_tracks_.begin(); it != audio_tracks_.end(); ++it) {
std::map<uint32_t, SrsRtcAudioSendTrack*>::iterator it; SrsRtcAudioSendTrack* track = it->second;
for (it = audio_tracks_.begin(); it != audio_tracks_.end(); ++it) {
SrsRtcAudioSendTrack* track = it->second;
// If track is inactive, not process nack request. // If track is inactive, not process nack request.
if (!track->get_track_status()){ if (!track->get_track_status()){
continue; continue;
}
if (track->has_ssrc(ssrc)) {
// update recv nack statistic
track->on_recv_nack();
SrsRtpPacket2* pkt = track->fetch_rtp_packet(seq);
if (pkt != NULL) {
pkts.push_back(pkt);
}
return;
}
} }
if (!track->has_ssrc(ssrc)) {
continue;
}
// update recv nack statistic
track->on_recv_nack();
SrsRtpPacket2* pkt = track->fetch_rtp_packet(seq);
if (pkt != NULL) {
pkts.push_back(pkt);
}
return;
} }
if (true) { for (map<uint32_t, SrsRtcVideoSendTrack*>::iterator it = video_tracks_.begin(); it != video_tracks_.end(); ++it) {
std::map<uint32_t, SrsRtcVideoSendTrack*>::iterator it; SrsRtcVideoSendTrack* track = it->second;
for (it = video_tracks_.begin(); it != video_tracks_.end(); ++it) {
SrsRtcVideoSendTrack* track = it->second;
// If track is inactive, not process nack request. // If track is inactive, not process nack request.
if (!track->get_track_status()){ if (!track->get_track_status()){
continue; continue;
}
if (track->has_ssrc(ssrc)) {
// update recv nack statistic
track->on_recv_nack();
SrsRtpPacket2* pkt = track->fetch_rtp_packet(seq);
if (pkt != NULL) {
pkts.push_back(pkt);
}
return;
}
} }
if (!track->has_ssrc(ssrc)) {
continue;
}
// update recv nack statistic
track->on_recv_nack();
SrsRtpPacket2* pkt = track->fetch_rtp_packet(seq);
if (pkt != NULL) {
pkts.push_back(pkt);
}
return;
} }
} }