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:
parent
f066686255
commit
f841e0c37a
1 changed files with 36 additions and 38 deletions
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue