Updated warning options for GCC; fixed new warnings.

This commit is contained in:
Andrey Kamaev
2012-06-20 12:27:02 +00:00
parent 779f4e39de
commit d48d7b2b46
50 changed files with 2055 additions and 1808 deletions

View File

@@ -380,7 +380,6 @@ int my_jpeg_load_dht (struct jpeg_decompress_struct *info, unsigned char *dht,
bool JpegDecoder::readData( Mat& img )
{
bool result = false;
uchar* data = img.data;
int step = (int)img.step;
bool color = img.channels() > 1;
JpegState* state = (JpegState*)m_state;
@@ -439,6 +438,7 @@ bool JpegDecoder::readData( Mat& img )
buffer = (*cinfo->mem->alloc_sarray)((j_common_ptr)cinfo,
JPOOL_IMAGE, m_width*4, 1 );
uchar* data = img.data;
for( ; m_height--; data += step )
{
jpeg_read_scanlines( cinfo, buffer, 1 );
@@ -533,19 +533,15 @@ ImageEncoder JpegEncoder::newEncoder() const
bool JpegEncoder::write( const Mat& img, const vector<int>& params )
{
int quality = 95;
for( size_t i = 0; i < params.size(); i += 2 )
struct fileWrapper
{
if( params[i] == CV_IMWRITE_JPEG_QUALITY )
{
quality = params[i+1];
quality = MIN(MAX(quality, 0), 100);
}
}
FILE* f;
fileWrapper() : f(0) {}
~fileWrapper() { if(f) fclose(f); }
};
bool result = false;
FILE* f = 0;
fileWrapper fw;
int _channels = img.channels();
int channels = _channels > 1 ? 3 : 1;
int width = img.cols, height = img.rows;
@@ -564,10 +560,10 @@ bool JpegEncoder::write( const Mat& img, const vector<int>& params )
if( !m_buf )
{
f = fopen( m_filename.c_str(), "wb" );
if( !f )
fw.f = fopen( m_filename.c_str(), "wb" );
if( !fw.f )
goto _exit_;
jpeg_stdio_dest( &cinfo, f );
jpeg_stdio_dest( &cinfo, fw.f );
}
else
{
@@ -587,6 +583,17 @@ bool JpegEncoder::write( const Mat& img, const vector<int>& params )
cinfo.input_components = channels;
cinfo.in_color_space = channels > 1 ? JCS_RGB : JCS_GRAYSCALE;
int quality = 95;
for( size_t i = 0; i < params.size(); i += 2 )
{
if( params[i] == CV_IMWRITE_JPEG_QUALITY )
{
quality = params[i+1];
quality = MIN(MAX(quality, 0), 100);
}
}
jpeg_set_defaults( &cinfo );
jpeg_set_quality( &cinfo, quality,
TRUE /* limit to baseline-JPEG values */ );
@@ -619,7 +626,6 @@ bool JpegEncoder::write( const Mat& img, const vector<int>& params )
}
_exit_:
if(f) fclose(f);
jpeg_destroy_compress( &cinfo );
return result;