uvgRTP
uvgRTP copied to clipboard
rtcp: deepcopy APP packet data and handle it internally
Currently, this function only creates a shallow copy of the name and payload, so if the original pointers are deleted it leads to undefined behavior.
rtp_error_t uvgrtp::rtcp::send_app_packet(const char* name, uint8_t subtype,
size_t payload_len, const uint8_t* payload)
{
std::string str(name);
rtcp_app_packet packet = { name, subtype, payload_len, payload };
packet_mutex_.lock();
if (!app_packets_[name].empty())
{
LOG_WARN("Adding a new APP packet for sending when %llu packets are waiting to be sent",
app_packets_[name].size());
}
app_packets_[name].push_back(packet);
packet_mutex_.unlock();
return RTP_OK;
}
My implementation handles allocation/deallocation internally.