00001 00028 #ifndef __VETLIB_VETPLAINFRAMEGENERATOR_H__ 00029 #define __VETLIB_VETPLAINFRAMEGENERATOR_H__ 00030 00031 #include "../vetDefs.h" 00032 #include "../vetInput.h" 00033 00034 #include "../vetFrameYUV420.h" 00035 #include "../vetFrameRGB24.h" 00036 #include "../vetFrameT.h" 00037 #include "../vetFrameGrey.h" 00038 00039 #define VETPFG_DEF_COLOR_GREY 0 // black 00040 #define VETPFG_DEF_COLOR_R 0 // | 00041 #define VETPFG_DEF_COLOR_G 0 // |>black 00042 #define VETPFG_DEF_COLOR_B 0 // | 00043 #define VETPFG_DEF_COLOR_Y 0 // | 00044 #define VETPFG_DEF_COLOR_U 0 // |>black 00045 #define VETPFG_DEF_COLOR_V 0 // | 00046 00047 00048 00049 class vetPlainFrameGenerator : public vetInput 00050 { 00051 00052 protected: 00053 00057 vetFrameYUV420* bufferYUV; 00058 00062 vetFrameRGB24* bufferRGB; 00063 00067 vetFrameT<unsigned char>* bufferTuC; 00068 00069 00070 00071 void releaseBuffers(); 00072 00073 public: 00074 00081 vetPlainFrameGenerator(float fps = 0); 00082 00090 vetPlainFrameGenerator(PixelRGB96& background, float fps = 0); 00091 00099 vetPlainFrameGenerator(PixelGrey& background, float fps = 0); 00100 00101 00102 00103 00104 ~vetPlainFrameGenerator(); 00105 00106 00107 00108 00112 VETRESULT reset(); 00113 00114 00115 00116 00117 00123 void useBufferYUV(unsigned int width, unsigned int height); 00124 00130 void useBufferRGB(unsigned int width, unsigned int height); 00131 00137 void useBufferTuC(unsigned int width, unsigned int height, vetFrame::VETFRAME_PROFILE profile); 00138 00144 bool isBufferYUV() { if ( bufferYUV != NULL ) return true; return false; }; 00145 00151 bool isBufferRGB() { if ( bufferRGB != NULL ) return true; return false; }; 00152 00158 bool isBufferTuC() { if ( bufferTuC != NULL ) return true; return false; }; 00159 00160 00161 00162 00163 00164 00165 00171 // void setFrameColor(PixelRGB96& background) { bgRGB = background; }; 00172 00178 // void getFrameColor(PixelRGB96& background) { background = bgRGB; }; 00179 00180 00186 // void setFrameColor(PixelGrey& background) { bgGrey = background; }; 00187 00193 // void getFrameColor(PixelGrey& background) const { background = bgGrey; }; 00194 00195 00196 00197 00198 00204 VETRESULT setHeight(unsigned int value); 00205 00211 VETRESULT setWidth(unsigned int value); 00212 00213 00214 00215 unsigned int getWidth() const; 00216 00217 unsigned int getHeight() const; 00218 00219 00225 bool EoF() { return false; }; 00226 00238 VETRESULT extractTo(vetFrameYUV420& img); 00239 00251 VETRESULT extractTo(vetFrameRGB24& img); 00252 00264 VETRESULT extractTo(vetFrameT<unsigned char>& img); 00265 00266 }; 00267 00268 00269 #endif //__VETLIB_VETPLAINFRAMEGENERATOR_H__
1.4.4