From dd30ab22cfb82c0b2b9a7d36e83d444ad7fe02fe Mon Sep 17 00:00:00 2001 From: xiongziliang <771730766@qq.com> Date: Sun, 21 Nov 2021 11:36:07 +0800 Subject: [PATCH] =?UTF-8?q?Performance:=20=E4=BD=BF=E7=94=A8=E5=BE=AA?= =?UTF-8?q?=E7=8E=AF=E6=B1=A0=E4=BC=98=E5=8C=96webrtc=E5=88=86=E5=8F=91?= =?UTF-8?q?=E6=80=A7=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webrtc/WebRtcTransport.cpp | 3 ++- webrtc/WebRtcTransport.h | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/webrtc/WebRtcTransport.cpp b/webrtc/WebRtcTransport.cpp index fc3e5c9e..2f396374 100644 --- a/webrtc/WebRtcTransport.cpp +++ b/webrtc/WebRtcTransport.cpp @@ -313,6 +313,7 @@ void WebRtcTransportImp::onCreate(){ WebRtcTransportImp::WebRtcTransportImp(const EventPoller::Ptr &poller) : WebRtcTransport(poller) { InfoL << getIdentifier(); + _packet_pool.setSize(64); } WebRtcTransportImp::~WebRtcTransportImp() { @@ -329,7 +330,7 @@ void WebRtcTransportImp::onSendSockData(const char *buf, size_t len, struct sock WarnL << "send data failed:" << len; return; } - auto ptr = BufferRaw::create(); + auto ptr = _packet_pool.obtain(); ptr->assign(buf, len); //一次性发送一帧的rtp数据,提高网络io性能 _session->setSendFlushFlag(flush); diff --git a/webrtc/WebRtcTransport.h b/webrtc/WebRtcTransport.h index 45fd2e72..2879944a 100644 --- a/webrtc/WebRtcTransport.h +++ b/webrtc/WebRtcTransport.h @@ -214,8 +214,6 @@ struct WrappedRtpTrack : public WrappedMediaTrack { void inputRtp(const char *buf, size_t len, uint64_t stamp_ms, RtpHeader *rtp) override; }; - - class WebRtcTransportImp : public WebRtcTransport { public: using Ptr = std::shared_ptr; @@ -281,6 +279,8 @@ private: unordered_map _ssrc_to_track; //根据接收rtp的pt获取相关信息 unordered_map> _pt_to_track; + //循环池 + ResourcePool _packet_pool; }; class WebRtcTransportManager {