From 9d38009b7f43bd30c58a311a5f69ed34d1b0dbc4 Mon Sep 17 00:00:00 2001 From: winlin Date: Mon, 17 Aug 2020 11:43:29 +0800 Subject: [PATCH] RTC: Ignore twcc if no need to feedback --- trunk/src/app/srs_app_rtc_conn.cpp | 4 ++++ trunk/src/kernel/srs_kernel_rtc_rtcp.cpp | 5 +++++ trunk/src/kernel/srs_kernel_rtc_rtcp.hpp | 1 + 3 files changed, 10 insertions(+) diff --git a/trunk/src/app/srs_app_rtc_conn.cpp b/trunk/src/app/srs_app_rtc_conn.cpp index 68dc85b8e..f8d671f83 100644 --- a/trunk/src/app/srs_app_rtc_conn.cpp +++ b/trunk/src/app/srs_app_rtc_conn.cpp @@ -1142,6 +1142,10 @@ srs_error_t SrsRtcPublishStream::send_periodic_twcc() { srs_error_t err = srs_success; + if (!rtcp_twcc_.need_feedback()) { + return err; + } + char pkt[kRtcpPacketSize]; SrsBuffer *buffer = new SrsBuffer(pkt, sizeof(pkt)); SrsAutoFree(SrsBuffer, buffer); diff --git a/trunk/src/kernel/srs_kernel_rtc_rtcp.cpp b/trunk/src/kernel/srs_kernel_rtc_rtcp.cpp index d18d6186b..785d21eef 100644 --- a/trunk/src/kernel/srs_kernel_rtc_rtcp.cpp +++ b/trunk/src/kernel/srs_kernel_rtc_rtcp.cpp @@ -801,6 +801,11 @@ srs_error_t SrsRtcpTWCC::recv_packet(uint16_t sn, srs_utime_t ts) return srs_success; } +bool SrsRtcpTWCC::need_feedback() +{ + return recv_packets_.size() > 0; +} + srs_error_t SrsRtcpTWCC::decode(SrsBuffer *buffer) { /* diff --git a/trunk/src/kernel/srs_kernel_rtc_rtcp.hpp b/trunk/src/kernel/srs_kernel_rtc_rtcp.hpp index 781949887..c59759dd2 100644 --- a/trunk/src/kernel/srs_kernel_rtc_rtcp.hpp +++ b/trunk/src/kernel/srs_kernel_rtc_rtcp.hpp @@ -299,6 +299,7 @@ public: void add_recv_delta(uint16_t delta); srs_error_t recv_packet(uint16_t sn, srs_utime_t ts); + bool need_feedback(); // interface ISrsCodec public: