From 70a2140f274fb507c2e2bd4b224546ff50c8eb37 Mon Sep 17 00:00:00 2001 From: mtdxc Date: Sat, 22 Nov 2025 08:22:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DWebRtcProxyPusher=E9=80=9F?= =?UTF-8?q?=E7=8E=87=E4=B8=BA0=20bug=20(#4558)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webrtc/IceTransport.cpp | 19 +++++++++++++++++++ webrtc/IceTransport.hpp | 2 ++ webrtc/WebRtcProxyPusher.h | 3 +++ webrtc/WebRtcTransport.h | 2 ++ 4 files changed, 26 insertions(+) diff --git a/webrtc/IceTransport.cpp b/webrtc/IceTransport.cpp index f90b4ebd..c946b54e 100644 --- a/webrtc/IceTransport.cpp +++ b/webrtc/IceTransport.cpp @@ -2043,4 +2043,23 @@ size_t IceAgent::getRecvTotalBytes() { return ret; } +size_t IceAgent::getSendSpeed() { + size_t ret = 0; + for (auto s : _socket_candidate_manager.getAllSockets()) { + if (s && s->getSock()) { + ret += s->getSock()->getSendSpeed(); + } + } + return ret; +} + +size_t IceAgent::getSendTotalBytes() { + size_t ret = 0; + for (auto s : _socket_candidate_manager.getAllSockets()) { + if (s && s->getSock()) { + ret += s->getSock()->getSendTotalBytes(); + } + } + return ret; +} } // namespace RTC diff --git a/webrtc/IceTransport.hpp b/webrtc/IceTransport.hpp index d1e3050d..0d099990 100644 --- a/webrtc/IceTransport.hpp +++ b/webrtc/IceTransport.hpp @@ -555,6 +555,8 @@ public: Json::Value getChecklistInfo() const; size_t getRecvSpeed(); size_t getRecvTotalBytes(); + size_t getSendSpeed(); + size_t getSendTotalBytes(); protected: void gatheringSrflxCandidate(const Pair::Ptr& pair); diff --git a/webrtc/WebRtcProxyPusher.h b/webrtc/WebRtcProxyPusher.h index 9ba75cc0..7ec84309 100755 --- a/webrtc/WebRtcProxyPusher.h +++ b/webrtc/WebRtcProxyPusher.h @@ -34,6 +34,9 @@ public: void publish(const std::string &url) override; void teardown() override; + size_t getSendSpeed() override { return getWebRtcTransport() ? getWebRtcTransport()->getSendSpeed() : 0; } + size_t getSendTotalBytes() override { return getWebRtcTransport() ? getWebRtcTransport()->getSendTotalBytes() : 0; } + protected: //// WebRtcClient override//// void startConnect() override; diff --git a/webrtc/WebRtcTransport.h b/webrtc/WebRtcTransport.h index b6495cd1..7f254a19 100644 --- a/webrtc/WebRtcTransport.h +++ b/webrtc/WebRtcTransport.h @@ -165,6 +165,8 @@ public: void getTransportInfo(const std::function &callback) const; size_t getRecvSpeed() const { return _ice_agent ? _ice_agent->getRecvSpeed() : 0; } size_t getRecvTotalBytes() const { return _ice_agent ? _ice_agent->getRecvTotalBytes() : 0; } + size_t getSendSpeed() const { return _ice_agent ? _ice_agent->getSendSpeed() : 0; } + size_t getSendTotalBytes() const { return _ice_agent ? _ice_agent->getSendTotalBytes() : 0; } void setOnShutdown(std::function cb);