1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-02-15 04:42:04 +00:00

RTC: Update stat for nack

This commit is contained in:
winlin 2021-02-08 14:14:27 +08:00
parent e31169d306
commit d01a429c13
3 changed files with 28 additions and 2 deletions

View file

@ -65,6 +65,9 @@ SrsPps* _srs_pps_twcc = new SrsPps(_srs_clock);
SrsPps* _srs_pps_rr = new SrsPps(_srs_clock);
SrsPps* _srs_pps_pub = new SrsPps(_srs_clock);
extern SrsPps* _srs_pps_snack;
extern SrsPps* _srs_pps_snack2;
#define SRS_TICKID_RTCP 0
#define SRS_TICKID_TWCC 2
@ -2287,6 +2290,8 @@ srs_error_t SrsRtcConnection::send_rtcp(char *data, int nb_data)
void SrsRtcConnection::check_send_nacks(SrsRtpNackForReceiver* nack, uint32_t ssrc, uint32_t& sent_nacks, uint32_t& timeout_nacks)
{
++_srs_pps_snack->sugar;
SrsRtcpNack rtcpNack(ssrc);
rtcpNack.set_media_ssrc(ssrc);
@ -2297,6 +2302,8 @@ void SrsRtcConnection::check_send_nacks(SrsRtpNackForReceiver* nack, uint32_t ss
return;
}
++_srs_pps_snack2->sugar;
char buf[kRtcpPacketSize];
SrsBuffer stream(buf, sizeof(buf));

View file

@ -64,6 +64,11 @@ extern SrsPps* _srs_pps_timer;
extern SrsPps* _srs_pps_pub;
extern SrsPps* _srs_pps_dispose;
extern SrsPps* _srs_pps_snack;
extern SrsPps* _srs_pps_snack2;
extern SrsPps* _srs_pps_sanack;
extern SrsPps* _srs_pps_svnack;
SrsRtcBlackhole::SrsRtcBlackhole()
{
blackhole = false;
@ -668,16 +673,18 @@ srs_error_t SrsRtcServer::notify(int type, srs_utime_t interval, srs_utime_t tic
_srs_pps_cids_get->update(); _srs_pps_cids_set->update();
_srs_pps_pli->update(); _srs_pps_twcc->update(); _srs_pps_rr->update();
_srs_pps_timer->update(); _srs_pps_pub->update(); _srs_pps_dispose->update();
_srs_pps_snack->update(); _srs_pps_snack2->update(); _srs_pps_sanack->update(); _srs_pps_svnack->update();
// TODO: FIXME: Show more data for RTC server.
srs_trace("RTC: Server conns=%u, cpu=%.2f%%, rss=%dMB, pkts=%d, addrs=%d,%d, fid=%d,%d,%d, cid=%d,%d, rtcp=%d,%d,%d, timer=%d,%d, dispose=%d",
srs_trace("RTC: Server conns=%u, cpu=%.2f%%, rss=%dMB, pkts=%d, addrs=%d,%d, fid=%d,%d,%d, cid=%d,%d, rtcp=%d,%d,%d, timer=%d,%d, free=%d, nack=%d,%d,%d,%d",
nn_rtc_conns, u->percent * 100, memory,
_srs_pps_pkts->r10s(), _srs_pps_addrs->r10s(), _srs_pps_fast_addrs->r10s(),
_srs_pps_ids->r10s(), _srs_pps_fids->r10s(), _srs_pps_fids_level0->r10s(),
_srs_pps_cids_get->r10s(), _srs_pps_cids_set->r10s(),
_srs_pps_pli->r10s(), _srs_pps_twcc->r10s(), _srs_pps_rr->r10s(),
_srs_pps_timer->r10s(), _srs_pps_pub->r10s(),
_srs_pps_dispose->r10s()
_srs_pps_dispose->r10s(),
_srs_pps_snack->r10s(), _srs_pps_snack2->r10s(), _srs_pps_sanack->r10s(), _srs_pps_svnack->r10s()
);
return err;

View file

@ -48,6 +48,14 @@
#include <srs_app_rtc_codec.hpp>
#endif
#include <srs_protocol_kbps.hpp>
// The NACK sent by us(SFU).
SrsPps* _srs_pps_snack = new SrsPps(_srs_clock);
SrsPps* _srs_pps_snack2 = new SrsPps(_srs_clock);
SrsPps* _srs_pps_sanack = new SrsPps(_srs_clock);
SrsPps* _srs_pps_svnack = new SrsPps(_srs_clock);
// Firefox defaults as 109, Chrome is 111.
const int kAudioPayloadType = 111;
const int kAudioChannel = 2;
@ -1868,6 +1876,8 @@ srs_error_t SrsRtcAudioRecvTrack::check_send_nacks()
{
srs_error_t err = srs_success;
++_srs_pps_sanack->sugar;
uint32_t timeout_nacks = 0;
if ((err = do_check_send_nacks(timeout_nacks)) != srs_success) {
return srs_error_wrap(err, "audio");
@ -1931,6 +1941,8 @@ srs_error_t SrsRtcVideoRecvTrack::check_send_nacks()
{
srs_error_t err = srs_success;
++_srs_pps_svnack->sugar;
uint32_t timeout_nacks = 0;
if ((err = do_check_send_nacks(timeout_nacks)) != srs_success) {
return srs_error_wrap(err, "video");