#if RTC_ENABLE_MEDIA
#include "rtpdepacketizer.hpp"
#include "rtp.hpp"
#include "impl/logcounter.hpp"
#include <cmath>
#include <cstring>
namespace rtc {
void RtpDepacketizer::incoming([[maybe_unused]] message_vector &messages,
[[maybe_unused]] const message_callback &send) {
message_vector result;
for (auto &message : messages) {
if (message->type == Message::Control) {
result.push_back(std::move(message));
continue;
}
if (message->size() < sizeof(RtpHeader)) {
PLOG_VERBOSE << "RTP packet is too small, size=" << message->size();
continue;
}
auto pkt = reinterpret_cast<const rtc::RtpHeader *>(message->data());
auto headerSize = sizeof(rtc::RtpHeader) + pkt->csrcCount() + pkt->getExtensionHeaderSize();
result.push_back(make_message(message->begin() + headerSize, message->end(),
Message::Binary, 0, nullptr,
std::make_shared<FrameInfo>(pkt->payloadType(), pkt->timestamp())));
}
messages.swap(result);
}
}
#endif