/* 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); }
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); }
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); }
/* 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); } }
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> */ }
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); } }