From 36d06edab3940497936ff22d85a992ada535f269 Mon Sep 17 00:00:00 2001 From: winlin Date: Fri, 17 Apr 2020 14:24:24 +0800 Subject: [PATCH] Refine performance --- trunk/src/app/srs_app_rtc_conn.cpp | 6 ++++++ trunk/src/app/srs_app_rtc_conn.hpp | 3 +++ trunk/src/kernel/srs_kernel_error.hpp | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/trunk/src/app/srs_app_rtc_conn.cpp b/trunk/src/app/srs_app_rtc_conn.cpp index daf5317b9..41033f0d0 100644 --- a/trunk/src/app/srs_app_rtc_conn.cpp +++ b/trunk/src/app/srs_app_rtc_conn.cpp @@ -1854,6 +1854,12 @@ srs_error_t SrsUdpMuxSender::initialize(srs_netfd_t fd, int senders) max_sendmmsg = _srs_config->get_rtc_server_sendmmsg(); bool gso = _srs_config->get_rtc_server_gso(); queue_length = srs_max(128, _srs_config->get_rtc_server_queue_length()); + + // For no GSO, we need larger queue. + if (!gso) { + queue_length *= 2; + } + srs_trace("UDP sender #%d init ok, max_sendmmsg=%d, gso=%d, queue_max=%dx%d", srs_netfd_fileno(fd), max_sendmmsg, gso, queue_length, senders); diff --git a/trunk/src/app/srs_app_rtc_conn.hpp b/trunk/src/app/srs_app_rtc_conn.hpp index 158b1e02f..51b4c00b6 100644 --- a/trunk/src/app/srs_app_rtc_conn.hpp +++ b/trunk/src/app/srs_app_rtc_conn.hpp @@ -185,10 +185,13 @@ private: uint16_t video_sequence; public: SrsUdpMuxSocket* sendonly_ukt; +private: ISrsUdpSender* sender; +private: bool merge_nalus; bool gso; int max_padding; + public: SrsRtcSenderThread(SrsRtcSession* s, SrsUdpMuxSocket* u, int parent_cid); virtual ~SrsRtcSenderThread(); diff --git a/trunk/src/kernel/srs_kernel_error.hpp b/trunk/src/kernel/srs_kernel_error.hpp index 5a6b8c6e5..c5421d640 100644 --- a/trunk/src/kernel/srs_kernel_error.hpp +++ b/trunk/src/kernel/srs_kernel_error.hpp @@ -422,7 +422,7 @@ public: }; // Error helpers, should use these functions to new or wrap an error. -#define srs_success SrsCplxError::success() +#define srs_success 0 // SrsCplxError::success() #define srs_error_new(ret, fmt, ...) SrsCplxError::create(__FUNCTION__, __FILE__, __LINE__, ret, fmt, ##__VA_ARGS__) #define srs_error_wrap(err, fmt, ...) SrsCplxError::wrap(__FUNCTION__, __FILE__, __LINE__, err, fmt, ##__VA_ARGS__) #define srs_error_copy(err) SrsCplxError::copy(err)