00001 #ifndef SIMPLECODE_HPP
00002 #define SIMPLECODE_HPP
00003
00004 #include <qobject.h>
00005
00006 #include "AdaptiveHuffman.h"
00007 #include "BasicPanel.h"
00008 #include "CamPanel.h"
00009 #include "CamTile.h"
00010 #include "CodecFrame.h"
00011 #include "DiffPanel.h"
00012 #include "DCTPanel.h"
00013 #include "VideoDevice.h"
00014
00015
00016 class CCamWidget;
00017
00018 class CSimpleCodec: public CCodecFrame
00019 {
00020 Q_OBJECT
00021 private:
00022 CVideoDevice *pVideo;
00023
00024 int zigzag[64][2];
00025 int image_w, image_h;
00026 int half_w, half_h;
00027 int tiles_y, tiles_uv;
00028 CCamTile *pTilesY, *pTilesUV;
00029 CCamTile **pSorted, *pUsed;
00030 CCamTile **pSendAbs, **pSendDiff;
00031 int *UsedForDiff, *UsedForAbs;
00032 int GraphPos;
00033
00034 CCamPanel *pRGB, *pYUV;
00035 CDCTPanel *pFDCTImage, *pIDCTImage;
00036 CDCTPanel *pFDCTDiff, *pIDCTDiff;
00037 CBasicPanel *pRecImage, *pRecDiff;
00038 CDiffPanel *pRec_YUV;
00039 CBasicPanel *pReconstruction;
00040 CBasicPanel *pSelection;
00041 int Count, Refresh;
00042
00043
00044
00045
00046 int ParamSmear;
00047 int ParamThreshold;
00048 int ParamMaxPFrames;
00049 bool ParamClearDiff;
00050 int ParamBytesPerPacket;
00051
00052 void CreateTiles();
00053 void Send(CCamPanel *p, bool update);
00054 void MoveTileToEnd(CCamTile *tile);
00055
00056 private slots:
00057 void Resize(const QSize &ns);
00058
00059 public:
00060 CSimpleCodec(CVideoDevice *video);
00061 ~CSimpleCodec();
00062
00063 public slots:
00064 void UpdatePanel();
00065 };
00066
00067
00068 #endif