00001 #ifndef vidl_vil1_mpegcodec_h
00002 #define vidl_vil1_mpegcodec_h
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include <vidl_vil1/vidl_vil1_mpegcodec_helper.h>
00024 #include <vidl_vil1/vidl_vil1_codec.h>
00025 #include <vidl_vil1/vidl_vil1_codec_sptr.h>
00026
00027 class vil1_image;
00028
00029
00030 class vidl_vil1_mpegcodec : public vidl_vil1_codec
00031 {
00032
00033 vidl_vil1_mpegcodec_helper * decoder_;
00034 frame_buffer * buffers_;
00035 bool inited;
00036
00037
00038
00039 public:
00040 vidl_vil1_mpegcodec();
00041 ~vidl_vil1_mpegcodec();
00042
00043
00044 vidl_vil1_mpegcodec* castto_vidl_vil1_mpegcodec(){return this;}
00045
00046
00047
00048
00049
00050 bool get_section(int frame_position,
00051 void* ib,
00052 int x0,
00053 int y0,
00054 int xs,
00055 int ys) const;
00056 int put_section(int ,
00057 void* ,
00058 int ,
00059 int ,
00060 int ,
00061 int ){return 0;}
00062
00063 virtual bool probe(vcl_string const& fname);
00064 virtual vidl_vil1_codec_sptr load(vcl_string const& fname, char mode = 'r' );
00065 bool save(vidl_vil1_movie* , vcl_string const& ){return true;}
00066 virtual vcl_string type() const {return "MPEG";}
00067
00068
00069
00070
00071
00072
00073 void set_grey_scale(bool grey);
00074 void set_demux_video();
00075 void set_pid(vcl_string pid);
00076 bool init();
00077 };
00078
00079 #endif // vidl_vil1_mpegcodec_h