class MediaPacket
{
public:
MediaPacket()
{
m_data=NULL;
m_length=0;
}
MediaPacket(BYTE* buf,UInt32 length)
{
m_data=new BYTE[length];
memcpy(m_data,buf,length);
m_length=length;
}
~MediaPacket()
{
if(NULL!=m_data)
{
delete m_data;
}
}
BYTE* m_data;
UInt32 m_length;
};
class MediaPacketManager
{
public:
MediaPacketManager()
{
m_totalLength=0;
m_data=NULL;
}
~MediaPacketManager()
{
while(!m_queue.empty())
{
MediaPacket* mp=(MediaPacket*)m_queue.front();
m_queue.pop();
delete mp;
mp=NULL;
}
if(NULL!=m_data)
{
delete m_data;
}
}
UInt32 m_totalLength;
BYTE* m_data;
queue<MediaPacket*> m_queue;
void InitHeader(BYTE* buf,UInt32 length)
{
m_totalLength=0;
MediaPacket* mp=new MediaPacket(buf,length);
m_queue.push(mp);
m_totalLength+=length;
}
void AddData(BYTE* buf,UInt32 length)
{
MediaPacket* mp=new MediaPacket(buf,length);
m_queue.push(mp);
m_totalLength+=length;
}
void InitTail(BYTE* buf,UInt32 length)
{
MediaPacket* mp=new MediaPacket(buf,length);
m_queue.push(mp);
m_totalLength+=length;
}
BYTE* AllData()
{
m_data=new BYTE[m_totalLength];
UInt32 len=0;
while(!m_queue.empty())
{
MediaPacket* mp=(MediaPacket*)m_queue.front();
memcpy(m_data+len,mp->m_data,mp->m_length);
len+=mp->m_length;
m_queue.pop();
delete mp;
mp=NULL;
}
return m_data;
}
};
{
public:
MediaPacket()
{
m_data=NULL;
m_length=0;
}
MediaPacket(BYTE* buf,UInt32 length)
{
m_data=new BYTE[length];
memcpy(m_data,buf,length);
m_length=length;
}
~MediaPacket()
{
if(NULL!=m_data)
{
delete m_data;
}
}
BYTE* m_data;
UInt32 m_length;
};
class MediaPacketManager
{
public:
MediaPacketManager()
{
m_totalLength=0;
m_data=NULL;
}
~MediaPacketManager()
{
while(!m_queue.empty())
{
MediaPacket* mp=(MediaPacket*)m_queue.front();
m_queue.pop();
delete mp;
mp=NULL;
}
if(NULL!=m_data)
{
delete m_data;
}
}
UInt32 m_totalLength;
BYTE* m_data;
queue<MediaPacket*> m_queue;
void InitHeader(BYTE* buf,UInt32 length)
{
m_totalLength=0;
MediaPacket* mp=new MediaPacket(buf,length);
m_queue.push(mp);
m_totalLength+=length;
}
void AddData(BYTE* buf,UInt32 length)
{
MediaPacket* mp=new MediaPacket(buf,length);
m_queue.push(mp);
m_totalLength+=length;
}
void InitTail(BYTE* buf,UInt32 length)
{
MediaPacket* mp=new MediaPacket(buf,length);
m_queue.push(mp);
m_totalLength+=length;
}
BYTE* AllData()
{
m_data=new BYTE[m_totalLength];
UInt32 len=0;
while(!m_queue.empty())
{
MediaPacket* mp=(MediaPacket*)m_queue.front();
memcpy(m_data+len,mp->m_data,mp->m_length);
len+=mp->m_length;
m_queue.pop();
delete mp;
mp=NULL;
}
return m_data;
}
};