opj_set_decoded_components(): add a provision for a apply_color_transforms parameter in case we support it in the future
This commit is contained in:
parent
7e2b6bebff
commit
e17bbde906
|
@ -1488,7 +1488,8 @@ int main(int argc, char **argv)
|
||||||
if (parameters.numcomps) {
|
if (parameters.numcomps) {
|
||||||
if (! opj_set_decoded_components(l_codec,
|
if (! opj_set_decoded_components(l_codec,
|
||||||
parameters.numcomps,
|
parameters.numcomps,
|
||||||
parameters.comps_indices)) {
|
parameters.comps_indices,
|
||||||
|
OPJ_FALSE)) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"ERROR -> opj_decompress: failed to set the component indices!\n");
|
"ERROR -> opj_decompress: failed to set the component indices!\n");
|
||||||
opj_destroy_codec(l_codec);
|
opj_destroy_codec(l_codec);
|
||||||
|
|
|
@ -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_BOOL OPJ_CALLCONV opj_set_decoded_components(opj_codec_t *p_codec,
|
||||||
OPJ_UINT32 numcomps,
|
OPJ_UINT32 numcomps,
|
||||||
const OPJ_UINT32* comps_indices)
|
const OPJ_UINT32* comps_indices,
|
||||||
|
OPJ_BOOL apply_color_transforms)
|
||||||
{
|
{
|
||||||
if (p_codec) {
|
if (p_codec) {
|
||||||
opj_codec_private_t * l_codec = (opj_codec_private_t *) p_codec;
|
opj_codec_private_t * l_codec = (opj_codec_private_t *) p_codec;
|
||||||
|
|
||||||
if (! l_codec->is_decompressor) {
|
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;
|
return OPJ_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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().
|
* This function should be called after opj_read_header().
|
||||||
*
|
*
|
||||||
* Normally all the components are decoded. This call enables to restrict
|
* This function enables to restrict the set of decoded components to the
|
||||||
* the set of decoded components to the specified indices.
|
* specified indices.
|
||||||
* Note that neither the MCT transform nor JP2 channel transformatios will be applied.
|
* 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().
|
* 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
|
* @param comps_indices Array of numcomps values representing the indices
|
||||||
* of the components to decode (relative to the
|
* of the components to decode (relative to the
|
||||||
* codestream, starting at 0)
|
* 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.
|
* @return OPJ_TRUE in case of success.
|
||||||
*/
|
*/
|
||||||
OPJ_API OPJ_BOOL OPJ_CALLCONV opj_set_decoded_components(opj_codec_t *p_codec,
|
OPJ_API OPJ_BOOL OPJ_CALLCONV opj_set_decoded_components(opj_codec_t *p_codec,
|
||||||
OPJ_UINT32 numcomps,
|
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.
|
* Sets the given area to be decoded. This function should be called right after opj_read_header and before any tile header reading.
|
||||||
|
|
Loading…
Reference in New Issue