00001
00034 #pragma once
00035
00036
00037 #include <string>
00038
00039 #ifndef BYTE
00040 typedef unsigned char BYTE;
00041 #endif
00042
00048 class MediaSample
00049 {
00050 public:
00051 MediaSample(const MediaSample& rSample);
00052 MediaSample& operator=(const MediaSample& rSample);
00053 virtual ~MediaSample(void);
00054 static MediaSample* createMediaSample(BYTE* pData, int nSize, double dStartTime = 0.0, bool bIsSyncPoint = false);
00055
00056 const BYTE* getData() const { return m_pData; }
00057 int getSize() const {return m_nSize;}
00058 double StartTime() const { return m_dStartTime; }
00059
00060 bool isSynchronisationPoint() const { return m_bIsSynchronisationPoint; }
00061 void setSynchronisationPoint(bool val) { m_bIsSynchronisationPoint = val; }
00062 private:
00063 MediaSample(BYTE* pData, int nSize, double dStartTime, bool bIsSyncPoint);
00064
00065 BYTE* m_pData;
00066 int m_nSize;
00067 double m_dStartTime;
00068 bool m_bIsSynchronisationPoint;
00069 };
00070
00071
00072
00073 class MediaSampleEx : public MediaSample
00074 {
00075 public:
00076 MediaSampleEx(const std::string& sSessionID, const std::string& sSubsessionID, const MediaSample* pSample, const std::string& sMediaType)
00077 :MediaSample(*pSample),
00078 m_sSessionName(sSessionID),
00079 m_sSubsessionName(sSubsessionID),
00080 m_sMediaType(sMediaType)
00081 {;}
00082
00083 ~MediaSampleEx() {}
00084
00085 std::string SessionID() { return m_sSessionName;}
00086 std::string SubsessionID() { return m_sSubsessionName;}
00087 std::string MediaType() { return m_sMediaType;}
00088
00089 private:
00090 std::string m_sSessionName;
00091 std::string m_sSubsessionName;
00092 std::string m_sMediaType;
00093 };