diff --git a/src/Rtp/RtpProcess.cpp b/src/Rtp/RtpProcess.cpp index d004110b..b8c497a6 100644 --- a/src/Rtp/RtpProcess.cpp +++ b/src/Rtp/RtpProcess.cpp @@ -280,19 +280,22 @@ std::shared_ptr RtpProcess::getOriginSock(MediaSource &sender) const { toolkit::EventPoller::Ptr RtpProcess::getOwnerPoller(MediaSource &sender) { return _sock ? _sock->getPoller() : nullptr; } -void RtpProcess::setHelper(const std::weak_ptr &help) -{ - _help=help; + +void RtpProcess::setHelper(const std::weak_ptr help){ + _help = std::move(help); } -int RtpProcess::getLossRate(MediaSource &sender, TrackType type) -{ + +int RtpProcess::getLossRate(MediaSource &sender, TrackType type){ auto help = _help.lock(); + if(!help){ + return -1; + } auto expected = help->getExpectedPacketsInterval(); if (!expected) { return 0; } - return help->geLostInterval() * 100 / expected; } + }//namespace mediakit #endif//defined(ENABLE_RTPPROXY) \ No newline at end of file diff --git a/src/Rtp/RtpProcess.h b/src/Rtp/RtpProcess.h index 1241c21d..89e9b575 100644 --- a/src/Rtp/RtpProcess.h +++ b/src/Rtp/RtpProcess.h @@ -67,7 +67,7 @@ public: int getTotalReaderCount(); void setListener(const std::weak_ptr &listener); - void setHelper(const std::weak_ptr &help); + void setHelper(const std::weak_ptr help); int getLossRate(MediaSource &sender, TrackType type) override; protected: bool inputFrame(const Frame::Ptr &frame) override;