[Xbyamp-cvs] xbmp/player/common MediaSample.h,1.1,1.2
Status: Pre-Alpha
Brought to you by:
yamp
From: <ya...@us...> - 2002-12-03 17:47:10
|
Update of /cvsroot/xbyamp/xbmp/player/common In directory sc8-pr-cvs1:/tmp/cvs-serv25740/player/common Modified Files: MediaSample.h Log Message: removed compiler warnings Index: MediaSample.h =================================================================== RCS file: /cvsroot/xbyamp/xbmp/player/common/MediaSample.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** MediaSample.h 28 Nov 2002 21:47:35 -0000 1.1 --- MediaSample.h 3 Dec 2002 17:47:06 -0000 1.2 *************** *** 1,8 **** ! #ifndef MEDIA_SAMPLE_H ! #define MEDIA_SAMPLE_H class MediaSample { public: }; ! #endif \ No newline at end of file --- 1,162 ---- ! #ifndef __COMMON_MEDIASAMPLE_H_ ! #define __COMMON_MEDIASAMPLE_H_ ! ! #include "..\Common.h" ! ! const uint32_t AllSections = (uint32_t)0xffffffff; ! ! class MediaSample; ! class ReleaseClassMediaSample ! { ! public: ! virtual void ReleaseMediaSample(MediaSample*) = 0; ! }; class MediaSample { + protected: + ReleaseClassMediaSample* mReleaseClass; + long mReferences; + + uint8_t* mBuffer; + uint32_t mSize; + uint64_t mOffset; + uint32_t mStream; + bool mHasPTS; + uint64_t mPTS; + CodecID mCodecId; + virtual void _Release(); + virtual void OnRelease() {;} + + public: + MediaSample(); + MediaSample(ReleaseClassMediaSample*); + virtual ~MediaSample(); + + virtual void AddRef(); + virtual void Release(); + + virtual uint8_t* GetBuffer(uint32_t); + virtual uint32_t GetSize(uint32_t); + virtual uint64_t GetOffset(); + virtual uint32_t GetStream(); + virtual uint32_t GetNumSegments(); + virtual MediaSample* GetSegmentFromOffset(uint32_t, uint32_t*); + + virtual bool HasPTS(); + virtual uint64_t GetPTS(); + virtual void ResetPTS(); + virtual void SetPTS(uint64_t PTS); + virtual void SetOffset(uint64_t offset); + + virtual CodecID GetCodecId(); + virtual void SetCodecId(CodecID); + }; + + class MemMediaSample; + class ReleaseClassMemMediaSample + { public: + virtual void ReleaseMediaSample(MemMediaSample*) = 0; }; ! ! class MemMediaSample : public MediaSample ! { ! protected: ! ReleaseClassMemMediaSample* mReleaseClass; ! uint32_t mBufferSize; ! ! virtual void _Release(); ! int Realloc(uint32_t size); ! void Free(); ! ! public: ! MemMediaSample(); ! MemMediaSample(ReleaseClassMemMediaSample*); ! virtual ~MemMediaSample(); ! ! virtual void SetOffset(uint64_t offset); ! virtual void SetSize(uint32_t size); ! virtual void SetStream(uint32_t stream); ! ! // Made public for easy access. ! MemMediaSample* Next; ! }; ! ! class ProxyMediaSample; ! class ReleaseClassProxyMediaSample ! { ! public: ! virtual void ReleaseMediaSample(ProxyMediaSample*) = 0; ! }; ! ! // A Proxy Media Sample is a media sample that owns no allocated space. ! class ProxyMediaSample : public MediaSample { ! protected: ! ReleaseClassProxyMediaSample* mReleaseClass; ! MediaSample* mParent; ! ! virtual void _Release(); ! virtual void OnRelease(); ! ! public: ! ProxyMediaSample(); ! ProxyMediaSample(ReleaseClassProxyMediaSample*); ! virtual ~ProxyMediaSample(); ! ! virtual void SetOffset(uint64_t offset); ! virtual void SetSize(uint32_t size); ! virtual void SetBuffer(void* buffer); ! virtual void SetStream(uint32_t stream); ! virtual void SetParent(MediaSample* pSample); ! ! // Made public for easy access. ! ProxyMediaSample* Next; ! }; ! ! class MediaSampleSet; ! class ReleaseClassMediaSampleSet ! { ! public: ! virtual void ReleaseMediaSample(MediaSampleSet*) = 0; ! }; ! ! class MediaSampleSet : public MediaSample ! { ! public: ! MediaSampleSet(); ! MediaSampleSet(ReleaseClassMediaSampleSet*); ! virtual ~MediaSampleSet(); ! virtual void Release(); ! ! virtual uint8_t* GetBuffer(uint32_t); ! virtual uint32_t GetSize(uint32_t); ! virtual uint32_t GetStream(); ! virtual void AddMediaSample(ProxyMediaSample* mediaSample); ! virtual uint32_t GetNumSegments(); ! virtual MediaSample* GetSegmentFromOffset(uint32_t, uint32_t*); ! ! MediaSampleSet* Next; ! ! protected: ! ! virtual void OnRelease(); ! virtual void _Release(); ! ProxyMediaSample* GetSampleFromNum(uint32_t sampleNum); ! ProxyMediaSample* GetSampleFromOffset(uint32_t sampleOffset); ! ! ReleaseClassMediaSampleSet* mReleaseClass; ! ! uint32_t mNumSegments; ! uint32_t mTotalSetSize; ! uint32_t cachedSampleOffset; ! uint32_t cachedSampleNum; ! ProxyMediaSample* cachedMediaSample; ! ProxyMediaSample* mMediaSampleListHead; ! }; ! ! #ifndef SAFE_RELEASE ! #define SAFE_RELEASE(c) { if (c) { (c)->Release(); (c) = 0; } } ! #endif ! ! #endif // __COMMON_MEDIASAMPLE_H_ |