From 627688c58237d03869771193e7f7b2672d3ca7a4 Mon Sep 17 00:00:00 2001 From: winlin Date: Mon, 8 Feb 2021 16:23:13 +0800 Subject: [PATCH] RTC: Update stat for received nack --- trunk/src/app/srs_app_rtc_conn.cpp | 5 +++++ trunk/src/app/srs_app_rtc_server.cpp | 10 +++++++--- trunk/src/app/srs_app_rtc_source.cpp | 5 +++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/trunk/src/app/srs_app_rtc_conn.cpp b/trunk/src/app/srs_app_rtc_conn.cpp index de7f94874..34f7dc743 100644 --- a/trunk/src/app/srs_app_rtc_conn.cpp +++ b/trunk/src/app/srs_app_rtc_conn.cpp @@ -68,6 +68,9 @@ SrsPps* _srs_pps_pub = new SrsPps(_srs_clock); extern SrsPps* _srs_pps_snack; extern SrsPps* _srs_pps_snack2; +extern SrsPps* _srs_pps_rnack; +extern SrsPps* _srs_pps_rnack2; + #define SRS_TICKID_RTCP 0 #define SRS_TICKID_TWCC 2 @@ -756,6 +759,8 @@ srs_error_t SrsRtcPlayStream::on_rtcp_nack(SrsRtcpNack* rtcp) { srs_error_t err = srs_success; + ++_srs_pps_rnack->sugar; + uint32_t ssrc = rtcp->get_media_ssrc(); // If NACK disabled, print a log. diff --git a/trunk/src/app/srs_app_rtc_server.cpp b/trunk/src/app/srs_app_rtc_server.cpp index 6092e8be1..2347fd156 100644 --- a/trunk/src/app/srs_app_rtc_server.cpp +++ b/trunk/src/app/srs_app_rtc_server.cpp @@ -65,6 +65,9 @@ extern SrsPps* _srs_pps_snack2; extern SrsPps* _srs_pps_sanack; extern SrsPps* _srs_pps_svnack; +extern SrsPps* _srs_pps_rnack; +extern SrsPps* _srs_pps_rnack2; + SrsRtcBlackhole::SrsRtcBlackhole() { blackhole = false; @@ -671,13 +674,14 @@ srs_error_t SrsRtcServer::notify(int type, srs_utime_t interval, srs_utime_t tic _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, rtcp=%d,%d,%d, timer=%d,%d, nack=%d,%d,%d,%d", + srs_trace("RTC: Server conns=%u, cpu=%.2f%%, rss=%dMB, pkts=%d, addrs=%d,%d, fid=%d,%d,%d, rtcp=%d,%d,%d, timer=%d,%d, snk=%d,%d,%d,%d, rnk=%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_pli->r10s(), _srs_pps_twcc->r10s(), _srs_pps_rr->r10s(), - _srs_pps_timer->r10s(), _srs_pps_pub->r10s() - _srs_pps_snack->r10s(), _srs_pps_snack2->r10s(), _srs_pps_sanack->r10s(), _srs_pps_svnack->r10s() + _srs_pps_timer->r10s(), _srs_pps_pub->r10s(), + _srs_pps_snack->r10s(), _srs_pps_snack2->r10s(), _srs_pps_sanack->r10s(), _srs_pps_svnack->r10s(), + _srs_pps_rnack->r10s(), _srs_pps_rnack2->r10s() ); return err; diff --git a/trunk/src/app/srs_app_rtc_source.cpp b/trunk/src/app/srs_app_rtc_source.cpp index 8ebf76eef..24898f3fb 100644 --- a/trunk/src/app/srs_app_rtc_source.cpp +++ b/trunk/src/app/srs_app_rtc_source.cpp @@ -56,6 +56,9 @@ SrsPps* _srs_pps_snack2 = new SrsPps(_srs_clock); SrsPps* _srs_pps_sanack = new SrsPps(_srs_clock); SrsPps* _srs_pps_svnack = new SrsPps(_srs_clock); +SrsPps* _srs_pps_rnack = new SrsPps(_srs_clock); +SrsPps* _srs_pps_rnack2 = new SrsPps(_srs_clock); + // Firefox defaults as 109, Chrome is 111. const int kAudioPayloadType = 111; const int kAudioChannel = 2; @@ -2032,6 +2035,8 @@ srs_error_t SrsRtcSendTrack::on_recv_nack(const vector& lost_seqs, Srs { srs_error_t err = srs_success; + ++_srs_pps_rnack2->sugar; + SrsRtcTrackStatistic* statistic = statistic_; statistic->nacks++;