00001 00044 #ifndef __VETLIB_VETPROCESS_H__ 00045 #define __VETLIB_VETPROCESS_H__ 00046 00047 #include "vetDefs.h" 00048 #include "vetObject.h" 00049 #include "vetInput.h" 00050 #include "vetOutput.h" 00051 #include "vetFilter.h" 00052 00053 #include "vetFrameYUV420.h" 00054 #include "vetFrameRGB24.h" 00055 #include "vetFrameT.h" 00056 00057 00058 #define VETDEF_THREADs_MAX 100 /* */ 00059 #define VETDEF_MULITHREAD_ENABLED false /* */ 00060 00061 00062 class vetProcess: public vetObject 00063 { 00064 00065 protected: 00066 00067 00068 vetInput* v_source; 00069 vetOutput* v_out; 00070 00071 vetFilter** v_Filters; 00072 00073 unsigned int width; 00074 unsigned int height; 00075 00076 bool v_isMultiThreadingEnabled; 00077 int v_MaxSimultaneousThread; 00078 00079 int v_currentThreads; 00080 00081 00082 public: 00083 00084 vetProcess(); 00085 ~vetProcess(); 00086 00087 void setInput(vetInput& sourceVideo) { v_source = &sourceVideo; }; 00088 vetInput* getInput() { return v_source; }; 00089 00090 void setOutput(vetOutput& outputVideo) { v_out = &outputVideo; }; 00091 vetOutput* getOutput() { return v_out; }; 00092 00093 VETRESULT addFilter(vetFilter& aFilter); 00094 VETRESULT removeFilter(vetFilter& oldFilter); 00095 00096 // int addFunction(function pointer); 00097 00098 VETRESULT run(); 00099 VETRESULT runOnce(); 00100 00101 00107 bool isMultiThreadingEnabled() const { return v_isMultiThreadingEnabled; }; 00108 00114 int getMaxThreads() const { return v_MaxSimultaneousThread; }; 00115 00121 int getCurrentThreads() const { return v_currentThreads; }; 00122 00123 00124 00125 00126 /* 00127 [..] 00128 [..] 00129 00130 loadFromXML(); 00131 saveToXML(); 00132 */ 00133 00134 00135 00136 }; 00137 00138 00139 00140 #endif /* __VETLIB_VETPROCESS_H__ */
1.4.4