summaryrefslogtreecommitdiff
path: root/src/lib/openjp2/t2.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/openjp2/t2.c')
-rw-r--r--src/lib/openjp2/t2.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/lib/openjp2/t2.c b/src/lib/openjp2/t2.c
index 781a6a59..6a2ee523 100644
--- a/src/lib/openjp2/t2.c
+++ b/src/lib/openjp2/t2.c
@@ -390,15 +390,16 @@ static void opj_null_jas_fprintf(FILE* file, const char * format, ...)
#define JAS_FPRINTF opj_null_jas_fprintf
#endif
-OPJ_BOOL opj_t2_decode_packets(opj_tcd_t* tcd,
- opj_t2_t *p_t2,
- OPJ_UINT32 p_tile_no,
- opj_tcd_tile_t *p_tile,
- OPJ_BYTE *p_src,
- OPJ_UINT32 * p_data_read,
- OPJ_UINT32 p_max_len,
- opj_codestream_index_t *p_cstr_index,
- opj_event_mgr_t *p_manager)
+OPJ_RESULT opj_t2_decode_packets(opj_tcd_t* tcd,
+ opj_t2_t *p_t2,
+ OPJ_UINT32 p_tile_no,
+ opj_tcd_tile_t *p_tile,
+ OPJ_BYTE *p_src,
+ OPJ_UINT32 * p_data_read,
+ OPJ_UINT32 p_max_len,
+ opj_codestream_index_t *p_cstr_index,
+ opj_event_mgr_t *p_manager,
+ opj_cancel_t *p_cancel)
{
OPJ_BYTE *l_current_data = p_src;
opj_pi_iterator_t *l_pi = 00;
@@ -462,6 +463,10 @@ OPJ_BOOL opj_t2_decode_packets(opj_tcd_t* tcd,
l_current_pi->poc.prg1, l_current_pi->compno, l_current_pi->resno,
l_current_pi->precno, l_current_pi->layno);
+ if (opj_should_cancel(p_cancel)) {
+ return OPJ_CANCEL;
+ }
+
/* If the packet layer is greater or equal than the maximum */
/* number of layers, skip the packet */
if (l_current_pi->layno >= l_tcp->num_layers_to_decode) {