mirror of
https://github.com/kunkundi/crossdesk.git
synced 2026-05-23 22:20:22 +08:00
49 lines
2.0 KiB
C++
49 lines
2.0 KiB
C++
#include "rtp_packet.h"
|
|
|
|
#include <string>
|
|
// 0 1 2 3
|
|
// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
|
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
// |V=2|P|X| CC |M| PT | sequence number |
|
|
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
// | timestamp |
|
|
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
// | synchronization source (SSRC) identifier |
|
|
// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|
|
// | Contributing source (CSRC) identifiers |
|
|
// | .... |
|
|
// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|
|
// | header eXtension profile id | length in 32bits |
|
|
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
// | Extensions |
|
|
// | .... |
|
|
// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|
|
// | Payload |
|
|
// | .... : padding... |
|
|
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
// | padding | Padding size |
|
|
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
|
|
RtpPacket::RtpPacket(const uint8_t *buffer, size_t size) {
|
|
if (size > 0) {
|
|
payload_ = new uint8_t[size];
|
|
memcpy(payload_, buffer, size);
|
|
payload_size_ = size;
|
|
}
|
|
}
|
|
|
|
RtpPacket::RtpPacket(const RtpPacket &rhs) {
|
|
if (rhs.payload_size_ > 0) {
|
|
payload_ = new uint8_t[rhs.payload_size_];
|
|
memcpy(payload_, rhs.payload_, rhs.payload_size_);
|
|
payload_size_ = rhs.payload_size_;
|
|
}
|
|
}
|
|
|
|
RtpPacket::~RtpPacket() {
|
|
if (payload_) {
|
|
delete payload_;
|
|
payload_ = nullptr;
|
|
}
|
|
payload_size_ = 0;
|
|
} |