diff --git a/CMakeLists.txt b/CMakeLists.txt index 0f1a209..e76c5e7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -74,9 +74,9 @@ set(LIBDATACHANNEL_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/h264rtppacketizer.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/nalunit.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/h264packetizationhandler.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/rtcpchainablehandler.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/messagehandlerelement.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/messagehandlerrootelement.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/mediachainablehandler.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/mediahandlerelement.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/mediahandlerrootelement.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/rtcpnackresponder.cpp ) @@ -96,7 +96,7 @@ set(LIBDATACHANNEL_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/include/rtc/configuration.hpp ${CMAKE_CURRENT_SOURCE_DIR}/include/rtc/datachannel.hpp ${CMAKE_CURRENT_SOURCE_DIR}/include/rtc/description.hpp - ${CMAKE_CURRENT_SOURCE_DIR}/include/rtc/rtcphandler.hpp + ${CMAKE_CURRENT_SOURCE_DIR}/include/rtc/mediahandler.hpp ${CMAKE_CURRENT_SOURCE_DIR}/include/rtc/rtcpreceivingsession.hpp ${CMAKE_CURRENT_SOURCE_DIR}/include/rtc/include.hpp ${CMAKE_CURRENT_SOURCE_DIR}/include/rtc/init.hpp @@ -118,9 +118,9 @@ set(LIBDATACHANNEL_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/include/rtc/h264rtppacketizer.hpp ${CMAKE_CURRENT_SOURCE_DIR}/include/rtc/nalunit.hpp ${CMAKE_CURRENT_SOURCE_DIR}/include/rtc/h264packetizationhandler.hpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/rtcpchainablehandler.hpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/messagehandlerelement.hpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/messagehandlerrootelement.hpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/mediachainablehandler.hpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/mediahandlerelement.hpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/mediahandlerrootelement.hpp ${CMAKE_CURRENT_SOURCE_DIR}/src/rtcpnackresponder.hpp ) diff --git a/include/rtc/h264packetizationhandler.hpp b/include/rtc/h264packetizationhandler.hpp index f7403eb..34a690d 100644 --- a/include/rtc/h264packetizationhandler.hpp +++ b/include/rtc/h264packetizationhandler.hpp @@ -23,12 +23,12 @@ #include "h264rtppacketizer.hpp" #include "nalunit.hpp" -#include "rtcpchainablehandler.hpp" +#include "mediachainablehandler.hpp" namespace rtc { /// Handler for H264 packetization -class RTC_CPP_EXPORT H264PacketizationHandler : public RtcpChainableHandler { +class RTC_CPP_EXPORT H264PacketizationHandler : public MediaChainableHandler { public: /// Construct handler for H264 packetization. /// @param packetizer RTP packetizer for h264 diff --git a/include/rtc/h264rtppacketizer.hpp b/include/rtc/h264rtppacketizer.hpp index 82c0741..59fe708 100644 --- a/include/rtc/h264rtppacketizer.hpp +++ b/include/rtc/h264rtppacketizer.hpp @@ -23,12 +23,12 @@ #include "nalunit.hpp" #include "rtppacketizer.hpp" -#include "messagehandlerrootelement.hpp" +#include "mediahandlerrootelement.hpp" namespace rtc { /// RTP packetization of h264 payload -class RTC_CPP_EXPORT H264RtpPacketizer : public RtpPacketizer, public MessageHandlerRootElement { +class RTC_CPP_EXPORT H264RtpPacketizer : public RtpPacketizer, public MediaHandlerRootElement { std::shared_ptr splitMessage(binary_ptr message); const uint16_t maximumFragmentSize; diff --git a/include/rtc/rtcpchainablehandler.hpp b/include/rtc/mediachainablehandler.hpp similarity index 72% rename from include/rtc/rtcpchainablehandler.hpp rename to include/rtc/mediachainablehandler.hpp index d9a63ba..74976f2 100644 --- a/include/rtc/rtcpchainablehandler.hpp +++ b/include/rtc/mediachainablehandler.hpp @@ -15,19 +15,19 @@ * along with this program; If not, see . */ -#ifndef RTC_RTCP_CHAINABLE_HANDLER_H -#define RTC_RTCP_CHAINABLE_HANDLER_H +#ifndef RTC_MEDIA_CHAINABLE_HANDLER_H +#define RTC_MEDIA_CHAINABLE_HANDLER_H #if RTC_ENABLE_MEDIA -#include "rtcphandler.hpp" -#include "messagehandlerrootelement.hpp" +#include "mediahandler.hpp" +#include "mediahandlerrootelement.hpp" namespace rtc { -class RTC_CPP_EXPORT RtcpChainableHandler : public RtcpHandler { - const std::shared_ptr root; - std::shared_ptr leaf; +class RTC_CPP_EXPORT MediaChainableHandler : public MediaHandler { + const std::shared_ptr root; + std::shared_ptr leaf; std::mutex inoutMutex; std::optional handleIncomingBinary(message_ptr); @@ -36,8 +36,8 @@ class RTC_CPP_EXPORT RtcpChainableHandler : public RtcpHandler { std::optional handleOutgoingControl(message_ptr); bool sendProduct(ChainedOutgoingResponseProduct product); public: - RtcpChainableHandler(std::shared_ptr root); - ~RtcpChainableHandler(); + MediaChainableHandler(std::shared_ptr root); + ~MediaChainableHandler(); message_ptr incoming(message_ptr ptr) override; message_ptr outgoing(message_ptr ptr) override; @@ -45,11 +45,11 @@ public: /// Adds element to chain /// @param chainable Chainable element - void addToChain(std::shared_ptr chainable); + void addToChain(std::shared_ptr chainable); }; } // namespace rtc #endif // RTC_ENABLE_MEDIA -#endif // RTC_RTCP_CHAINABLE_HANDLER_H +#endif // RTC_MEDIA_CHAINABLE_HANDLER_H diff --git a/include/rtc/rtcphandler.hpp b/include/rtc/mediahandler.hpp similarity index 92% rename from include/rtc/rtcphandler.hpp rename to include/rtc/mediahandler.hpp index 2c7ee3e..e9203f8 100644 --- a/include/rtc/rtcphandler.hpp +++ b/include/rtc/mediahandler.hpp @@ -17,15 +17,15 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef RTC_RTCP_HANDLER_H -#define RTC_RTCP_HANDLER_H +#ifndef RTC_MEDIA_HANDLER_H +#define RTC_MEDIA_HANDLER_H #include "include.hpp" #include "message.hpp" namespace rtc { -class RTC_CPP_EXPORT RtcpHandler { +class RTC_CPP_EXPORT MediaHandler { protected: // Use this callback when trying to send custom data (such as RTCP) to the client. synchronized_callback outgoingCallback; @@ -47,4 +47,4 @@ public: } // namespace rtc -#endif // RTC_RTCP_HANDLER_H +#endif // RTC_MEDIA_HANDLER_H diff --git a/include/rtc/messagehandlerelement.hpp b/include/rtc/mediahandlerelement.hpp similarity index 90% rename from include/rtc/messagehandlerelement.hpp rename to include/rtc/mediahandlerelement.hpp index 6174367..86f502d 100644 --- a/include/rtc/messagehandlerelement.hpp +++ b/include/rtc/mediahandlerelement.hpp @@ -15,8 +15,8 @@ * along with this program; If not, see . */ -#ifndef RTC_MESSAGE_HANDLER_ELEMENT_H -#define RTC_MESSAGE_HANDLER_ELEMENT_H +#ifndef RTC_MEDIA_HANDLER_ELEMENT_H +#define RTC_MEDIA_HANDLER_ELEMENT_H #if RTC_ENABLE_MEDIA @@ -60,15 +60,15 @@ struct RTC_CPP_EXPORT ChainedIncomingControlProduct { }; /// Chainable handler -class RTC_CPP_EXPORT MessageHandlerElement: public std::enable_shared_from_this { - std::optional> upstream = nullopt; - std::optional> downstream = nullopt; +class RTC_CPP_EXPORT MediaHandlerElement: public std::enable_shared_from_this { + std::optional> upstream = nullopt; + std::optional> downstream = nullopt; void prepareAndSendResponse(std::optional outgoing, std::function send); void removeFromChain(); public: - MessageHandlerElement(); + MediaHandlerElement(); /// Creates response to incoming message /// @param messages Current repsonse @@ -105,7 +105,7 @@ public: /// Set given element as upstream to this /// @param upstream Upstream element /// @returns Upstream element - std::shared_ptr chainWith(std::shared_ptr upstream); + std::shared_ptr chainWith(std::shared_ptr upstream); /// Remove all downstream elements from chain void recursiveRemoveChain(); @@ -115,4 +115,4 @@ public: #endif // RTC_ENABLE_MEDIA -#endif // RTC_MESSAGE_HANDLER_ELEMENT_H +#endif // RTC_MEDIA_HANDLER_ELEMENT_H diff --git a/include/rtc/messagehandlerrootelement.hpp b/include/rtc/mediahandlerrootelement.hpp similarity index 79% rename from include/rtc/messagehandlerrootelement.hpp rename to include/rtc/mediahandlerrootelement.hpp index e2bf938..f6d913b 100644 --- a/include/rtc/messagehandlerrootelement.hpp +++ b/include/rtc/mediahandlerrootelement.hpp @@ -15,19 +15,19 @@ * along with this program; If not, see . */ -#ifndef RTCP_MESSAGE_HANDLER_ROOT_ELEMENT_H -#define RTCP_MESSAGE_HANDLER_ROOT_ELEMENT_H +#ifndef RTCP_MEDIA_HANDLER_ROOT_ELEMENT_H +#define RTCP_MEDIA_HANDLER_ROOT_ELEMENT_H #if RTC_ENABLE_MEDIA -#include "messagehandlerelement.hpp" +#include "mediahandlerelement.hpp" namespace rtc { /// Chainable message handler -class RTC_CPP_EXPORT MessageHandlerRootElement : public MessageHandlerElement { +class RTC_CPP_EXPORT MediaHandlerRootElement : public MediaHandlerElement { public: - MessageHandlerRootElement() { } + MediaHandlerRootElement() { } /// Reduce multiple messages into one message /// @param messages Messages to reduce @@ -42,4 +42,4 @@ public: #endif // RTC_ENABLE_MEDIA -#endif // RTCP_MESSAGE_HANDLER_ROOT_ELEMENT_H +#endif // RTCP_MEDIA_HANDLER_ROOT_ELEMENT_H diff --git a/include/rtc/opuspacketizationhandler.hpp b/include/rtc/opuspacketizationhandler.hpp index 8b2f94e..3ff3f1b 100644 --- a/include/rtc/opuspacketizationhandler.hpp +++ b/include/rtc/opuspacketizationhandler.hpp @@ -22,12 +22,12 @@ #if RTC_ENABLE_MEDIA #include "opusrtppacketizer.hpp" -#include "rtcpchainablehandler.hpp" +#include "mediachainablehandler.hpp" namespace rtc { /// Handler for opus packetization -class RTC_CPP_EXPORT OpusPacketizationHandler : public RtcpChainableHandler { +class RTC_CPP_EXPORT OpusPacketizationHandler : public MediaChainableHandler { public: /// Construct handler for opus packetization. diff --git a/include/rtc/opusrtppacketizer.hpp b/include/rtc/opusrtppacketizer.hpp index a410c8d..42d5d00 100644 --- a/include/rtc/opusrtppacketizer.hpp +++ b/include/rtc/opusrtppacketizer.hpp @@ -22,12 +22,12 @@ #if RTC_ENABLE_MEDIA #include "rtppacketizer.hpp" -#include "messagehandlerrootelement.hpp" +#include "mediahandlerrootelement.hpp" namespace rtc { /// RTP packetizer for opus -class RTC_CPP_EXPORT OpusRtpPacketizer : public RtpPacketizer, public MessageHandlerRootElement { +class RTC_CPP_EXPORT OpusRtpPacketizer : public RtpPacketizer, public MediaHandlerRootElement { public: /// default clock rate used in opus RTP communication static const uint32_t defaultClockRate = 48 * 1000; diff --git a/include/rtc/rtc.hpp b/include/rtc/rtc.hpp index 74795a7..e09b965 100644 --- a/include/rtc/rtc.hpp +++ b/include/rtc/rtc.hpp @@ -27,9 +27,9 @@ #if RTC_ENABLE_MEDIA -// RTCP handling +// Media handling #include "rtcpreceivingsession.hpp" -#include "rtcpchainablehandler.hpp" +#include "mediachainablehandler.hpp" #include "rtcpsrreporter.hpp" #include "rtcpnackresponder.hpp" diff --git a/include/rtc/rtcpnackresponder.hpp b/include/rtc/rtcpnackresponder.hpp index a831956..0eafd77 100644 --- a/include/rtc/rtcpnackresponder.hpp +++ b/include/rtc/rtcpnackresponder.hpp @@ -20,14 +20,14 @@ #if RTC_ENABLE_MEDIA -#include "messagehandlerelement.hpp" +#include "mediahandlerelement.hpp" #include #include namespace rtc { -class RTC_CPP_EXPORT RtcpNackResponder: public MessageHandlerElement { +class RTC_CPP_EXPORT RtcpNackResponder: public MediaHandlerElement { /// Packet storage class RTC_CPP_EXPORT Storage { diff --git a/include/rtc/rtcpreceivingsession.hpp b/include/rtc/rtcpreceivingsession.hpp index 2e2595a..5ad31f5 100644 --- a/include/rtc/rtcpreceivingsession.hpp +++ b/include/rtc/rtcpreceivingsession.hpp @@ -23,14 +23,14 @@ #if RTC_ENABLE_MEDIA #include "include.hpp" -#include "rtcphandler.hpp" +#include "mediahandler.hpp" #include "message.hpp" #include "rtp.hpp" namespace rtc { // An RtcpSession can be plugged into a Track to handle the whole RTCP session -class RTC_CPP_EXPORT RtcpReceivingSession : public RtcpHandler { +class RTC_CPP_EXPORT RtcpReceivingSession : public MediaHandler { public: message_ptr incoming(message_ptr ptr) override; message_ptr outgoing(message_ptr ptr) override; diff --git a/include/rtc/rtcpsrreporter.hpp b/include/rtc/rtcpsrreporter.hpp index be16861..f951460 100644 --- a/include/rtc/rtcpsrreporter.hpp +++ b/include/rtc/rtcpsrreporter.hpp @@ -22,11 +22,11 @@ #include "message.hpp" #include "rtppacketizationconfig.hpp" -#include "messagehandlerelement.hpp" +#include "mediahandlerelement.hpp" namespace rtc { -class RTC_CPP_EXPORT RtcpSrReporter: public MessageHandlerElement { +class RTC_CPP_EXPORT RtcpSrReporter: public MediaHandlerElement { bool needsToReport = false; diff --git a/include/rtc/track.hpp b/include/rtc/track.hpp index a6c0636..8bac4db 100644 --- a/include/rtc/track.hpp +++ b/include/rtc/track.hpp @@ -24,7 +24,7 @@ #include "include.hpp" #include "message.hpp" #include "queue.hpp" -#include "rtcphandler.hpp" +#include "mediahandler.hpp" #include #include @@ -62,8 +62,8 @@ public: bool requestKeyframe(); // RTCP handler - void setRtcpHandler(std::shared_ptr handler); - std::shared_ptr getRtcpHandler(); + void setRtcpHandler(std::shared_ptr handler); + std::shared_ptr getRtcpHandler(); private: #if RTC_ENABLE_MEDIA @@ -80,7 +80,7 @@ private: Queue mRecvQueue; std::shared_mutex mRtcpHandlerMutex; - std::shared_ptr mRtcpHandler; + std::shared_ptr mRtcpHandler; friend class PeerConnection; }; diff --git a/src/capi.cpp b/src/capi.cpp index 15f0493..b961db5 100644 --- a/src/capi.cpp +++ b/src/capi.cpp @@ -53,7 +53,7 @@ std::unordered_map> peerConnectionMap; std::unordered_map> dataChannelMap; std::unordered_map> trackMap; #if RTC_ENABLE_MEDIA -std::unordered_map> rtcpChainableHandlerMap; +std::unordered_map> rtcpChainableHandlerMap; std::unordered_map> rtcpSrReporterMap; std::unordered_map> rtpConfigMap; #endif @@ -165,7 +165,7 @@ void emplaceRtcpSrReporter(shared_ptr ptr, int tr) { rtcpSrReporterMap.emplace(std::make_pair(tr, ptr)); } -shared_ptr getRTCPChainableHandler(int id) { +shared_ptr getMediaChainableHandler(int id) { std::lock_guard lock(mutex); if (auto it = rtcpChainableHandlerMap.find(id); it != rtcpChainableHandlerMap.end()) { return it->second; @@ -174,7 +174,7 @@ shared_ptr getRTCPChainableHandler(int id) { } } -void emplaceRTCPChainableHandler(shared_ptr ptr, int tr) { +void emplaceMediaChainableHandler(shared_ptr ptr, int tr) { std::lock_guard lock(mutex); rtcpChainableHandlerMap.emplace(std::make_pair(tr, ptr)); } @@ -557,7 +557,7 @@ int rtcSetH264PacketizationHandler(int tr, uint32_t ssrc, const char *cname, uin auto packetizer = std::make_shared(rtpConfig, maxFragmentSize); // create H264 handler auto h264Handler = std::make_shared(packetizer); - emplaceRTCPChainableHandler(h264Handler, tr); + emplaceMediaChainableHandler(h264Handler, tr); emplaceRTPConfig(rtpConfig, tr); // set handler track->setRtcpHandler(h264Handler); @@ -576,7 +576,7 @@ int rtcSetOpusPacketizationHandler(int tr, uint32_t ssrc, const char *cname, uin auto packetizer = std::make_shared(rtpConfig); // create Opus handler auto opusHandler = std::make_shared(packetizer); - emplaceRTCPChainableHandler(opusHandler, tr); + emplaceMediaChainableHandler(opusHandler, tr); emplaceRTPConfig(rtpConfig, tr); // set handler track->setRtcpHandler(opusHandler); @@ -588,7 +588,7 @@ int rtcChainRtcpSrReporter(int tr) { auto config = getRTPConfig(tr); auto reporter = std::make_shared(config); emplaceRtcpSrReporter(reporter, tr); - auto chainableHandler = getRTCPChainableHandler(tr); + auto chainableHandler = getMediaChainableHandler(tr); chainableHandler->addToChain(reporter); }); } @@ -596,7 +596,7 @@ int rtcChainRtcpSrReporter(int tr) { int rtcChainRtcpNackResponder(int tr, unsigned maxStoredPacketsCount) { return WRAP({ auto responder = std::make_shared(maxStoredPacketsCount); - auto chainableHandler = getRTCPChainableHandler(tr); + auto chainableHandler = getMediaChainableHandler(tr); chainableHandler->addToChain(responder); }); } diff --git a/src/h264packetizationhandler.cpp b/src/h264packetizationhandler.cpp index 7d8fa7e..590cd4c 100644 --- a/src/h264packetizationhandler.cpp +++ b/src/h264packetizationhandler.cpp @@ -22,7 +22,7 @@ namespace rtc { -H264PacketizationHandler::H264PacketizationHandler(std::shared_ptr packetizer): RtcpChainableHandler(packetizer) { } +H264PacketizationHandler::H264PacketizationHandler(std::shared_ptr packetizer): MediaChainableHandler(packetizer) { } } // namespace rtc diff --git a/src/h264rtppacketizer.cpp b/src/h264rtppacketizer.cpp index b4b3775..099eace 100644 --- a/src/h264rtppacketizer.cpp +++ b/src/h264rtppacketizer.cpp @@ -133,11 +133,11 @@ shared_ptr H264RtpPacketizer::splitMessage(binary_ptr message) { H264RtpPacketizer::H264RtpPacketizer(std::shared_ptr rtpConfig, uint16_t maximumFragmentSize) -: RtpPacketizer(rtpConfig), MessageHandlerRootElement(), maximumFragmentSize(maximumFragmentSize), separator(Separator::Length) {} +: RtpPacketizer(rtpConfig), MediaHandlerRootElement(), maximumFragmentSize(maximumFragmentSize), separator(Separator::Length) {} H264RtpPacketizer::H264RtpPacketizer(H264RtpPacketizer::Separator separator, std::shared_ptr rtpConfig, uint16_t maximumFragmentSize) -: RtpPacketizer(rtpConfig), MessageHandlerRootElement(), maximumFragmentSize(maximumFragmentSize), separator(separator) {} +: RtpPacketizer(rtpConfig), MediaHandlerRootElement(), maximumFragmentSize(maximumFragmentSize), separator(separator) {} ChainedOutgoingProduct H264RtpPacketizer::processOutgoingBinaryMessage(ChainedMessagesProduct messages, std::optional control) { ChainedMessagesProduct packets = std::make_shared>(); diff --git a/src/rtcpchainablehandler.cpp b/src/mediachainablehandler.cpp similarity index 82% rename from src/rtcpchainablehandler.cpp rename to src/mediachainablehandler.cpp index ae41a60..a089eb0 100644 --- a/src/rtcpchainablehandler.cpp +++ b/src/mediachainablehandler.cpp @@ -17,17 +17,17 @@ #if RTC_ENABLE_MEDIA -#include "rtcpchainablehandler.hpp" +#include "mediachainablehandler.hpp" namespace rtc { -RtcpChainableHandler::RtcpChainableHandler(std::shared_ptr root): RtcpHandler(), root(root), leaf(root) { } +MediaChainableHandler::MediaChainableHandler(std::shared_ptr root): MediaHandler(), root(root), leaf(root) { } -RtcpChainableHandler::~RtcpChainableHandler() { +MediaChainableHandler::~MediaChainableHandler() { leaf->recursiveRemoveChain(); } -bool RtcpChainableHandler::sendProduct(ChainedOutgoingResponseProduct product) { +bool MediaChainableHandler::sendProduct(ChainedOutgoingResponseProduct product) { bool result = true; if (product.control.has_value()) { auto sendResult = send(product.control.value()); @@ -53,7 +53,7 @@ bool RtcpChainableHandler::sendProduct(ChainedOutgoingResponseProduct product) { return result; } -std::optional RtcpChainableHandler::handleIncomingBinary(message_ptr msg) { +std::optional MediaChainableHandler::handleIncomingBinary(message_ptr msg) { assert(msg->type == Message::Binary); auto messages = root->split(msg); auto incoming = leaf->formIncomingBinaryMessage(messages, [this](ChainedOutgoingResponseProduct outgoing) { @@ -66,7 +66,7 @@ std::optional RtcpChainableHandler::handleIncomingBinary(message_pt } } -std::optional RtcpChainableHandler::handleIncomingControl(message_ptr msg) { +std::optional MediaChainableHandler::handleIncomingControl(message_ptr msg) { assert(msg->type == Message::Control); auto incoming = leaf->formIncomingControlMessage(msg, [this](ChainedOutgoingResponseProduct outgoing) { return sendProduct(outgoing); @@ -75,7 +75,7 @@ std::optional RtcpChainableHandler::handleIncomingControl(message_p return incoming; } -std::optional RtcpChainableHandler::handleOutgoingBinary(message_ptr msg) { +std::optional MediaChainableHandler::handleOutgoingBinary(message_ptr msg) { assert(msg->type == Message::Binary); auto messages = make_chained_messages_product(msg); auto optOutgoing = root->formOutgoingBinaryMessage(ChainedOutgoingProduct(messages)); @@ -106,7 +106,7 @@ std::optional RtcpChainableHandler::handleOutgoingBinary(message_pt return make_message(*lastMessage); } -std::optional RtcpChainableHandler::handleOutgoingControl(message_ptr msg) { +std::optional MediaChainableHandler::handleOutgoingControl(message_ptr msg) { assert(msg->type == Message::Control); auto optOutgoing = root->formOutgoingControlMessage(msg); assert(!optOutgoing.has_value() || optOutgoing.value()->type == Message::Control); @@ -117,7 +117,7 @@ std::optional RtcpChainableHandler::handleOutgoingControl(message_p return optOutgoing.value(); } -message_ptr RtcpChainableHandler::outgoing(message_ptr ptr) { +message_ptr MediaChainableHandler::outgoing(message_ptr ptr) { assert(ptr); if (!ptr) { LOG_ERROR << "Outgoing message is nullptr, ignoring"; @@ -132,7 +132,7 @@ message_ptr RtcpChainableHandler::outgoing(message_ptr ptr) { return ptr; } -message_ptr RtcpChainableHandler::incoming(message_ptr ptr) { +message_ptr MediaChainableHandler::incoming(message_ptr ptr) { if (!ptr) { LOG_ERROR << "Incoming message is nullptr, ignoring"; return nullptr; @@ -146,7 +146,7 @@ message_ptr RtcpChainableHandler::incoming(message_ptr ptr) { return ptr; } -bool RtcpChainableHandler::send(message_ptr msg) { +bool MediaChainableHandler::send(message_ptr msg) { try { outgoingCallback(std::move(msg)); return true; @@ -156,7 +156,7 @@ bool RtcpChainableHandler::send(message_ptr msg) { return false; } -void RtcpChainableHandler::addToChain(std::shared_ptr chainable) { +void MediaChainableHandler::addToChain(std::shared_ptr chainable) { assert(leaf); leaf = leaf->chainWith(chainable); } diff --git a/src/messagehandlerelement.cpp b/src/mediahandlerelement.cpp similarity index 78% rename from src/messagehandlerelement.cpp rename to src/mediahandlerelement.cpp index d30d1a4..539ed7c 100644 --- a/src/messagehandlerelement.cpp +++ b/src/mediahandlerelement.cpp @@ -17,7 +17,7 @@ #if RTC_ENABLE_MEDIA -#include "messagehandlerelement.hpp" +#include "mediahandlerelement.hpp" namespace rtc { @@ -42,9 +42,9 @@ ChainedIncomingProduct::ChainedIncomingProduct(std::optional outgoing) : incoming(incoming), outgoing(outgoing) { } -MessageHandlerElement::MessageHandlerElement() { } +MediaHandlerElement::MediaHandlerElement() { } -void MessageHandlerElement::removeFromChain() { +void MediaHandlerElement::removeFromChain() { if (upstream.has_value()) { upstream.value()->downstream = downstream; } @@ -55,7 +55,7 @@ void MessageHandlerElement::removeFromChain() { downstream = nullopt; } -void MessageHandlerElement::recursiveRemoveChain() { +void MediaHandlerElement::recursiveRemoveChain() { if (downstream.has_value()) { // `recursiveRemoveChain` removes last strong reference to downstream element // we need to keep strong reference to prevent deallocation of downstream element @@ -66,7 +66,7 @@ void MessageHandlerElement::recursiveRemoveChain() { removeFromChain(); } -std::optional MessageHandlerElement::processOutgoingResponse(ChainedOutgoingResponseProduct messages) { +std::optional MediaHandlerElement::processOutgoingResponse(ChainedOutgoingResponseProduct messages) { if (messages.messages.has_value()) { if (upstream.has_value()) { auto msgs = upstream.value()->formOutgoingBinaryMessage(ChainedOutgoingProduct(messages.messages.value(), messages.control)); @@ -97,7 +97,7 @@ std::optional MessageHandlerElement::processOutg } } -void MessageHandlerElement::prepareAndSendResponse(std::optional outgoing, std::function send) { +void MediaHandlerElement::prepareAndSendResponse(std::optional outgoing, std::function send) { if (outgoing.has_value()) { auto message = outgoing.value(); auto response = processOutgoingResponse(message); @@ -111,7 +111,7 @@ void MessageHandlerElement::prepareAndSendResponse(std::optional MessageHandlerElement::formIncomingControlMessage(message_ptr message, std::function send) { +std::optional MediaHandlerElement::formIncomingControlMessage(message_ptr message, std::function send) { assert(message); auto product = processIncomingControlMessage(message); prepareAndSendResponse(product.outgoing, send); @@ -131,7 +131,7 @@ std::optional MessageHandlerElement::formIncomingControlMessage(mes } } -std::optional MessageHandlerElement::formIncomingBinaryMessage(ChainedMessagesProduct messages, std::function send) { +std::optional MediaHandlerElement::formIncomingBinaryMessage(ChainedMessagesProduct messages, std::function send) { assert(messages && !messages->empty()); auto product = processIncomingBinaryMessage(messages); prepareAndSendResponse(product.outgoing, send); @@ -151,7 +151,7 @@ std::optional MessageHandlerElement::formIncomingBinaryM } } -std::optional MessageHandlerElement::formOutgoingControlMessage(message_ptr message) { +std::optional MediaHandlerElement::formOutgoingControlMessage(message_ptr message) { assert(message); auto newMessage = processOutgoingControlMessage(message); assert(newMessage); @@ -166,7 +166,7 @@ std::optional MessageHandlerElement::formOutgoingControlMessage(mes } } -std::optional MessageHandlerElement::formOutgoingBinaryMessage(ChainedOutgoingProduct product) { +std::optional MediaHandlerElement::formOutgoingBinaryMessage(ChainedOutgoingProduct product) { assert(product.messages && !product.messages->empty()); auto newProduct = processOutgoingBinaryMessage(product.messages, product.control); assert(!product.control.has_value() || newProduct.control.has_value()); @@ -191,23 +191,23 @@ std::optional MessageHandlerElement::formOutgoingBinaryM } } -ChainedIncomingControlProduct MessageHandlerElement::processIncomingControlMessage(message_ptr messages) { +ChainedIncomingControlProduct MediaHandlerElement::processIncomingControlMessage(message_ptr messages) { return {messages}; } -message_ptr MessageHandlerElement::processOutgoingControlMessage(message_ptr messages) { +message_ptr MediaHandlerElement::processOutgoingControlMessage(message_ptr messages) { return messages; } -ChainedIncomingProduct MessageHandlerElement::processIncomingBinaryMessage(ChainedMessagesProduct messages) { +ChainedIncomingProduct MediaHandlerElement::processIncomingBinaryMessage(ChainedMessagesProduct messages) { return {messages}; } -ChainedOutgoingProduct MessageHandlerElement::processOutgoingBinaryMessage(ChainedMessagesProduct messages, std::optional control) { +ChainedOutgoingProduct MediaHandlerElement::processOutgoingBinaryMessage(ChainedMessagesProduct messages, std::optional control) { return {messages, control}; } -std::shared_ptr MessageHandlerElement::chainWith(std::shared_ptr upstream) { +std::shared_ptr MediaHandlerElement::chainWith(std::shared_ptr upstream) { assert(this->upstream == nullopt); assert(upstream->downstream == nullopt); this->upstream = upstream; diff --git a/src/messagehandlerrootelement.cpp b/src/mediahandlerrootelement.cpp similarity index 83% rename from src/messagehandlerrootelement.cpp rename to src/mediahandlerrootelement.cpp index bd82528..11f30fa 100644 --- a/src/messagehandlerrootelement.cpp +++ b/src/mediahandlerrootelement.cpp @@ -17,11 +17,11 @@ #if RTC_ENABLE_MEDIA -#include "messagehandlerrootelement.hpp" +#include "mediahandlerrootelement.hpp" namespace rtc { -message_ptr MessageHandlerRootElement::reduce(ChainedMessagesProduct messages) { +message_ptr MediaHandlerRootElement::reduce(ChainedMessagesProduct messages) { if (messages && !messages->empty()) { auto msg_ptr = messages->front(); if (msg_ptr) { @@ -34,7 +34,7 @@ message_ptr MessageHandlerRootElement::reduce(ChainedMessagesProduct messages) { } } -ChainedMessagesProduct MessageHandlerRootElement::split(message_ptr message) { +ChainedMessagesProduct MediaHandlerRootElement::split(message_ptr message) { return make_chained_messages_product(message); } diff --git a/src/opuspacketizationhandler.cpp b/src/opuspacketizationhandler.cpp index a7cd8c9..8c9efd7 100644 --- a/src/opuspacketizationhandler.cpp +++ b/src/opuspacketizationhandler.cpp @@ -23,7 +23,7 @@ namespace rtc { OpusPacketizationHandler::OpusPacketizationHandler(std::shared_ptr packetizer) -: RtcpChainableHandler(packetizer) { } +: MediaChainableHandler(packetizer) { } } // namespace rtc diff --git a/src/opusrtppacketizer.cpp b/src/opusrtppacketizer.cpp index 5e39867..c8cadd7 100644 --- a/src/opusrtppacketizer.cpp +++ b/src/opusrtppacketizer.cpp @@ -23,7 +23,7 @@ namespace rtc { OpusRtpPacketizer::OpusRtpPacketizer(std::shared_ptr rtpConfig) -: RtpPacketizer(rtpConfig), MessageHandlerRootElement() {} +: RtpPacketizer(rtpConfig), MediaHandlerRootElement() {} binary_ptr OpusRtpPacketizer::packetize(binary_ptr payload, bool setMark) { assert(!setMark); diff --git a/src/rtcpnackresponder.cpp b/src/rtcpnackresponder.cpp index b6bcaf1..5f3fdeb 100644 --- a/src/rtcpnackresponder.cpp +++ b/src/rtcpnackresponder.cpp @@ -66,7 +66,7 @@ void RtcpNackResponder::Storage::store(binary_ptr packet) { } RtcpNackResponder::RtcpNackResponder(unsigned maxStoredPacketCount) -: MessageHandlerElement(), storage(std::make_shared(maxStoredPacketCount)) { } +: MediaHandlerElement(), storage(std::make_shared(maxStoredPacketCount)) { } ChainedIncomingControlProduct RtcpNackResponder::processIncomingControlMessage(message_ptr message) { std::optional optPackets = ChainedOutgoingResponseProduct(); diff --git a/src/rtcpsrreporter.cpp b/src/rtcpsrreporter.cpp index b013240..bf6507b 100644 --- a/src/rtcpsrreporter.cpp +++ b/src/rtcpsrreporter.cpp @@ -52,7 +52,7 @@ void RtcpSrReporter::addToReport(RTP *rtp, uint32_t rtpSize) { } RtcpSrReporter::RtcpSrReporter(std::shared_ptr rtpConfig) -: MessageHandlerElement(), rtpConfig(rtpConfig) {} +: MediaHandlerElement(), rtpConfig(rtpConfig) {} uint64_t RtcpSrReporter::secondsToNTP(double seconds) { return std::round(seconds * double(uint64_t(1) << 32)); diff --git a/src/track.cpp b/src/track.cpp index f05491e..e1c25e1 100644 --- a/src/track.cpp +++ b/src/track.cpp @@ -161,7 +161,7 @@ bool Track::outgoing([[maybe_unused]] message_ptr message) { #endif } -void Track::setRtcpHandler(std::shared_ptr handler) { +void Track::setRtcpHandler(std::shared_ptr handler) { std::unique_lock lock(mRtcpHandlerMutex); mRtcpHandler = std::move(handler); if (mRtcpHandler) { @@ -178,7 +178,7 @@ bool Track::requestKeyframe() { return false; } -std::shared_ptr Track::getRtcpHandler() { +std::shared_ptr Track::getRtcpHandler() { std::shared_lock lock(mRtcpHandlerMutex); return mRtcpHandler; }