From 73eb60a9d5252fdc95c4fc6c965f6294f532cb17 Mon Sep 17 00:00:00 2001 From: winlin Date: Fri, 7 Aug 2020 16:51:48 +0800 Subject: [PATCH] Tenfold: Connection support send rtcp packet --- trunk/src/app/srs_app_rtc_conn.cpp | 17 +++++++++++++++++ trunk/src/app/srs_app_rtc_conn.hpp | 1 + 2 files changed, 18 insertions(+) diff --git a/trunk/src/app/srs_app_rtc_conn.cpp b/trunk/src/app/srs_app_rtc_conn.cpp index 988688557..4bfb43e32 100644 --- a/trunk/src/app/srs_app_rtc_conn.cpp +++ b/trunk/src/app/srs_app_rtc_conn.cpp @@ -2190,6 +2190,23 @@ srs_error_t SrsRtcConnection::notify(int type, srs_utime_t interval, srs_utime_t return err; } +srs_error_t SrsRtcConnection::send_rtcp(char *data, int nb_data) +{ + srs_error_t err = srs_success; + + int nb_buf = nb_data; + char protected_buf[kRtpPacketSize]; + if ((err = transport_->protect_rtcp(data, protected_buf, nb_buf)) != srs_success) { + return srs_error_wrap(err, "protect rtcp"); + } + + if ((err = sendonly_skt->sendto(protected_buf, nb_buf, 0)) != srs_success) { + return srs_error_wrap(err, "send"); + } + + return err; +} + void SrsRtcConnection::check_send_nacks(SrsRtpNackForReceiver* nack, uint32_t ssrc, uint32_t& sent_nacks) { // @see: https://tools.ietf.org/html/rfc4585#section-6.1 diff --git a/trunk/src/app/srs_app_rtc_conn.hpp b/trunk/src/app/srs_app_rtc_conn.hpp index e55c818b7..a711851cf 100644 --- a/trunk/src/app/srs_app_rtc_conn.hpp +++ b/trunk/src/app/srs_app_rtc_conn.hpp @@ -462,6 +462,7 @@ public: virtual srs_error_t notify(int type, srs_utime_t interval, srs_utime_t tick); public: // send rtcp + srs_error_t send_rtcp(char *data, int nb_data); void check_send_nacks(SrsRtpNackForReceiver* nack, uint32_t ssrc, uint32_t& sent_nacks); srs_error_t send_rtcp_rr(uint32_t ssrc, SrsRtpRingBuffer* rtp_queue, const uint64_t& last_send_systime, const SrsNtp& last_send_ntp); srs_error_t send_rtcp_xr_rrtr(uint32_t ssrc);