When tjDecodeYUV() is used with a "fresh" decompressor instance (one that hasn't been previously used to decompress a JPEG image), then it needs comps_in_scan, data_precision, and the quantization tables to be defined. This patch also extends TJUnitTest to check for this error.
git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1143 632fc199-4ca6-4c93-a231-07263d6284db
This commit is contained in:
10
turbojpeg.c
10
turbojpeg.c
@@ -1242,12 +1242,12 @@ static int setDecodeDefaults(struct jpeg_decompress_struct *dinfo,
|
||||
|
||||
if(subsamp==TJSAMP_GRAY)
|
||||
{
|
||||
dinfo->num_components=1;
|
||||
dinfo->num_components=dinfo->comps_in_scan=1;
|
||||
dinfo->jpeg_color_space=JCS_GRAYSCALE;
|
||||
}
|
||||
else
|
||||
{
|
||||
dinfo->num_components=3;
|
||||
dinfo->num_components=dinfo->comps_in_scan=3;
|
||||
dinfo->jpeg_color_space=JCS_YCbCr;
|
||||
}
|
||||
|
||||
@@ -1265,6 +1265,12 @@ static int setDecodeDefaults(struct jpeg_decompress_struct *dinfo,
|
||||
(i==0)? 0:1;
|
||||
dinfo->cur_comp_info[i]=compptr;
|
||||
}
|
||||
dinfo->data_precision=8;
|
||||
for(i=0; i<2; i++)
|
||||
{
|
||||
if(dinfo->quant_tbl_ptrs[i]==NULL)
|
||||
dinfo->quant_tbl_ptrs[i]=jpeg_alloc_quant_table((j_common_ptr)dinfo);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user