00001 // avicapture.h 00002 // 00003 // Copyright (C) 2001, Chris Laurel <claurel@shatters.net> 00004 // 00005 // This program is free software; you can redistribute it and/or 00006 // modify it under the terms of the GNU General Public License 00007 // as published by the Free Software Foundation; either version 2 00008 // of the License, or (at your option) any later version. 00009 00010 #ifndef _AVICAPTURE_H_ 00011 #define _AVICAPTURE_H_ 00012 00013 #include <windowsx.h> 00014 #include <vfw.h> 00015 #include "moviecapture.h" 00016 00017 00018 class AVICapture : public MovieCapture 00019 { 00020 public: 00021 AVICapture(); 00022 virtual ~AVICapture(); 00023 00024 bool start(const std::string& filename, int w, int h, float fps); 00025 bool end(); 00026 bool captureFrame(); 00027 00028 int getWidth() const; 00029 int getHeight() const; 00030 float getFrameRate() const; 00031 int getFrameCount() const; 00032 00033 private: 00034 void cleanup(); 00035 00036 private: 00037 int width; 00038 int height; 00039 float frameRate; 00040 int frameCounter; 00041 bool capturing; 00042 PAVIFILE aviFile; 00043 PAVISTREAM aviStream; 00044 PAVISTREAM compAviStream; 00045 unsigned char* image; 00046 }; 00047 00048 #endif // _AVICAPTURE_H_
1.4.1