summaryrefslogtreecommitdiff
path: root/libopenjpeg/jp2.c
diff options
context:
space:
mode:
authorMickael Savinaud <savmickael@users.noreply.github.com>2012-08-09 14:28:35 +0000
committerMickael Savinaud <savmickael@users.noreply.github.com>2012-08-09 14:28:35 +0000
commit8e5070f469109b53098754c9a82ffc9f5141d5e7 (patch)
treef2dea95d554d80bb913efaf8d7e3a1c84683df8d /libopenjpeg/jp2.c
parent4397b675cbe311d37e3df963a1e9aa2111348dfc (diff)
[trunk] add the support of the flag ignore_pclr_cmap_cdef into the V2 jp2 functions (but not for box reading); no tests modified
Diffstat (limited to 'libopenjpeg/jp2.c')
-rw-r--r--libopenjpeg/jp2.c66
1 files changed, 32 insertions, 34 deletions
diff --git a/libopenjpeg/jp2.c b/libopenjpeg/jp2.c
index 524bfa6a..330548c8 100644
--- a/libopenjpeg/jp2.c
+++ b/libopenjpeg/jp2.c
@@ -1775,35 +1775,38 @@ opj_bool jp2_decode_v2( opj_jp2_v2_t *jp2,
opj_event_msg_v2(p_manager, EVT_ERROR, "Failed to decode the codestream in the JP2 file\n");
return OPJ_FALSE;
}
+
+ if (!jp2->ignore_pclr_cmap_cdef){
- /* Set Image Color Space */
- if (jp2->enumcs == 16)
- p_image->color_space = CLRSPC_SRGB;
- else if (jp2->enumcs == 17)
- p_image->color_space = CLRSPC_GRAY;
- else if (jp2->enumcs == 18)
- p_image->color_space = CLRSPC_SYCC;
- else
- p_image->color_space = CLRSPC_UNKNOWN;
-
- /* Apply the color space if needed */
- if(jp2->color.jp2_cdef) {
- jp2_apply_cdef(p_image, &(jp2->color));
- }
-
- if(jp2->color.jp2_pclr) {
- /* Part 1, I.5.3.4: Either both or none : */
- if( !jp2->color.jp2_pclr->cmap)
- jp2_free_pclr(&(jp2->color));
- else
- jp2_apply_pclr(p_image, &(jp2->color));
- }
-
- if(jp2->color.icc_profile_buf) {
- p_image->icc_profile_buf = jp2->color.icc_profile_buf;
- p_image->icc_profile_len = jp2->color.icc_profile_len;
- jp2->color.icc_profile_buf = NULL;
- }
+ /* Set Image Color Space */
+ if (jp2->enumcs == 16)
+ p_image->color_space = CLRSPC_SRGB;
+ else if (jp2->enumcs == 17)
+ p_image->color_space = CLRSPC_GRAY;
+ else if (jp2->enumcs == 18)
+ p_image->color_space = CLRSPC_SYCC;
+ else
+ p_image->color_space = CLRSPC_UNKNOWN;
+
+ /* Apply the color space if needed */
+ if(jp2->color.jp2_cdef) {
+ jp2_apply_cdef(p_image, &(jp2->color));
+ }
+
+ if(jp2->color.jp2_pclr) {
+ /* Part 1, I.5.3.4: Either both or none : */
+ if( !jp2->color.jp2_pclr->cmap)
+ jp2_free_pclr(&(jp2->color));
+ else
+ jp2_apply_pclr(p_image, &(jp2->color));
+ }
+
+ if(jp2->color.icc_profile_buf) {
+ p_image->icc_profile_buf = jp2->color.icc_profile_buf;
+ p_image->icc_profile_len = jp2->color.icc_profile_len;
+ jp2->color.icc_profile_buf = NULL;
+ }
+ }
return OPJ_TRUE;
}
@@ -2319,12 +2322,6 @@ void jp2_destroy_decompress(opj_jp2_t *jp2) {
}
}
-void jp2_setup_decoder(opj_jp2_t *jp2, opj_dparameters_t *parameters) {
- /* setup the J2K codec */
- j2k_setup_decoder(jp2->j2k, parameters);
- /* further JP2 initializations go here */
- jp2->ignore_pclr_cmap_cdef = parameters->flags & OPJ_DPARAMETERS_IGNORE_PCLR_CMAP_CDEF_FLAG;
-}
void jp2_setup_decoder_v2(opj_jp2_v2_t *jp2, opj_dparameters_t *parameters)
{
@@ -2333,6 +2330,7 @@ void jp2_setup_decoder_v2(opj_jp2_v2_t *jp2, opj_dparameters_t *parameters)
/* further JP2 initializations go here */
jp2->color.jp2_has_colr = 0;
+ jp2->ignore_pclr_cmap_cdef = parameters->flags & OPJ_DPARAMETERS_IGNORE_PCLR_CMAP_CDEF_FLAG;
}