Fix UDP-related RTP data management bugs

This commit is contained in:
Thulinma 2017-09-23 11:08:30 +02:00
parent c4b7c287fb
commit 364190034d

View file

@ -279,6 +279,9 @@ namespace RTP{
Packet::Packet(){ Packet::Packet(){
managed = false; managed = false;
data = 0; data = 0;
maxDataLen = 0;
sentBytes = 0;
sentPackets = 0;
} }
Packet::Packet(unsigned int payloadType, unsigned int sequence, unsigned int timestamp, Packet::Packet(unsigned int payloadType, unsigned int sequence, unsigned int timestamp,
@ -322,9 +325,9 @@ namespace RTP{
} }
void Packet::operator=(const Packet &o){ void Packet::operator=(const Packet &o){
if (data && managed){delete[] data;}
managed = true; managed = true;
maxDataLen = 0; maxDataLen = 0;
if (data && managed){delete[] data;}
data = 0; data = 0;
if (o.data && o.maxDataLen){ if (o.data && o.maxDataLen){
@ -350,6 +353,9 @@ namespace RTP{
Packet::Packet(const char *dat, unsigned int len){ Packet::Packet(const char *dat, unsigned int len){
managed = false; managed = false;
datalen = len; datalen = len;
maxDataLen = len;
sentBytes = 0;
sentPackets = 0;
data = (char *)dat; data = (char *)dat;
} }