Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

MovieFile.h

Go to the documentation of this file.
00001 // This is oxl/oxp/MovieFile.h
00002 #ifndef MovieFile_h_
00003 #define MovieFile_h_
00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE
00005 #pragma interface
00006 #endif
00007 //:
00008 // \file
00009 // \brief Read various movie formats
00010 // 
00011 //  MovieFile is an interface to movie files and image sequences.
00012 //  It is currently read-only.
00013 // \author
00014 //     Andrew W. Fitzgibbon, Oxford RRG, 26 Aug 98
00015 //
00016 //-----------------------------------------------------------------------------
00017 
00018 #include <vcl_string.h>
00019 #include <vxl_config.h>
00020 
00021 #include <vil1/vil1_memory_image_of.h>
00022 #include <vil1/vil1_rgb.h>
00023 
00024 struct MovieFileInterface;
00025 
00026 //: an interface to movie files and image sequences.  It is currently read-only
00027 class MovieFile
00028 {
00029  public:
00030   // Constructors/Destructors--------------------------------------------------
00031 
00032   MovieFile(char const * filename, int start = 0, int step = 1, int end = -1);
00033   ~MovieFile();
00034 
00035   int GetLength();
00036   int GetSizeX(int frame_index = 0);
00037   int GetSizeY(int frame_index = 0);
00038   int GetBitsPixel();
00039 
00040   int GetRealFrameIndex(int frame) { return start_ + frame * step_; }
00041   int GetNumFrames();
00042 
00043   vil1_image GetImage(int frame_index);
00044 
00045   bool HasFrame(int frame_index);
00046   void GetFrame(int frame_index, vil1_rgb<unsigned char> * frame);
00047   void GetFrame(int frame_index, vxl_byte* frame);
00048   void GetFrame(int frame_index, vil1_memory_image_of<vil1_rgb<unsigned char> >& frame);
00049   void GetFrame(int frame_index, vil1_memory_image_of<vxl_byte>& frame);
00050   void GetFrameRGB(int frame_index, vxl_byte* frame);
00051 
00052   bool ok() { return qt != 0; }
00053 
00054  protected:
00055   vcl_string filename_;
00056   int start_, step_, end_;
00057   MovieFileInterface* qt;
00058   vil1_memory_image_of<vil1_rgb<unsigned char> >* tmp_buf_;
00059 
00060   int index(int);
00061 };
00062 
00063 #endif // MovieFile_h_

Generated on Thu Jan 10 14:46:06 2008 for contrib/oxl/oxp by  doxygen 1.4.4