[trunk] manage correctly the case where meth value is not correct (thanks winfried)
This commit is contained in:
parent
1e414c8f37
commit
f769d5e27f
|
@ -1103,6 +1103,8 @@ OPJ_BOOL opj_jp2_read_colr( opj_jp2_t *jp2,
|
||||||
}
|
}
|
||||||
|
|
||||||
opj_read_bytes(p_colr_header_data,&jp2->enumcs ,4); /* EnumCS */
|
opj_read_bytes(p_colr_header_data,&jp2->enumcs ,4); /* EnumCS */
|
||||||
|
|
||||||
|
jp2->color.jp2_has_colr = 1;
|
||||||
}
|
}
|
||||||
else if (jp2->meth == 2) {
|
else if (jp2->meth == 2) {
|
||||||
/* ICC profile */
|
/* ICC profile */
|
||||||
|
@ -1125,13 +1127,16 @@ OPJ_BOOL opj_jp2_read_colr( opj_jp2_t *jp2,
|
||||||
jp2->color.icc_profile_buf[it_icc_value] = (OPJ_BYTE) l_value;
|
jp2->color.icc_profile_buf[it_icc_value] = (OPJ_BYTE) l_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
jp2->color.jp2_has_colr = 1;
|
||||||
}
|
}
|
||||||
else
|
else if (jp2->meth > 2)
|
||||||
opj_event_msg(p_manager, EVT_INFO, "COLR BOX meth value is not a regular value (%d), so we will skip the fields following the approx field.\n", jp2->meth);
|
{
|
||||||
|
/* ISO/IEC 15444-1:2004 (E), Table I.9 Legal METH values:
|
||||||
jp2->color.jp2_has_colr = 1;
|
conforming JP2 reader shall ignore the entire Colour Specification box.*/
|
||||||
|
opj_event_msg(p_manager, EVT_INFO, "COLR BOX meth value is not a regular value (%d), "
|
||||||
return OPJ_TRUE;
|
"so we will ignore the entire Colour Specification box. \n", jp2->meth);
|
||||||
|
}
|
||||||
|
return OPJ_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
OPJ_BOOL opj_jp2_decode(opj_jp2_t *jp2,
|
OPJ_BOOL opj_jp2_decode(opj_jp2_t *jp2,
|
||||||
|
|
Loading…
Reference in New Issue