Go to the documentation of this file.00001
00002 #ifndef vidl_ffmpeg_istream_h_
00003 #define vidl_ffmpeg_istream_h_
00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE
00005 #pragma interface
00006 #endif
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "vidl_istream.h"
00020 #include <vcl_string.h>
00021
00022
00023
00024 class vidl_ffmpeg_istream
00025 : public vidl_istream
00026 {
00027 public:
00028
00029 vidl_ffmpeg_istream();
00030
00031
00032 vidl_ffmpeg_istream(const vcl_string& filename);
00033
00034
00035 virtual ~vidl_ffmpeg_istream();
00036
00037
00038 virtual bool open(const vcl_string& filename);
00039
00040
00041 virtual void close();
00042
00043
00044 virtual bool is_open() const;
00045
00046
00047 virtual bool is_valid() const;
00048
00049
00050 virtual bool is_seekable() const;
00051
00052
00053
00054 virtual int num_frames() const;
00055
00056
00057 virtual unsigned int frame_number() const;
00058
00059
00060 virtual unsigned int width() const;
00061
00062
00063 virtual unsigned int height() const;
00064
00065
00066 virtual vidl_pixel_format format() const;
00067
00068
00069 virtual double frame_rate() const;
00070
00071
00072 virtual double duration() const;
00073
00074
00075 virtual bool advance();
00076
00077
00078 virtual vidl_frame_sptr read_frame();
00079
00080
00081 virtual vidl_frame_sptr current_frame();
00082
00083
00084
00085 virtual bool seek_frame(unsigned int frame_number);
00086
00087 private:
00088
00089
00090 struct pimpl;
00091 pimpl* is_;
00092 };
00093
00094 #endif // vidl_ffmpeg_istream_h_