00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00020 #ifndef CReader_h
00021 #define CReader_h
00022
00023 #include <string>
00024 #include <CMotion2DImage.h>
00025
00026 #if defined (WIN32)
00027 # if defined MOTION2D_DLL_EXPORTS
00028 # define MOTION2D_API __declspec( dllexport )
00029 # elif defined MOTION2D_DLL_IMPORTS
00030 # define MOTION2D_API __declspec( dllimport )
00031 # else
00032 # define MOTION2D_API
00033 # endif
00034 #else
00035 # define MOTION2D_API
00036 #endif
00037
00038
00039
00040 #ifndef __NO_IMAGEIO_PNG_
00041 # define _PNG "PNG"
00042 # define _png "png"
00043 #endif
00044 #define _PGM "PGM"
00045 #define _pgm "pgm"
00046 #define _PPM "PPM"
00047 #define _ppm "ppm"
00048 #define _RAW8 "RAW8"
00049 #define _raw8 "raw8"
00050 #define _RAW16 "RAW16"
00051 #define _raw16 "raw16"
00052
00053 #define _mpeg "mpeg"
00054 #define _mpg "mpg"
00055
00056
00057 using namespace std;
00058
00059 class MOTION2D_API CReader
00060 {
00061 protected:
00062 unsigned long frame;
00063 string streamName;
00064 unsigned nbsubsample;
00065
00066 public:
00072 enum EReaderFormat {
00073 FORMAT_NOT_RECOGNIZED,
00074 FORMAT_PGM,
00075 FORMAT_PPM,
00076 FORMAT_RAW8,
00077 FORMAT_RAW16,
00078 #ifndef __NO_IMAGEIO_PNG_
00079 FORMAT_PNG,
00080 #endif
00081 FORMAT_MPEG2
00082 };
00083
00084 CReader();
00085
00091 virtual ~CReader() { };
00092
00093 void setFileName(const char *filename);
00094 void setFileName(string filename);
00095 bool setFrameNumber(unsigned long framenumber);
00101 virtual EReaderFormat getFormat() {return FORMAT_NOT_RECOGNIZED;};
00102
00108 virtual string getFileName() {return "No filename";};
00109
00115 virtual bool getFrame(CMotion2DImage<unsigned char> & I,
00116 unsigned nbsubsample=0,
00117 unsigned nrows=0, unsigned ncols=0)
00118 {
00119 cout <<" Reader "<<endl;
00120 return false;
00121 };
00122
00128 virtual bool getFrame(CMotion2DImage<short> & I,
00129 unsigned nbsubsample=0,
00130 unsigned nrows=0, unsigned ncols=0)
00131 {
00132 cout <<" Reader "<<endl;
00133 return false;
00134 };
00135
00141 virtual bool openStream() {return true;};
00147 virtual bool closeStream() {return true;};
00153 virtual void getType() {
00154 cout << " Reader"<<endl;
00155 };
00156
00163 virtual unsigned getNbSubsample() {return 0;};
00164 };
00165
00166
00167 #endif