Example #1
0
/*
void j2k_write_coc(int compno) {
    j2k_tcp_t *tcp;
    int lenp, len;
    log_print(LOG_TRACE, "%.8x: COC\n", cio_tell());
    cio_write(J2K_MS_COC, 2);
    lenp=cio_tell();
    cio_skip(2);
    tcp=&j2k_cp->tcps[j2k_curtileno];
    cio_write(compno, j2k_img->numcomps<=256?1:2);
    cio_write(tcp->tccps[compno].csty, 1);
    j2k_write_cox(compno);
    len=cio_tell()-lenp;
    cio_seek(lenp);
    cio_write(len, 2);
    cio_seek(lenp+len);
}
*/
void j2k_read_coc() {
    int len, compno;
    j2k_tcp_t *tcp;
//    log_print(LOG_TRACE, "%.8x: COC\n", cio_tell()-2);
    tcp=j2k_state==J2K_STATE_TPH?&j2k_cp->tcps[j2k_curtileno]:&j2k_default_tcp;
    len=cio_read(2);
    compno=cio_read(j2k_img->numcomps<=256?1:2);
    tcp->tccps[compno].csty=cio_read(1);
    j2k_read_cox(compno);
}
Example #2
0
void j2k_read_coc()
{
  int len, compno;
  j2k_tcp_t *tcp;

  tcp =
    j2k_state ==
    J2K_STATE_TPH ? &j2k_cp->tcps[j2k_curtileno] : &j2k_default_tcp;
  len = cio_read(2);		/* Lcoc */
  compno = cio_read(j2k_img->numcomps <= 256 ? 1 : 2);	/* Ccoc */
  tcp->tccps[compno].csty = cio_read(1);	/* Scoc */
  j2k_read_cox(compno);
}
Example #3
0
void j2k_read_coc() {
    int len, compno;
    j2k_tcp_t *tcp;
    info_tile_t *tile;
    info_marker_t *tmp;

    tcp = j2k_state == J2K_STATE_TPH ? &j2k_cp->tcps[j2k_curtileno] : &j2k_default_tcp;
    len = cio_read(2);
    
    /* <INDEX> [MHIX BOX] */
    if (j2k_state == J2K_STATE_MH)
      {
	if (!img.marker_mul.num_COC)
	  img.marker_mul.COC = (info_marker_t*)malloc(img.marker_mul.CzCOC * sizeof(info_marker_t));
	if (img.marker_mul.num_COC >= img.marker_mul.CzCOC)
	  {
	    tmp = (info_marker_t*)malloc((INCREMENT + img.marker_mul.CzCOC) * sizeof(info_marker_t));
	    memcpy(tmp,img.marker_mul.COC,img.marker_mul.CzCOC);
	    img.marker_mul.CzCOC += INCREMENT;
	    free(img.marker_mul.COC);
	    img.marker_mul.COC = tmp;
	  }
	img.marker_mul.COC[img.marker_mul.num_COC].type = J2K_MS_COC;
	img.marker_mul.COC[img.marker_mul.num_COC].start_pos = cio_tell()-2;
	img.marker_mul.COC[img.marker_mul.num_COC].len = len;
	img.marker_mul.num_COC++;
      } else
	{
	  tile = &img.tile[j2k_curtileno];
	  if (!tile->marker_mul.num_COC)
	    tile->marker_mul.COC = (info_marker_t*)malloc(tile->marker_mul.CzCOC * sizeof(info_marker_t));
	  if (tile->marker_mul.num_COC >= tile->marker_mul.CzCOC)
	    {
	      tmp = (info_marker_t*)malloc((INCREMENT + tile->marker_mul.CzCOC) * sizeof(info_marker_t));
	      memcpy(tmp,tile->marker_mul.COC,tile->marker_mul.CzCOC);
	      tile->marker_mul.CzCOC += INCREMENT;
	      free(tile->marker_mul.COC);
	      tile->marker_mul.COC = tmp;
	    }
	  tile->marker_mul.COC[tile->marker_mul.num_COC].type = J2K_MS_COC;
	  tile->marker_mul.COC[tile->marker_mul.num_COC].start_pos = cio_tell() - 2;
	  tile->marker_mul.COC[tile->marker_mul.num_COC].len = len;
	  tile->marker_mul.num_COC++;
	}
    /* </INDEX> [MHIX BOX] */
    
    compno =cio_read(j2k_img->numcomps <= 256 ? 1 : 2);

    tcp->tccps[compno].csty = cio_read(1);
    j2k_read_cox(compno);
}
Example #4
0
/*
void j2k_write_cod() {
    j2k_tcp_t *tcp;
    int lenp, len;
    log_print(LOG_TRACE, "%.8x: COD\n", cio_tell());
    cio_write(J2K_MS_COD, 2);
    lenp=cio_tell();
    cio_skip(2);
    tcp=&j2k_cp->tcps[j2k_curtileno];
    cio_write(tcp->csty, 1);
    cio_write(tcp->prg, 1);
    cio_write(tcp->numlayers, 2);
    cio_write(tcp->mct, 1);
    j2k_write_cox(0);
    len=cio_tell()-lenp;
    cio_seek(lenp);
    cio_write(len, 2);
    cio_seek(lenp+len);
}
*/
void j2k_read_cod() {
    int len, i, pos;
    j2k_tcp_t *tcp;
//    log_print(LOG_TRACE, "%.8x: COD\n", cio_tell()-2);
    tcp=j2k_state==J2K_STATE_TPH?&j2k_cp->tcps[j2k_curtileno]:&j2k_default_tcp;
    len=cio_read(2);
    tcp->csty=cio_read(1);
    tcp->prg=cio_read(1);
    tcp->numlayers=cio_read(2);
    tcp->mct=cio_read(1);
    pos=cio_tell();
    for (i=0; i<j2k_img->numcomps; i++) {
        tcp->tccps[i].csty=tcp->csty&J2K_CP_CSTY_PRT;
        cio_seek(pos);
        j2k_read_cox(i);
    }
}
Example #5
0
void j2k_read_cod() {
    int len, i, pos;
    j2k_tcp_t *tcp;
    info_tile_t *tile;

    tcp = j2k_state == J2K_STATE_TPH ? &j2k_cp->tcps[j2k_curtileno] : &j2k_default_tcp;
    len = cio_read(2);

    /* <INDEX> [MHIX BOX] */
    if (j2k_state == J2K_STATE_MH)
      {
	img.marker[img.num_marker].type = J2K_MS_SIZ;
	img.marker[img.num_marker].start_pos = cio_tell()-2;
	img.marker[img.num_marker].len = len;
	img.num_marker++;
      }
    else
      {
	tile = &img.tile[j2k_curtileno];
	tile->marker[tile->num_marker].type = J2K_MS_SIZ;
	tile->marker[tile->num_marker].start_pos = cio_tell()-2;
	tile->marker[tile->num_marker].len = len;
	tile->num_marker++;
  }
    /* </INDEX> [MHIX BOX] */
    
    tcp->csty = cio_read(1);
    tcp->prg = cio_read(1);
    tcp->numlayers = cio_read(2);
    tcp->mct = cio_read(1);

    pos = cio_tell();
    for (i = 0; i < j2k_img->numcomps; i++) {
        tcp->tccps[i].csty = tcp->csty&J2K_CP_CSTY_PRT;
        cio_seek(pos);
        j2k_read_cox(i);
    }
    
    /* <INDEX> */
    img.Prog = tcp->prg;
    img.Layer = tcp->numlayers;
    /* </INDEX> */
}
Example #6
0
void j2k_read_cod()
{
  int len, i, pos;
  j2k_tcp_t *tcp;

  tcp =
    j2k_state ==
    J2K_STATE_TPH ? &j2k_cp->tcps[j2k_curtileno] : &j2k_default_tcp;
  len = cio_read(2);		/* Lcod */
  tcp->csty = cio_read(1);	/* Scod */
  tcp->prg = cio_read(1);	/* SGcod (A) */
  tcp->numlayers = cio_read(2);	/* SGcod (B) */
  tcp->mct = cio_read(1);	/* SGcod (C) */

  pos = cio_tell();
  for (i = 0; i < j2k_img->numcomps; i++) {
    tcp->tccps[i].csty = tcp->csty & J2K_CP_CSTY_PRT;
    cio_seek(pos);
    j2k_read_cox(i);
  }
}