Lines 1342-1378
Link Here
|
1342 |
int states; |
1342 |
int states; |
1343 |
/** action linked to the marker */ |
1343 |
/** action linked to the marker */ |
1344 |
void (*handler) (opj_j2k_t *j2k); |
1344 |
void (*handler) (opj_j2k_t *j2k); |
|
|
1345 |
/** The enum value used to limit decode to specific tags. */ |
1346 |
OPJ_LIMIT_TAGS limit_tag; |
1345 |
} opj_dec_mstabent_t; |
1347 |
} opj_dec_mstabent_t; |
1346 |
|
1348 |
|
1347 |
opj_dec_mstabent_t j2k_dec_mstab[] = { |
1349 |
opj_dec_mstabent_t j2k_dec_mstab[] = { |
1348 |
{J2K_MS_SOC, J2K_STATE_MHSOC, j2k_read_soc}, |
1350 |
{J2K_MS_SOC, J2K_STATE_MHSOC, j2k_read_soc, OPJ_TAG_SOC}, |
1349 |
{J2K_MS_SOT, J2K_STATE_MH | J2K_STATE_TPHSOT, j2k_read_sot}, |
1351 |
{J2K_MS_SOT, J2K_STATE_MH | J2K_STATE_TPHSOT, j2k_read_sot, OPJ_TAG_SOT}, |
1350 |
{J2K_MS_SOD, J2K_STATE_TPH, j2k_read_sod}, |
1352 |
{J2K_MS_SOD, J2K_STATE_TPH, j2k_read_sod, OPJ_TAG_SOD}, |
1351 |
{J2K_MS_EOC, J2K_STATE_TPHSOT, j2k_read_eoc}, |
1353 |
{J2K_MS_EOC, J2K_STATE_TPHSOT, j2k_read_eoc, OPJ_TAG_EOC}, |
1352 |
{J2K_MS_SIZ, J2K_STATE_MHSIZ, j2k_read_siz}, |
1354 |
{J2K_MS_SIZ, J2K_STATE_MHSIZ, j2k_read_siz, OPJ_TAG_SIZ}, |
1353 |
{J2K_MS_COD, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_cod}, |
1355 |
{J2K_MS_COD, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_cod, OPJ_TAG_COD}, |
1354 |
{J2K_MS_COC, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_coc}, |
1356 |
{J2K_MS_COC, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_coc, OPJ_TAG_COC}, |
1355 |
{J2K_MS_RGN, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_rgn}, |
1357 |
{J2K_MS_RGN, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_rgn, OPJ_TAG_RGN}, |
1356 |
{J2K_MS_QCD, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_qcd}, |
1358 |
{J2K_MS_QCD, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_qcd, OPJ_TAG_QCD}, |
1357 |
{J2K_MS_QCC, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_qcc}, |
1359 |
{J2K_MS_QCC, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_qcc, OPJ_TAG_QCC}, |
1358 |
{J2K_MS_POC, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_poc}, |
1360 |
{J2K_MS_POC, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_poc, OPJ_TAG_POC}, |
1359 |
{J2K_MS_TLM, J2K_STATE_MH, j2k_read_tlm}, |
1361 |
{J2K_MS_TLM, J2K_STATE_MH, j2k_read_tlm, OPJ_TAG_TLM}, |
1360 |
{J2K_MS_PLM, J2K_STATE_MH, j2k_read_plm}, |
1362 |
{J2K_MS_PLM, J2K_STATE_MH, j2k_read_plm, OPJ_TAG_PLM}, |
1361 |
{J2K_MS_PLT, J2K_STATE_TPH, j2k_read_plt}, |
1363 |
{J2K_MS_PLT, J2K_STATE_TPH, j2k_read_plt, OPJ_TAG_PLT}, |
1362 |
{J2K_MS_PPM, J2K_STATE_MH, j2k_read_ppm}, |
1364 |
{J2K_MS_PPM, J2K_STATE_MH, j2k_read_ppm, OPJ_TAG_PPM}, |
1363 |
{J2K_MS_PPT, J2K_STATE_TPH, j2k_read_ppt}, |
1365 |
{J2K_MS_PPT, J2K_STATE_TPH, j2k_read_ppt, OPJ_TAG_PPT}, |
1364 |
{J2K_MS_SOP, 0, 0}, |
1366 |
{J2K_MS_SOP, 0, 0, OPJ_TAG_SOP}, |
1365 |
{J2K_MS_CRG, J2K_STATE_MH, j2k_read_crg}, |
1367 |
{J2K_MS_CRG, J2K_STATE_MH, j2k_read_crg, OPJ_TAG_CRG}, |
1366 |
{J2K_MS_COM, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_com}, |
1368 |
{J2K_MS_COM, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_com, OPJ_TAG_COM}, |
1367 |
/* UniPG>> */ |
1369 |
/* UniPG>> */ |
1368 |
#ifdef USE_JPWL |
1370 |
#ifdef USE_JPWL |
1369 |
{J2K_MS_EPC, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_epc}, |
1371 |
{J2K_MS_EPC, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_epc, OPJ_TAG_EPC}, |
1370 |
{J2K_MS_EPB, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_epb}, |
1372 |
{J2K_MS_EPB, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_epb, OPJ_TAG_EPB}, |
1371 |
{J2K_MS_ESD, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_esd}, |
1373 |
{J2K_MS_ESD, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_esd, OPJ_TAG_ESD}, |
1372 |
{J2K_MS_RED, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_red}, |
1374 |
{J2K_MS_RED, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_red, OPJ_TAG_RED}, |
1373 |
#endif /* USE_JPWL */ |
1375 |
#endif /* USE_JPWL */ |
1374 |
/* <<UniPG */ |
1376 |
/* <<UniPG */ |
1375 |
{0, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_unk} |
1377 |
{0, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_unk, -1} |
1376 |
}; |
1378 |
}; |
1377 |
|
1379 |
|
1378 |
static void j2k_read_unk(opj_j2k_t *j2k) { |
1380 |
static void j2k_read_unk(opj_j2k_t *j2k) { |
Lines 1522-1527
Link Here
|
1522 |
opj_cp_t *cp = (opj_cp_t*)opj_malloc(sizeof(opj_cp_t)); |
1524 |
opj_cp_t *cp = (opj_cp_t*)opj_malloc(sizeof(opj_cp_t)); |
1523 |
cp->reduce = parameters->cp_reduce; |
1525 |
cp->reduce = parameters->cp_reduce; |
1524 |
cp->layer = parameters->cp_layer; |
1526 |
cp->layer = parameters->cp_layer; |
|
|
1527 |
cp->limit_tags = parameters->cp_limit_tags; |
1525 |
/* UniPG>> */ |
1528 |
/* UniPG>> */ |
1526 |
#ifdef USE_JPWL |
1529 |
#ifdef USE_JPWL |
1527 |
cp->correct = parameters->jpwl_correct; |
1530 |
cp->correct = parameters->jpwl_correct; |
Lines 1599-1604
Link Here
|
1599 |
opj_event_msg(cinfo, EVT_ERROR, "%.8x: unexpected marker %x\n", cio_tell(cio) - 2, id); |
1602 |
opj_event_msg(cinfo, EVT_ERROR, "%.8x: unexpected marker %x\n", cio_tell(cio) - 2, id); |
1600 |
return 0; |
1603 |
return 0; |
1601 |
} |
1604 |
} |
|
|
1605 |
/* If a partial decode is requested, stop if the current tag |
1606 |
* isn't in the list. |
1607 |
*/ |
1608 |
if (j2k->cp->limit_tags && !(j2k->cp->limit_tags & e->limit_tag)) { |
1609 |
return image; |
1610 |
} |
1602 |
if (e->handler) { |
1611 |
if (e->handler) { |
1603 |
(*e->handler)(j2k); |
1612 |
(*e->handler)(j2k); |
1604 |
} |
1613 |
} |