remove deprecated v1 style function j2k_read_siz
This commit is contained in:
parent
4c1cb388af
commit
5c303e2bb5
@ -422,12 +422,6 @@ static opj_bool j2k_write_siz_v2( opj_j2k_v2_t *p_j2k,
|
||||
struct opj_stream_private *p_stream,
|
||||
struct opj_event_mgr * p_manager );
|
||||
|
||||
/**
|
||||
Read the SIZ marker (image and tile size)
|
||||
@param j2k J2K handle
|
||||
*/
|
||||
static void j2k_read_siz(opj_j2k_t *j2k);
|
||||
|
||||
/**
|
||||
* Reads a SIZ marker (image and tile size)
|
||||
* @param p_header_data the data contained in the SIZ box.
|
||||
@ -2275,220 +2269,6 @@ opj_bool j2k_write_siz_v2( opj_j2k_v2_t *p_j2k,
|
||||
return OPJ_TRUE;
|
||||
}
|
||||
|
||||
static void j2k_read_siz(opj_j2k_t *j2k) {
|
||||
int len;
|
||||
OPJ_UINT32 i;
|
||||
|
||||
opj_cio_t *cio = j2k->cio;
|
||||
opj_image_t *image = j2k->image;
|
||||
opj_cp_t *cp = j2k->cp;
|
||||
|
||||
len = cio_read(cio, 2); /* Lsiz */
|
||||
cio_read(cio, 2); /* Rsiz (capabilities) */
|
||||
image->x1 = cio_read(cio, 4); /* Xsiz */
|
||||
image->y1 = cio_read(cio, 4); /* Ysiz */
|
||||
image->x0 = cio_read(cio, 4); /* X0siz */
|
||||
image->y0 = cio_read(cio, 4); /* Y0siz */
|
||||
cp->tdx = cio_read(cio, 4); /* XTsiz */
|
||||
cp->tdy = cio_read(cio, 4); /* YTsiz */
|
||||
cp->tx0 = cio_read(cio, 4); /* XT0siz */
|
||||
cp->ty0 = cio_read(cio, 4); /* YT0siz */
|
||||
|
||||
/* the following code triggers: */
|
||||
/* warning: comparison of unsigned expression < 0 is always false */
|
||||
#if 0
|
||||
if ((image->x0<0)||(image->x1<0)||(image->y0<0)||(image->y1<0)) {
|
||||
opj_event_msg(j2k->cinfo, EVT_ERROR,
|
||||
"%s: invalid image size (x0:%d, x1:%d, y0:%d, y1:%d)\n",
|
||||
image->x0,image->x1,image->y0,image->y1);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
image->numcomps = cio_read(cio, 2); /* Csiz */
|
||||
|
||||
#ifdef USE_JPWL
|
||||
if (j2k->cp->correct) {
|
||||
/* if JPWL is on, we check whether TX errors have damaged
|
||||
too much the SIZ parameters */
|
||||
if (!(image->x1 * image->y1)) {
|
||||
opj_event_msg(j2k->cinfo, EVT_ERROR,
|
||||
"JPWL: bad image size (%d x %d)\n",
|
||||
image->x1, image->y1);
|
||||
if (!JPWL_ASSUME || JPWL_ASSUME) {
|
||||
opj_event_msg(j2k->cinfo, EVT_ERROR, "JPWL: giving up\n");
|
||||
return;
|
||||
}
|
||||
}
|
||||
assert( len >= 38 );
|
||||
if (image->numcomps != (OPJ_UINT32)((len - 38) / 3)) {
|
||||
opj_event_msg(j2k->cinfo, JPWL_ASSUME ? EVT_WARNING : EVT_ERROR,
|
||||
"JPWL: Csiz is %d => space in SIZ only for %d comps.!!!\n",
|
||||
image->numcomps, ((len - 38) / 3));
|
||||
if (!JPWL_ASSUME) {
|
||||
opj_event_msg(j2k->cinfo, EVT_ERROR, "JPWL: giving up\n");
|
||||
return;
|
||||
}
|
||||
/* we try to correct */
|
||||
opj_event_msg(j2k->cinfo, EVT_WARNING, "- trying to adjust this\n");
|
||||
if (image->numcomps < (OPJ_UINT32)((len - 38) / 3)) {
|
||||
len = 38 + 3 * image->numcomps;
|
||||
opj_event_msg(j2k->cinfo, EVT_WARNING, "- setting Lsiz to %d => HYPOTHESIS!!!\n",
|
||||
len);
|
||||
} else {
|
||||
image->numcomps = ((len - 38) / 3);
|
||||
opj_event_msg(j2k->cinfo, EVT_WARNING, "- setting Csiz to %d => HYPOTHESIS!!!\n",
|
||||
image->numcomps);
|
||||
}
|
||||
}
|
||||
|
||||
/* update components number in the jpwl_exp_comps filed */
|
||||
cp->exp_comps = image->numcomps;
|
||||
}
|
||||
#endif /* USE_JPWL */
|
||||
|
||||
image->comps = (opj_image_comp_t*) opj_calloc(image->numcomps, sizeof(opj_image_comp_t));
|
||||
for (i = 0; i < image->numcomps; i++) {
|
||||
int tmp, w, h;
|
||||
tmp = cio_read(cio, 1); /* Ssiz_i */
|
||||
image->comps[i].prec = (tmp & 0x7f) + 1;
|
||||
image->comps[i].sgnd = tmp >> 7;
|
||||
image->comps[i].dx = cio_read(cio, 1); /* XRsiz_i */
|
||||
image->comps[i].dy = cio_read(cio, 1); /* YRsiz_i */
|
||||
|
||||
#ifdef USE_JPWL
|
||||
if (j2k->cp->correct) {
|
||||
/* if JPWL is on, we check whether TX errors have damaged
|
||||
too much the SIZ parameters, again */
|
||||
if (!(image->comps[i].dx * image->comps[i].dy)) {
|
||||
opj_event_msg(j2k->cinfo, JPWL_ASSUME ? EVT_WARNING : EVT_ERROR,
|
||||
"JPWL: bad XRsiz_%d/YRsiz_%d (%d x %d)\n",
|
||||
i, i, image->comps[i].dx, image->comps[i].dy);
|
||||
if (!JPWL_ASSUME) {
|
||||
opj_event_msg(j2k->cinfo, EVT_ERROR, "JPWL: giving up\n");
|
||||
return;
|
||||
}
|
||||
/* we try to correct */
|
||||
opj_event_msg(j2k->cinfo, EVT_WARNING, "- trying to adjust them\n");
|
||||
if (!image->comps[i].dx) {
|
||||
image->comps[i].dx = 1;
|
||||
opj_event_msg(j2k->cinfo, EVT_WARNING, "- setting XRsiz_%d to %d => HYPOTHESIS!!!\n",
|
||||
i, image->comps[i].dx);
|
||||
}
|
||||
if (!image->comps[i].dy) {
|
||||
image->comps[i].dy = 1;
|
||||
opj_event_msg(j2k->cinfo, EVT_WARNING, "- setting YRsiz_%d to %d => HYPOTHESIS!!!\n",
|
||||
i, image->comps[i].dy);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
#endif /* USE_JPWL */
|
||||
|
||||
/* TODO: unused ? */
|
||||
w = int_ceildiv(image->x1 - image->x0, image->comps[i].dx);
|
||||
h = int_ceildiv(image->y1 - image->y0, image->comps[i].dy);
|
||||
|
||||
image->comps[i].resno_decoded = 0; /* number of resolution decoded */
|
||||
image->comps[i].factor = cp->reduce; /* reducing factor per component */
|
||||
}
|
||||
|
||||
cp->tw = int_ceildiv(image->x1 - cp->tx0, cp->tdx);
|
||||
cp->th = int_ceildiv(image->y1 - cp->ty0, cp->tdy);
|
||||
|
||||
#ifdef USE_JPWL
|
||||
if (j2k->cp->correct) {
|
||||
/* if JPWL is on, we check whether TX errors have damaged
|
||||
too much the SIZ parameters */
|
||||
if ((cp->tw < 1) || (cp->th < 1) || (cp->tw > cp->max_tiles) || (cp->th > cp->max_tiles)) {
|
||||
opj_event_msg(j2k->cinfo, JPWL_ASSUME ? EVT_WARNING : EVT_ERROR,
|
||||
"JPWL: bad number of tiles (%d x %d)\n",
|
||||
cp->tw, cp->th);
|
||||
if (!JPWL_ASSUME) {
|
||||
opj_event_msg(j2k->cinfo, EVT_ERROR, "JPWL: giving up\n");
|
||||
return;
|
||||
}
|
||||
/* we try to correct */
|
||||
opj_event_msg(j2k->cinfo, EVT_WARNING, "- trying to adjust them\n");
|
||||
if (cp->tw < 1) {
|
||||
cp->tw= 1;
|
||||
opj_event_msg(j2k->cinfo, EVT_WARNING, "- setting %d tiles in x => HYPOTHESIS!!!\n",
|
||||
cp->tw);
|
||||
}
|
||||
if (cp->tw > cp->max_tiles) {
|
||||
cp->tw= 1;
|
||||
opj_event_msg(j2k->cinfo, EVT_WARNING, "- too large x, increase expectance of %d\n"
|
||||
"- setting %d tiles in x => HYPOTHESIS!!!\n",
|
||||
cp->max_tiles, cp->tw);
|
||||
}
|
||||
if (cp->th < 1) {
|
||||
cp->th= 1;
|
||||
opj_event_msg(j2k->cinfo, EVT_WARNING, "- setting %d tiles in y => HYPOTHESIS!!!\n",
|
||||
cp->th);
|
||||
}
|
||||
if (cp->th > cp->max_tiles) {
|
||||
cp->th= 1;
|
||||
opj_event_msg(j2k->cinfo, EVT_WARNING, "- too large y, increase expectance of %d to continue\n",
|
||||
"- setting %d tiles in y => HYPOTHESIS!!!\n",
|
||||
cp->max_tiles, cp->th);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif /* USE_JPWL */
|
||||
|
||||
cp->tcps = (opj_tcp_t*) opj_calloc(cp->tw * cp->th, sizeof(opj_tcp_t));
|
||||
cp->tileno = (int*) opj_malloc(cp->tw * cp->th * sizeof(int));
|
||||
cp->tileno_size = 0;
|
||||
|
||||
#ifdef USE_JPWL
|
||||
if (j2k->cp->correct) {
|
||||
if (!cp->tcps) {
|
||||
opj_event_msg(j2k->cinfo, JPWL_ASSUME ? EVT_WARNING : EVT_ERROR,
|
||||
"JPWL: could not alloc tcps field of cp\n");
|
||||
if (!JPWL_ASSUME || JPWL_ASSUME) {
|
||||
opj_event_msg(j2k->cinfo, EVT_ERROR, "JPWL: giving up\n");
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif /* USE_JPWL */
|
||||
|
||||
for (i = 0; i < (OPJ_UINT32)cp->tw * cp->th; i++) {
|
||||
cp->tcps[i].POC = 0;
|
||||
cp->tcps[i].numpocs = 0;
|
||||
cp->tcps[i].first = 1;
|
||||
}
|
||||
|
||||
/* Initialization for PPM marker */
|
||||
cp->ppm = 0;
|
||||
cp->ppm_data = NULL;
|
||||
cp->ppm_data_first = NULL;
|
||||
cp->ppm_previous = 0;
|
||||
cp->ppm_store = 0;
|
||||
|
||||
j2k->default_tcp->tccps = (opj_tccp_t*) opj_calloc(image->numcomps, sizeof(opj_tccp_t));
|
||||
for (i = 0; i < (OPJ_UINT32)cp->tw * cp->th; i++) {
|
||||
cp->tcps[i].tccps = (opj_tccp_t*) opj_malloc(image->numcomps * sizeof(opj_tccp_t));
|
||||
}
|
||||
j2k->tile_data = (unsigned char**) opj_calloc(cp->tw * cp->th, sizeof(unsigned char*));
|
||||
j2k->tile_len = (int*) opj_calloc(cp->tw * cp->th, sizeof(int));
|
||||
j2k->state = J2K_STATE_MH;
|
||||
|
||||
/* Index */
|
||||
if (j2k->cstr_info) {
|
||||
opj_codestream_info_t *cstr_info = j2k->cstr_info;
|
||||
cstr_info->image_w = image->x1 - image->x0;
|
||||
cstr_info->image_h = image->y1 - image->y0;
|
||||
cstr_info->numcomps = image->numcomps;
|
||||
cstr_info->tw = cp->tw;
|
||||
cstr_info->th = cp->th;
|
||||
cstr_info->tile_x = cp->tdx;
|
||||
cstr_info->tile_y = cp->tdy;
|
||||
cstr_info->tile_Ox = cp->tx0;
|
||||
cstr_info->tile_Oy = cp->ty0;
|
||||
cstr_info->tile = (opj_tile_info_t*) opj_calloc(cp->tw * cp->th, sizeof(opj_tile_info_t));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@ -6393,7 +6173,7 @@ opj_dec_mstabent_t j2k_dec_mstab[] = {
|
||||
/*{J2K_MS_SOT, J2K_STATE_MH | J2K_STATE_TPHSOT, j2k_read_sot},*/
|
||||
/*{J2K_MS_SOD, J2K_STATE_TPH, j2k_read_sod},*/
|
||||
{J2K_MS_EOC, J2K_STATE_TPHSOT, j2k_read_eoc},
|
||||
{J2K_MS_SIZ, J2K_STATE_MHSIZ, j2k_read_siz},
|
||||
/*{J2K_MS_SIZ, J2K_STATE_MHSIZ, j2k_read_siz},*/
|
||||
{J2K_MS_COD, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_cod},
|
||||
{J2K_MS_COC, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_coc},
|
||||
{J2K_MS_RGN, J2K_STATE_MH | J2K_STATE_TPH, j2k_read_rgn},
|
||||
|
Loading…
Reference in New Issue
Block a user