[trunk] merge rev 1330/1331 from branch 1.5 onto trunk

This commit is contained in:
Mathieu Malaterre 2012-03-02 14:24:39 +00:00
parent d28e8f537a
commit 10cb93283a
1 changed files with 10 additions and 5 deletions

View File

@ -191,7 +191,7 @@ Apply collected palette data
@param color Collector for profile, cdef and pclr data @param color Collector for profile, cdef and pclr data
@param image @param image
*/ */
static void jp2_apply_pclr(opj_image_t *image, opj_jp2_color_t *color); static void jp2_apply_pclr(opj_jp2_color_t *color, opj_image_t *image, opj_common_ptr cinfo);
/** /**
Collect palette data Collect palette data
@param jp2 JP2 handle @param jp2 JP2 handle
@ -761,8 +761,7 @@ static void free_color_data(opj_jp2_color_t *color)
if(color->icc_profile_buf) opj_free(color->icc_profile_buf); if(color->icc_profile_buf) opj_free(color->icc_profile_buf);
} }
static void jp2_apply_pclr(opj_jp2_color_t *color, opj_image_t *image, opj_common_ptr cinfo)
static void jp2_apply_pclr(opj_image_t *image, opj_jp2_color_t *color)
{ {
opj_image_comp_t *old_comps, *new_comps; opj_image_comp_t *old_comps, *new_comps;
OPJ_BYTE *channel_size, *channel_sign; OPJ_BYTE *channel_size, *channel_sign;
@ -786,7 +785,13 @@ static void jp2_apply_pclr(opj_image_t *image, opj_jp2_color_t *color)
for(i = 0; i < nr_channels; ++i) { for(i = 0; i < nr_channels; ++i) {
pcol = cmap[i].pcol; cmp = cmap[i].cmp; pcol = cmap[i].pcol; cmp = cmap[i].cmp;
new_comps[pcol] = old_comps[cmp]; if( pcol < nr_channels )
new_comps[pcol] = old_comps[cmp];
else
{
opj_event_msg(cinfo, EVT_ERROR, "Error with pcol value %d (max: %d). skipping\n", pcol, nr_channels);
continue;
}
/* Direct use */ /* Direct use */
if(cmap[i].mtyp == 0){ if(cmap[i].mtyp == 0){
@ -1471,7 +1476,7 @@ opj_image_t* opj_jp2_decode(opj_jp2_t *jp2, opj_cio_t *cio,
if( !color.jp2_pclr->cmap) if( !color.jp2_pclr->cmap)
jp2_free_pclr(&color); jp2_free_pclr(&color);
else else
jp2_apply_pclr(image, &color); jp2_apply_pclr(&color, image, cinfo);
} }
if(color.icc_profile_buf) if(color.icc_profile_buf)
{ {