@@ -35,8 +35,10 @@ static short *g_u_table;
3535static short *b_u_table;
3636__attribute__ ((aligned(16 ))) static const uint8_t movemask[16] = {0 ,4 ,8 ,12 ,0xFF ,0xFF ,0xFF ,0xFF ,0xFF ,0xFF ,0xFF ,0xFF ,0xFF ,0xFF ,0xFF ,0xFF };
3737
38- jpeg_compress_struct *Image::jpg_ccinfo[101 ] = { 0 };
39- jpeg_decompress_struct *Image::jpg_dcinfo = 0 ;
38+ jpeg_compress_struct *Image::writejpg_ccinfo[101 ] = { 0 };
39+ jpeg_compress_struct *Image::encodejpg_ccinfo[101 ] = { 0 };
40+ jpeg_decompress_struct *Image::readjpg_dcinfo = 0 ;
41+ jpeg_decompress_struct *Image::decodejpg_dcinfo = 0 ;
4042struct zm_error_mgr Image::jpg_err;
4143
4244/* Pointer to blend function. */
@@ -151,11 +153,17 @@ Image::~Image()
151153 delete[] b_u_table;
152154 initialised = false ;
153155 }
154- if ( jpg_dcinfo )
156+ if ( readjpg_dcinfo )
155157 {
156- jpeg_destroy_decompress ( jpg_dcinfo );
157- delete jpg_dcinfo;
158- jpg_dcinfo = 0 ;
158+ jpeg_destroy_decompress ( readjpg_dcinfo );
159+ delete readjpg_dcinfo;
160+ readjpg_dcinfo = 0 ;
161+ }
162+ if ( decodejpg_dcinfo )
163+ {
164+ jpeg_destroy_decompress ( decodejpg_dcinfo );
165+ delete decodejpg_dcinfo;
166+ decodejpg_dcinfo = 0 ;
159167 }
160168}
161169
@@ -653,11 +661,11 @@ bool Image::WriteRaw( const char *filename ) const
653661bool Image::ReadJpeg ( const char *filename, unsigned int p_colours, unsigned int p_subpixelorder)
654662{
655663 unsigned int new_width, new_height, new_colours, new_subpixelorder;
656- struct jpeg_decompress_struct *cinfo = jpg_dcinfo ;
664+ struct jpeg_decompress_struct *cinfo = readjpg_dcinfo ;
657665
658666 if ( !cinfo )
659667 {
660- cinfo = jpg_dcinfo = new jpeg_decompress_struct;
668+ cinfo = readjpg_dcinfo = new jpeg_decompress_struct;
661669 cinfo->err = jpeg_std_error ( &jpg_err.pub );
662670 jpg_err.pub .error_exit = zm_jpeg_error_exit;
663671 jpg_err.pub .emit_message = zm_jpeg_emit_message;
@@ -814,11 +822,11 @@ bool Image::WriteJpeg( const char *filename, int quality_override, struct timeva
814822 }
815823 int quality = quality_override?quality_override:config.jpeg_file_quality ;
816824
817- struct jpeg_compress_struct *cinfo = jpg_ccinfo [quality];
825+ struct jpeg_compress_struct *cinfo = writejpg_ccinfo [quality];
818826
819827 if ( !cinfo )
820828 {
821- cinfo = jpg_ccinfo [quality] = new jpeg_compress_struct;
829+ cinfo = writejpg_ccinfo [quality] = new jpeg_compress_struct;
822830 cinfo->err = jpeg_std_error ( &jpg_err.pub );
823831 jpg_err.pub .error_exit = zm_jpeg_error_exit;
824832 jpg_err.pub .emit_message = zm_jpeg_emit_message;
@@ -945,11 +953,11 @@ bool Image::WriteJpeg( const char *filename, int quality_override, struct timeva
945953bool Image::DecodeJpeg ( const JOCTET *inbuffer, int inbuffer_size, unsigned int p_colours, unsigned int p_subpixelorder)
946954{
947955 unsigned int new_width, new_height, new_colours, new_subpixelorder;
948- struct jpeg_decompress_struct *cinfo = jpg_dcinfo ;
956+ struct jpeg_decompress_struct *cinfo = decodejpg_dcinfo ;
949957
950958 if ( !cinfo )
951959 {
952- cinfo = jpg_dcinfo = new jpeg_decompress_struct;
960+ cinfo = decodejpg_dcinfo = new jpeg_decompress_struct;
953961 cinfo->err = jpeg_std_error ( &jpg_err.pub );
954962 jpg_err.pub .error_exit = zm_jpeg_error_exit;
955963 jpg_err.pub .emit_message = zm_jpeg_emit_message;
@@ -1079,11 +1087,11 @@ bool Image::EncodeJpeg( JOCTET *outbuffer, int *outbuffer_size, int quality_over
10791087
10801088 int quality = quality_override?quality_override:config.jpeg_stream_quality ;
10811089
1082- struct jpeg_compress_struct *cinfo = jpg_ccinfo [quality];
1090+ struct jpeg_compress_struct *cinfo = encodejpg_ccinfo [quality];
10831091
10841092 if ( !cinfo )
10851093 {
1086- cinfo = jpg_ccinfo [quality] = new jpeg_compress_struct;
1094+ cinfo = encodejpg_ccinfo [quality] = new jpeg_compress_struct;
10871095 cinfo->err = jpeg_std_error ( &jpg_err.pub );
10881096 jpg_err.pub .error_exit = zm_jpeg_error_exit;
10891097 jpg_err.pub .emit_message = zm_jpeg_emit_message;
0 commit comments