summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2017-09-19 17:48:07 +0200
committerEven Rouault <even.rouault@spatialys.com>2017-09-19 17:48:07 +0200
commite17bbde9066600528ab523adee69d9c9c33ba157 (patch)
treec17e7c492b84be15649e33b0dfe8b746371c67fb /src/lib
parent7e2b6bebff12eab8bdc17fc9af017e8c11652f4f (diff)
opj_set_decoded_components(): add a provision for a apply_color_transforms parameter in case we support it in the future
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/openjp2/openjpeg.c11
-rw-r--r--src/lib/openjp2/openjpeg.h16
2 files changed, 22 insertions, 5 deletions
diff --git a/src/lib/openjp2/openjpeg.c b/src/lib/openjp2/openjpeg.c
index 5ba205e1..7b123034 100644
--- a/src/lib/openjp2/openjpeg.c
+++ b/src/lib/openjp2/openjpeg.c
@@ -441,12 +441,21 @@ OPJ_BOOL OPJ_CALLCONV opj_read_header(opj_stream_t *p_stream,
OPJ_BOOL OPJ_CALLCONV opj_set_decoded_components(opj_codec_t *p_codec,
OPJ_UINT32 numcomps,
- const OPJ_UINT32* comps_indices)
+ const OPJ_UINT32* comps_indices,
+ OPJ_BOOL apply_color_transforms)
{
if (p_codec) {
opj_codec_private_t * l_codec = (opj_codec_private_t *) p_codec;
if (! l_codec->is_decompressor) {
+ opj_event_msg(&(l_codec->m_event_mgr), EVT_ERROR,
+ "Codec provided to the opj_set_decoded_components function is not a decompressor handler.\n");
+ return OPJ_FALSE;
+ }
+
+ if (apply_color_transforms) {
+ opj_event_msg(&(l_codec->m_event_mgr), EVT_ERROR,
+ "apply_color_transforms = OPJ_TRUE is not supported.\n");
return OPJ_FALSE;
}
diff --git a/src/lib/openjp2/openjpeg.h b/src/lib/openjp2/openjpeg.h
index 2888e4d1..f36286eb 100644
--- a/src/lib/openjp2/openjpeg.h
+++ b/src/lib/openjp2/openjpeg.h
@@ -1341,9 +1341,12 @@ OPJ_API OPJ_BOOL OPJ_CALLCONV opj_read_header(opj_stream_t *p_stream,
*
* This function should be called after opj_read_header().
*
- * Normally all the components are decoded. This call enables to restrict
- * the set of decoded components to the specified indices.
- * Note that neither the MCT transform nor JP2 channel transformatios will be applied.
+ * This function enables to restrict the set of decoded components to the
+ * specified indices.
+ * Note that the current implementation (apply_color_transforms == OPJ_FALSE)
+ * is such that neither the multi-component transform at codestream level,
+ * nor JP2 channel transformations will be applied.
+ * Consequently the indices are relative to the codestream.
*
* Note: opj_decode_tile_data() should not be used together with opj_set_decoded_components().
*
@@ -1352,12 +1355,17 @@ OPJ_API OPJ_BOOL OPJ_CALLCONV opj_read_header(opj_stream_t *p_stream,
* @param comps_indices Array of numcomps values representing the indices
* of the components to decode (relative to the
* codestream, starting at 0)
+ * @param apply_color_transforms Whether multi-component transform at codestream level
+ * or JP2 channel transformations should be applied.
+ * Currently this parameter should be set to OPJ_FALSE.
+ * Setting it to OPJ_TRUE will result in an error.
*
* @return OPJ_TRUE in case of success.
*/
OPJ_API OPJ_BOOL OPJ_CALLCONV opj_set_decoded_components(opj_codec_t *p_codec,
OPJ_UINT32 numcomps,
- const OPJ_UINT32* comps_indices);
+ const OPJ_UINT32* comps_indices,
+ OPJ_BOOL apply_color_transforms);
/**
* Sets the given area to be decoded. This function should be called right after opj_read_header and before any tile header reading.