Bug fixed by Sylvain Munaut. Change in the reading of the POC marker. Since COD/COC can be anywhere in the header, the decoder cannot always know while decoding the POC marker the value of numlayers and numresolution.
This commit is contained in:
		| @@ -1031,8 +1031,8 @@ static void j2k_read_poc(opj_j2k_t *j2k) { | |||||||
| 		poc = &tcp->pocs[i]; | 		poc = &tcp->pocs[i]; | ||||||
| 		poc->resno0 = cio_read(cio, 1);	/* RSpoc_i */ | 		poc->resno0 = cio_read(cio, 1);	/* RSpoc_i */ | ||||||
| 		poc->compno0 = cio_read(cio, numcomps <= 256 ? 1 : 2);	/* CSpoc_i */ | 		poc->compno0 = cio_read(cio, numcomps <= 256 ? 1 : 2);	/* CSpoc_i */ | ||||||
| 		poc->layno1 = int_min(cio_read(cio, 2), (unsigned int) tcp->numlayers);	/* LYEpoc_i */ | 		poc->layno1 = cio_read(cio, 2);    /* LYEpoc_i */ | ||||||
| 		poc->resno1 = int_min(cio_read(cio, 1), (unsigned int) tccp->numresolutions);	/* REpoc_i */ | 		poc->resno1 = cio_read(cio, 1);    /* REpoc_i */ | ||||||
| 		poc->compno1 = int_min( | 		poc->compno1 = int_min( | ||||||
| 			cio_read(cio, numcomps <= 256 ? 1 : 2), (unsigned int) numcomps);	/* CEpoc_i */ | 			cio_read(cio, numcomps <= 256 ? 1 : 2), (unsigned int) numcomps);	/* CEpoc_i */ | ||||||
| 		poc->prg = (OPJ_PROG_ORDER)cio_read(cio, 1);	/* Ppoc_i */ | 		poc->prg = (OPJ_PROG_ORDER)cio_read(cio, 1);	/* Ppoc_i */ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Francois-Olivier Devaux
					Francois-Olivier Devaux