rtcp: Add field t APP that tells the payload length
This design is similar to RTP packets.
This commit is contained in:
parent
6c065dfebe
commit
f55c4578a8
|
@ -80,7 +80,7 @@ namespace uvgrtp {
|
|||
uint8_t pkt_subtype; /* for app packets */
|
||||
};
|
||||
uint8_t pkt_type = 0;
|
||||
uint16_t length = 0;
|
||||
uint16_t length = 0; // whole message measured in 32-bit words
|
||||
};
|
||||
|
||||
struct rtcp_sender_info {
|
||||
|
@ -135,6 +135,7 @@ namespace uvgrtp {
|
|||
uint32_t ssrc = 0;
|
||||
uint8_t name[4] = {0};
|
||||
uint8_t *payload = nullptr;
|
||||
size_t payload_len = 0; // in bytes
|
||||
};
|
||||
|
||||
PACK(struct zrtp_frame {
|
||||
|
|
|
@ -1459,13 +1459,13 @@ rtp_error_t uvgrtp::rtcp::handle_app_packet(uint8_t* packet, size_t& read_ptr,
|
|||
memcpy(frame->name, &packet[read_ptr], APP_NAME_SIZE);
|
||||
read_ptr += APP_NAME_SIZE;
|
||||
|
||||
size_t application_data_size = packet_end - read_ptr;
|
||||
frame->payload_len = packet_end - read_ptr;
|
||||
|
||||
if (application_data_size > 0)
|
||||
if (frame->payload_len > 0)
|
||||
{
|
||||
// application data is saved to payload
|
||||
frame->payload = new uint8_t[application_data_size];
|
||||
memcpy(frame->payload, &packet[read_ptr], application_data_size);
|
||||
frame->payload = new uint8_t[frame->payload_len];
|
||||
memcpy(frame->payload, &packet[read_ptr], frame->payload_len);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -267,8 +267,11 @@ void app_hook(uvgrtp::frame::rtcp_app_packet* frame)
|
|||
|
||||
std::cout << std::endl << "APP frame! ----------" << std::endl;
|
||||
std::cout << "ssrc: " << frame->ssrc << std::endl;
|
||||
std::cout << "Name: " << name << std::endl;
|
||||
std::cout << "Payload length " << payload_len << " and content: " << payload << std::endl;
|
||||
std::cout << "Name: " << name << " and content: " << payload << std::endl;
|
||||
std::cout << "Calculated payload length " << payload_len << std::endl;
|
||||
std::cout << "Payload length field " << frame->payload_len << std::endl;
|
||||
|
||||
|
||||
if (payload_len > 0)
|
||||
{
|
||||
delete[] frame->payload;
|
||||
|
|
Loading…
Reference in New Issue