00001 #ifndef __YUVStream_hpp__ 00002 #define __YUVStream_hpp__ 00003 00004 #include "global.hpp" 00005 #include "Stream.hpp" 00006 #include "Frame.hpp" 00007 #include "GOP.hpp" 00008 #include "YUVGOP.hpp" 00009 #include "YUVFrame.hpp" 00010 00011 class Frame; 00012 class GOP; 00013 class YUVGOP; 00014 class YUVFrame; 00015 class MPGStream; 00016 00017 00018 class YUVStream : public Stream { 00019 00020 public: 00029 YUVStream(const QString &fname, int x, int y, bool preRead = true, uint fpp=30); 00030 00031 virtual ~YUVStream(); 00032 00036 long getFrameSize(); 00037 00041 long getYSize(); 00042 00046 long getUSize(); 00047 00048 00052 long getVSize(); 00053 00054 uint getMinCompressedPatSize(); 00055 void setMinCompressedPatSize(uint s); 00056 uint getMaxCompressedPatSize(); 00057 void setMaxCompressedPatSize(uint s); 00058 00059 uint getMinCompressedBaselayerSize(); 00060 void setMinCompressedBaselayerSize(uint s); 00061 uint getMaxCompressedBaselayerSize(); 00062 void setMaxCompressedBaselayerSize(uint s); 00063 00067 long getBufOffsetY(); 00068 00069 00073 long getBufOffsetU(); 00074 00075 00079 long getBufOffsetV(); 00080 00081 double getMaxPSNR(); 00082 00086 GOP* addNextGOP(uint numFrames); 00087 00091 long getFileSize(); 00092 00093 private: 00094 00095 long ySize; 00096 long uvSize; 00097 00098 long bufOffsetY; 00099 long bufOffsetU; 00100 long bufOffsetV; 00101 00102 double maxPSNR; 00103 00104 int delay; 00105 uint minCompPatSize; 00106 uint maxCompPatSize; 00107 00108 uint minCompBLSize; 00109 uint maxCompBLSize; 00110 00111 }; 00112 00113 #endif