00001 00007 #ifndef __YUVGOP_hpp__ 00008 #define __YUVGOP_hpp__ 00009 00010 #include "global.hpp" 00011 #include "GOP.hpp" 00012 #include "FrameVector.hpp" 00013 #include "YUVGOPVector.hpp" 00014 #include <time.h> 00015 00016 00017 class YUVGOP : public GOP { 00018 00019 public: 00020 00026 YUVGOP(Stream* s, unsigned int pat_i); 00027 00034 YUVGOP(Stream* s, unsigned int mod_i, unsigned int pat_i);// : 00035 00039 ~YUVGOP(); 00040 00044 YUVGOP* getOrgGOP(); 00045 00049 void setOrgGOP(YUVGOP* org); 00050 00054 bool hasOriginal(); 00055 00060 QString getFramesInGOP(); 00061 00062 QPtrList<YUVGOP>* expand(YUVGOP* yg); 00063 00068 long getByteSize() { return byteSize; }; 00069 00076 double computePSNR(YUVGOP* p); 00077 00081 double getPSNR() { return psnr; }; 00082 00086 void setCompressedByteSize(uint size); 00087 00091 uint getCompressedByteSize(); 00092 00096 void setCompressedBaselayerSize(uint size); 00097 00101 uint getCompressedBaselayerSize(); 00102 00106 void setPSNRmp(double value); 00107 00108 00109 private: 00110 00111 double psnr; 00112 uint compressedByteSize; 00113 uint compressedBaselayerSize; 00114 YUVGOP* orgGOP; 00115 FrameVector fv; 00116 YUVGOPVector yuvGOPVector; 00117 bool modsAdded; 00118 bool hasOrg; 00119 }; 00120 00121 #endif //__YUVGOP_hpp__