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);