00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef __FIREVISION_UTILS_READERS_JPEG_H_
00025 #define __FIREVISION_UTILS_READERS_JPEG_H_
00026
00027 #include <fvutils/readers/reader.h>
00028
00029 #include <cstdio>
00030 extern "C" {
00031 #include <jpeglib.h>
00032 }
00033
00034 namespace firevision {
00035 #if 0
00036 }
00037 #endif
00038
00039 class JpegReader : public Reader {
00040
00041 public:
00042 JpegReader(const char *filename);
00043 virtual ~JpegReader();
00044
00045 virtual void set_buffer(unsigned char *yuv422planar_buffer);
00046 virtual colorspace_t colorspace();
00047 virtual unsigned int pixel_width();
00048 virtual unsigned int pixel_height();
00049 virtual void read();
00050
00051 private:
00052 bool opened;
00053
00054 unsigned char *buffer;
00055 unsigned char *row_buffer;
00056
00057 FILE *infile;
00058 int row_stride;
00059 struct jpeg_decompress_struct cinfo;
00060 struct jpeg_error_mgr jerr;
00061 };
00062
00063 }
00064
00065 #endif