From 77403dd970a3c12d87d2d87161dbb7fd31e004db Mon Sep 17 00:00:00 2001 From: winlin Date: Wed, 5 Aug 2020 16:38:23 +0800 Subject: [PATCH] RTC: Refine error log, show some plaintext body bytes. --- trunk/src/app/srs_app_rtc_conn.cpp | 20 ++++++++++++++++++-- trunk/src/app/srs_app_rtc_conn.hpp | 3 +++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/trunk/src/app/srs_app_rtc_conn.cpp b/trunk/src/app/srs_app_rtc_conn.cpp index 18cc80b35..282d924da 100644 --- a/trunk/src/app/srs_app_rtc_conn.cpp +++ b/trunk/src/app/srs_app_rtc_conn.cpp @@ -1038,8 +1038,24 @@ srs_error_t SrsRtcPublishStream::on_rtp(char* data, int nb_data) _srs_blackhole->sendto(unprotected_buf, nb_unprotected_buf); } - char* buf = unprotected_buf; - int nb_buf = nb_unprotected_buf; + // Handle the plaintext RTP packet. + if ((err = do_on_rtp(unprotected_buf, nb_unprotected_buf)) != srs_success) { + int nb_header = h.nb_bytes(); + const char* body = unprotected_buf + nb_header; + int nb_body = nb_unprotected_buf - nb_header; + return srs_error_wrap(err, "cipher=%u, plaintext=%u, body=%s", nb_data, nb_unprotected_buf, + srs_string_dumps_hex(body, nb_body, 8).c_str()); + } + + return err; +} + +srs_error_t SrsRtcPublishStream::do_on_rtp(char* plaintext, int nb_plaintext) +{ + srs_error_t err = srs_success; + + char* buf = plaintext; + int nb_buf = nb_plaintext; // Decode the RTP packet from buffer. SrsRtpPacket2* pkt = new SrsRtpPacket2(); diff --git a/trunk/src/app/srs_app_rtc_conn.hpp b/trunk/src/app/srs_app_rtc_conn.hpp index 74900f7c9..afe96eb04 100644 --- a/trunk/src/app/srs_app_rtc_conn.hpp +++ b/trunk/src/app/srs_app_rtc_conn.hpp @@ -261,6 +261,9 @@ private: srs_error_t send_rtcp_xr_rrtr(); public: srs_error_t on_rtp(char* buf, int nb_buf); +private: + srs_error_t do_on_rtp(char* plaintext, int nb_plaintext); +public: virtual void on_before_decode_payload(SrsRtpPacket2* pkt, SrsBuffer* buf, ISrsRtpPayloader** ppayload); private: srs_error_t send_periodic_twcc();