mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
RTC: Logging for NACK timeout.
This commit is contained in:
parent
c708103cd4
commit
57288838d0
2 changed files with 38 additions and 3 deletions
|
@ -1710,12 +1710,11 @@ srs_error_t SrsRtcRecvTrack::on_nack(SrsRtpPacket2* pkt)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
srs_error_t SrsRtcRecvTrack::check_send_nacks()
|
srs_error_t SrsRtcRecvTrack::do_check_send_nacks(uint32_t& timeout_nacks)
|
||||||
{
|
{
|
||||||
srs_error_t err = srs_success;
|
srs_error_t err = srs_success;
|
||||||
|
|
||||||
uint32_t sent_nacks = 0;
|
uint32_t sent_nacks = 0;
|
||||||
uint32_t timeout_nacks = 0;
|
|
||||||
session_->check_send_nacks(nack_receiver_, track_desc_->ssrc_, sent_nacks, timeout_nacks);
|
session_->check_send_nacks(nack_receiver_, track_desc_->ssrc_, sent_nacks, timeout_nacks);
|
||||||
statistic_->nacks += sent_nacks;
|
statistic_->nacks += sent_nacks;
|
||||||
|
|
||||||
|
@ -1754,6 +1753,18 @@ srs_error_t SrsRtcAudioRecvTrack::on_rtp(SrsRtcStream* source, SrsRtpPacket2* pk
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
srs_error_t SrsRtcAudioRecvTrack::check_send_nacks()
|
||||||
|
{
|
||||||
|
srs_error_t err = srs_success;
|
||||||
|
|
||||||
|
uint32_t timeout_nacks = 0;
|
||||||
|
if ((err = do_check_send_nacks(timeout_nacks)) != srs_success) {
|
||||||
|
return srs_error_wrap(err, "audio");
|
||||||
|
}
|
||||||
|
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
SrsRtcVideoRecvTrack::SrsRtcVideoRecvTrack(SrsRtcConnection* session, SrsRtcTrackDescription* track_desc)
|
SrsRtcVideoRecvTrack::SrsRtcVideoRecvTrack(SrsRtcConnection* session, SrsRtcTrackDescription* track_desc)
|
||||||
: SrsRtcRecvTrack(session, track_desc, false)
|
: SrsRtcRecvTrack(session, track_desc, false)
|
||||||
{
|
{
|
||||||
|
@ -1800,6 +1811,26 @@ srs_error_t SrsRtcVideoRecvTrack::on_rtp(SrsRtcStream* source, SrsRtpPacket2* pk
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
srs_error_t SrsRtcVideoRecvTrack::check_send_nacks()
|
||||||
|
{
|
||||||
|
srs_error_t err = srs_success;
|
||||||
|
|
||||||
|
uint32_t timeout_nacks = 0;
|
||||||
|
if ((err = do_check_send_nacks(timeout_nacks)) != srs_success) {
|
||||||
|
return srs_error_wrap(err, "video");
|
||||||
|
}
|
||||||
|
|
||||||
|
// If NACK timeout, start PLI if not requesting.
|
||||||
|
if (timeout_nacks == 0 || request_key_frame_) {
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
srs_trace("[Maybe] RTC: NACK timeout=%u, request PLI, track=%s, ssrc=%u", timeout_nacks,
|
||||||
|
track_desc_->id_.c_str(), track_desc_->ssrc_);
|
||||||
|
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
void SrsRtcVideoRecvTrack::request_keyframe()
|
void SrsRtcVideoRecvTrack::request_keyframe()
|
||||||
{
|
{
|
||||||
cid_of_subscriber_ = _srs_context->get_id();
|
cid_of_subscriber_ = _srs_context->get_id();
|
||||||
|
|
|
@ -501,7 +501,9 @@ protected:
|
||||||
srs_error_t on_nack(SrsRtpPacket2* pkt);
|
srs_error_t on_nack(SrsRtpPacket2* pkt);
|
||||||
public:
|
public:
|
||||||
virtual srs_error_t on_rtp(SrsRtcStream* source, SrsRtpPacket2* pkt) = 0;
|
virtual srs_error_t on_rtp(SrsRtcStream* source, SrsRtpPacket2* pkt) = 0;
|
||||||
virtual srs_error_t check_send_nacks();
|
virtual srs_error_t check_send_nacks() = 0;
|
||||||
|
protected:
|
||||||
|
virtual srs_error_t do_check_send_nacks(uint32_t& timeout_nacks);
|
||||||
};
|
};
|
||||||
|
|
||||||
class SrsRtcAudioRecvTrack : public SrsRtcRecvTrack
|
class SrsRtcAudioRecvTrack : public SrsRtcRecvTrack
|
||||||
|
@ -511,6 +513,7 @@ public:
|
||||||
virtual ~SrsRtcAudioRecvTrack();
|
virtual ~SrsRtcAudioRecvTrack();
|
||||||
public:
|
public:
|
||||||
virtual srs_error_t on_rtp(SrsRtcStream* source, SrsRtpPacket2* pkt);
|
virtual srs_error_t on_rtp(SrsRtcStream* source, SrsRtpPacket2* pkt);
|
||||||
|
virtual srs_error_t check_send_nacks();
|
||||||
};
|
};
|
||||||
|
|
||||||
class SrsRtcVideoRecvTrack : public SrsRtcRecvTrack
|
class SrsRtcVideoRecvTrack : public SrsRtcRecvTrack
|
||||||
|
@ -524,6 +527,7 @@ public:
|
||||||
virtual ~SrsRtcVideoRecvTrack();
|
virtual ~SrsRtcVideoRecvTrack();
|
||||||
public:
|
public:
|
||||||
virtual srs_error_t on_rtp(SrsRtcStream* source, SrsRtpPacket2* pkt);
|
virtual srs_error_t on_rtp(SrsRtcStream* source, SrsRtpPacket2* pkt);
|
||||||
|
virtual srs_error_t check_send_nacks();
|
||||||
public:
|
public:
|
||||||
void request_keyframe();
|
void request_keyframe();
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue