![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /proc/self/root/usr/local/lib/node_modules/mediasoup/worker/include/RTC/RTCP/ |
Upload File : |
#ifndef MS_RTC_RTCP_FEEDBACK_PS_HPP #define MS_RTC_RTCP_FEEDBACK_PS_HPP #include "common.hpp" #include "RTC/RTCP/Feedback.hpp" #include <vector> namespace RTC { namespace RTCP { template<typename Item> class FeedbackPsItemsPacket : public FeedbackPsPacket { public: using Iterator = typename std::vector<Item*>::iterator; public: static FeedbackPsItemsPacket<Item>* Parse(const uint8_t* data, size_t len); public: // Parsed Report. Points to an external data. explicit FeedbackPsItemsPacket(CommonHeader* commonHeader) : FeedbackPsPacket(commonHeader) { } explicit FeedbackPsItemsPacket(uint32_t senderSsrc, uint32_t mediaSsrc = 0) : FeedbackPsPacket(Item::messageType, senderSsrc, mediaSsrc) { } ~FeedbackPsItemsPacket() { for (auto* item : this->items) { delete item; } } void AddItem(Item* item) { this->items.push_back(item); } Iterator Begin() { return this->items.begin(); } Iterator End() { return this->items.end(); } /* Pure virtual methods inherited from Packet. */ public: void Dump() const override; size_t Serialize(uint8_t* buffer) override; size_t GetSize() const override { size_t size = FeedbackPsPacket::GetSize(); for (auto* item : this->items) { size += item->GetSize(); } return size; } private: std::vector<Item*> items; }; } // namespace RTCP } // namespace RTC #endif