From 989214942a576a9b796f1300b81400304838281d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Mill=C3=A1n?= Date: Fri, 9 Sep 2022 10:40:44 +0200 Subject: [PATCH] Do not create a std::vector in Consumer::GetRtpStreams() (#902) No need to allocate that memory every time the method is called, which is done every time a RTCP Compound packet is sent out. Return a reference to the original vector instead. --- worker/include/RTC/Consumer.hpp | 2 +- worker/include/RTC/PipeConsumer.hpp | 2 +- worker/include/RTC/SimpleConsumer.hpp | 2 +- worker/include/RTC/SimulcastConsumer.hpp | 2 +- worker/include/RTC/SvcConsumer.hpp | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/worker/include/RTC/Consumer.hpp b/worker/include/RTC/Consumer.hpp index 1851c929a4f..7f0131d1b78 100644 --- a/worker/include/RTC/Consumer.hpp +++ b/worker/include/RTC/Consumer.hpp @@ -143,7 +143,7 @@ namespace RTC virtual void ApplyLayers() = 0; virtual uint32_t GetDesiredBitrate() const = 0; virtual void SendRtpPacket(RTC::RtpPacket* packet, std::shared_ptr& sharedPacket) = 0; - virtual std::vector GetRtpStreams() = 0; + virtual const std::vector& GetRtpStreams() const = 0; virtual void GetRtcp( RTC::RTCP::CompoundPacket* packet, RTC::RtpStreamSend* rtpStream, uint64_t nowMs) = 0; virtual void NeedWorstRemoteFractionLost(uint32_t mappedSsrc, uint8_t& worstRemoteFractionLost) = 0; diff --git a/worker/include/RTC/PipeConsumer.hpp b/worker/include/RTC/PipeConsumer.hpp index cba27bd46e8..2250d81ee2b 100644 --- a/worker/include/RTC/PipeConsumer.hpp +++ b/worker/include/RTC/PipeConsumer.hpp @@ -31,7 +31,7 @@ namespace RTC uint32_t GetDesiredBitrate() const override; void SendRtpPacket(RTC::RtpPacket* packet, std::shared_ptr& sharedPacket) override; void GetRtcp(RTC::RTCP::CompoundPacket* packet, RTC::RtpStreamSend* rtpStream, uint64_t nowMs) override; - std::vector GetRtpStreams() override + const std::vector& GetRtpStreams() const override { return this->rtpStreams; } diff --git a/worker/include/RTC/SimpleConsumer.hpp b/worker/include/RTC/SimpleConsumer.hpp index 93b67245a8e..8e05ac1ef51 100644 --- a/worker/include/RTC/SimpleConsumer.hpp +++ b/worker/include/RTC/SimpleConsumer.hpp @@ -40,7 +40,7 @@ namespace RTC void ApplyLayers() override; uint32_t GetDesiredBitrate() const override; void SendRtpPacket(RTC::RtpPacket* packet, std::shared_ptr& sharedPacket) override; - std::vector GetRtpStreams() override + const std::vector& GetRtpStreams() const override { return this->rtpStreams; } diff --git a/worker/include/RTC/SimulcastConsumer.hpp b/worker/include/RTC/SimulcastConsumer.hpp index beec1f6ccf4..7702e2b7b22 100644 --- a/worker/include/RTC/SimulcastConsumer.hpp +++ b/worker/include/RTC/SimulcastConsumer.hpp @@ -57,7 +57,7 @@ namespace RTC uint32_t GetDesiredBitrate() const override; void SendRtpPacket(RTC::RtpPacket* packet, std::shared_ptr& sharedPacket) override; void GetRtcp(RTC::RTCP::CompoundPacket* packet, RTC::RtpStreamSend* rtpStream, uint64_t nowMs) override; - std::vector GetRtpStreams() override + const std::vector& GetRtpStreams() const override { return this->rtpStreams; } diff --git a/worker/include/RTC/SvcConsumer.hpp b/worker/include/RTC/SvcConsumer.hpp index 3df98d9695a..d44c9023322 100644 --- a/worker/include/RTC/SvcConsumer.hpp +++ b/worker/include/RTC/SvcConsumer.hpp @@ -52,7 +52,7 @@ namespace RTC uint32_t GetDesiredBitrate() const override; void SendRtpPacket(RTC::RtpPacket* packet, std::shared_ptr& sharedPacket) override; void GetRtcp(RTC::RTCP::CompoundPacket* packet, RTC::RtpStreamSend* rtpStream, uint64_t nowMs) override; - std::vector GetRtpStreams() override + const std::vector& GetRtpStreams() const override { return this->rtpStreams; }