From 6d64490d738ff6b8f51f80dce80bb1297bec9416 Mon Sep 17 00:00:00 2001 From: winlin Date: Sat, 27 Feb 2021 19:49:44 +0800 Subject: [PATCH] Perf: Never reset the csrc --- trunk/src/kernel/srs_kernel_rtc_rtp.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/trunk/src/kernel/srs_kernel_rtc_rtp.cpp b/trunk/src/kernel/srs_kernel_rtc_rtp.cpp index 17f2bf7b3..76d651da9 100644 --- a/trunk/src/kernel/srs_kernel_rtc_rtp.cpp +++ b/trunk/src/kernel/srs_kernel_rtc_rtp.cpp @@ -202,8 +202,6 @@ SrsRtpExtensionType SrsRtpExtensionTypes::get_type(int id) const return kInvalidType; } - - SrsRtpExtensionTwcc::SrsRtpExtensionTwcc() { reset(); @@ -556,6 +554,8 @@ srs_error_t SrsRtpExtensions::set_audio_level(int id, uint8_t level) SrsRtpHeader::SrsRtpHeader() { reset(); + + memset(csrc, 0, sizeof(csrc)); } SrsRtpHeader::~SrsRtpHeader() @@ -564,17 +564,23 @@ SrsRtpHeader::~SrsRtpHeader() void SrsRtpHeader::reset() { - padding_length = 0; + // Reset the fields in protocol. cc = 0; marker = false; payload_type = 0; sequence = 0; timestamp = 0; ssrc = 0; - memset(csrc, 0, sizeof(csrc)); - ignore_padding_ = false; + // Reset the parsed fields. + padding_length = 0; extensions_.reset(); + + // Reset other fields. + ignore_padding_ = false; + + // The CSRC is not used yet, so we never reset it. + //memset(csrc, 0, sizeof(csrc)); } srs_error_t SrsRtpHeader::decode(SrsBuffer* buf)