00001
00034 #include "MediaSample.h"
00035
00036 #include <memory>
00037
00038 MediaSample::MediaSample( BYTE* pData, int nSize, double dStartTime, bool bIsSyncPoint)
00039 : m_nSize(nSize),
00040 m_dStartTime(dStartTime),
00041 m_bIsSynchronisationPoint(bIsSyncPoint)
00042 {
00043
00044 m_pData = new BYTE[nSize + 1];
00045 m_pData[nSize] = '\0';
00046 memcpy(m_pData, pData, m_nSize);
00047 }
00048
00049 MediaSample::MediaSample( const MediaSample& rSample )
00050 {
00051 m_nSize = rSample.m_nSize;
00052 m_dStartTime = rSample.m_dStartTime;
00053 m_bIsSynchronisationPoint = rSample.m_bIsSynchronisationPoint;
00054 m_pData = new BYTE[m_nSize + 1];
00055 m_pData[m_nSize] = '\0';
00056 memcpy(m_pData, rSample.m_pData, m_nSize);
00057 }
00058
00059 MediaSample::~MediaSample(void)
00060 {
00061
00062 delete[] m_pData;
00063 m_pData = NULL;
00064 }
00065
00066 MediaSample* MediaSample::createMediaSample( BYTE* pData, int nSize, double dStartTime, bool bIsSyncPoint )
00067 {
00068 return new MediaSample(pData, nSize, dStartTime, bIsSyncPoint);
00069 }
00070
00071 MediaSample& MediaSample::operator=( const MediaSample& rSample )
00072 {
00073 if (this == &rSample )
00074 {
00075 return *this;
00076 }
00077
00078 m_nSize = rSample.m_nSize;
00079 m_dStartTime = rSample.m_dStartTime;
00080 m_bIsSynchronisationPoint = rSample.m_bIsSynchronisationPoint;
00081 memcpy(m_pData, rSample.m_pData, m_nSize);
00082 return *this;
00083 }