MediaSample.h

Go to the documentation of this file.
00001 
00034 #pragma once
00035 
00036 // STL
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 // Thin wrapper class
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 };

Generated on Fri Mar 13 14:12:38 2009 for RTVC by  doxygen 1.5.3