[trunk] WIP: add basis for a new output management of the codestream information...
[openjpeg.git] / applications / codec / index.c
index 2879f47f32d5e2fa246f80d007328407489f6527..27a40740a285b13f27e69590087a1ddc6b53b2bb 100644 (file)
@@ -392,459 +392,4 @@ int write_index_file(opj_codestream_info_t *cstr_info, char *index) {
        return 0;\r
 }\r
 \r
-/* ------------------------------------------------------------------------------------ */\r
-\r
-/**\r
-Write a structured index to a file\r
-@param cstr_info Codestream information\r
-@param index Index filename\r
-@return Returns 0 if successful, returns 1 otherwise\r
-*/\r
-int write_index_file_v2(FILE* stream, opj_codestream_info_t *cstr_info) {\r
-       int tileno, compno, layno, resno, precno, pack_nb, x, y;\r
-       double total_disto = 0;\r
-/* UniPG>> */\r
-       int tilepartno;\r
-       char disto_on, numpix_on;\r
-\r
-#ifdef USE_JPWL\r
-       if (!strcmp(index, JPWL_PRIVATEINDEX_NAME))\r
-               return EXIT_SUCCESS;\r
-#endif /* USE_JPWL */\r
-/* <<UniPG */\r
-\r
-       if (!cstr_info)\r
-               return EXIT_FAILURE;\r
-\r
-       if (!stream)\r
-               return EXIT_FAILURE;\r
-\r
-       if (cstr_info->tile[0].distotile)\r
-               disto_on = 1;\r
-       else\r
-               disto_on = 0;\r
-\r
-       if (cstr_info->tile[0].numpix)\r
-               numpix_on = 1;\r
-       else\r
-               numpix_on = 0;\r
-\r
-       fprintf(stream, "%d %d\n", cstr_info->image_w, cstr_info->image_h);\r
-       fprintf(stream, "%d\n", cstr_info->prog);\r
-       fprintf(stream, "%d %d\n", cstr_info->tile_x, cstr_info->tile_y);\r
-       fprintf(stream, "%d %d\n", cstr_info->tw, cstr_info->th);\r
-       fprintf(stream, "%d\n", cstr_info->numcomps);\r
-       fprintf(stream, "%d\n", cstr_info->numlayers);\r
-       fprintf(stream, "%d\n", cstr_info->numdecompos[0]); /* based on component 0 */\r
-\r
-       for (resno = cstr_info->numdecompos[0]; resno >= 0; resno--) {\r
-               fprintf(stream, "[%d,%d] ",\r
-                       (1 << cstr_info->tile[0].pdx[resno]), (1 << cstr_info->tile[0].pdx[resno]));    /* based on tile 0 and component 0 */\r
-       }\r
-\r
-       fprintf(stream, "\n");\r
-/* UniPG>> */\r
-       fprintf(stream, "%d\n", cstr_info->main_head_start);\r
-/* <<UniPG */\r
-       fprintf(stream, "%d\n", cstr_info->main_head_end);\r
-       fprintf(stream, "%d\n", cstr_info->codestream_size);\r
-\r
-       fprintf(stream, "\nINFO ON TILES\n");\r
-       fprintf(stream, "tileno start_pos  end_hd  end_tile   nbparts");\r
-       if (disto_on)\r
-               fprintf(stream,"         disto");\r
-       if (numpix_on)\r
-               fprintf(stream,"     nbpix");\r
-       if (disto_on && numpix_on)\r
-               fprintf(stream,"  disto/nbpix");\r
-       fprintf(stream, "\n");\r
-\r
-       for (tileno = 0; tileno < cstr_info->tw * cstr_info->th; tileno++) {\r
-               fprintf(stream, "%4d %9d %9d %9d %9d",\r
-                       cstr_info->tile[tileno].tileno,\r
-                       cstr_info->tile[tileno].start_pos,\r
-                       cstr_info->tile[tileno].end_header,\r
-                       cstr_info->tile[tileno].end_pos,\r
-                       cstr_info->tile[tileno].num_tps);\r
-               if (disto_on)\r
-                       fprintf(stream," %9e", cstr_info->tile[tileno].distotile);\r
-               if (numpix_on)\r
-                       fprintf(stream," %9d", cstr_info->tile[tileno].numpix);\r
-               if (disto_on && numpix_on)\r
-                       fprintf(stream," %9e", cstr_info->tile[tileno].distotile / cstr_info->tile[tileno].numpix);\r
-               fprintf(stream, "\n");\r
-               }\r
-\r
-       for (tileno = 0; tileno < cstr_info->tw * cstr_info->th; tileno++) {\r
-               int start_pos, end_ph_pos, end_pos;\r
-               double disto = 0;\r
-               int max_numdecompos = 0;\r
-               pack_nb = 0;\r
-\r
-               for (compno = 0; compno < cstr_info->numcomps; compno++) {\r
-                       if (max_numdecompos < cstr_info->numdecompos[compno])\r
-                               max_numdecompos = cstr_info->numdecompos[compno];\r
-               }\r
-\r
-               fprintf(stream, "\nTILE %d DETAILS\n", tileno);\r
-               fprintf(stream, "part_nb tileno  start_pack num_packs  start_pos end_tph_pos   end_pos\n");\r
-               for (tilepartno = 0; tilepartno < cstr_info->tile[tileno].num_tps; tilepartno++)\r
-                       fprintf(stream, "%4d %9d   %9d %9d  %9d %11d %9d\n",\r
-                               tilepartno, tileno,\r
-                               cstr_info->tile[tileno].tp[tilepartno].tp_start_pack,\r
-                               cstr_info->tile[tileno].tp[tilepartno].tp_numpacks,\r
-                               cstr_info->tile[tileno].tp[tilepartno].tp_start_pos,\r
-                               cstr_info->tile[tileno].tp[tilepartno].tp_end_header,\r
-                               cstr_info->tile[tileno].tp[tilepartno].tp_end_pos\r
-                               );\r
-\r
-               if (cstr_info->prog == LRCP) {  /* LRCP */\r
-                       fprintf(stream, "LRCP\npack_nb tileno layno resno compno precno start_pos end_ph_pos end_pos");\r
-                       if (disto_on)\r
-                               fprintf(stream, " disto");\r
-                       fprintf(stream,"\n");\r
-\r
-                       for (layno = 0; layno < cstr_info->numlayers; layno++) {\r
-                               for (resno = 0; resno < max_numdecompos + 1; resno++) {\r
-                                       for (compno = 0; compno < cstr_info->numcomps; compno++) {\r
-                                               int prec_max;\r
-                                               if (resno > cstr_info->numdecompos[compno])\r
-                                                       break;\r
-                                               prec_max = cstr_info->tile[tileno].pw[resno] * cstr_info->tile[tileno].ph[resno];\r
-                                               for (precno = 0; precno < prec_max; precno++) {\r
-                                                       start_pos = cstr_info->tile[tileno].packet[pack_nb].start_pos;\r
-                                                       end_ph_pos = cstr_info->tile[tileno].packet[pack_nb].end_ph_pos;\r
-                                                       end_pos = cstr_info->tile[tileno].packet[pack_nb].end_pos;\r
-                                                       disto = cstr_info->tile[tileno].packet[pack_nb].disto;\r
-                                                       fprintf(stream, "%4d %6d %7d %5d %6d  %6d    %6d     %6d %7d",\r
-                                                               pack_nb, tileno, layno, resno, compno, precno, start_pos, end_ph_pos, end_pos);\r
-                                                       if (disto_on)\r
-                                                               fprintf(stream, " %8e", disto);\r
-                                                       fprintf(stream, "\n");\r
-                                                       total_disto += disto;\r
-                                                       pack_nb++;\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-               } /* LRCP */\r
-\r
-               else if (cstr_info->prog == RLCP) {     /* RLCP */\r
-                       fprintf(stream, "RLCP\npack_nb tileno resno layno compno precno start_pos end_ph_pos end_pos\n");\r
-                       if (disto_on)\r
-                               fprintf(stream, " disto");\r
-                       fprintf(stream,"\n");\r
-\r
-                       for (resno = 0; resno < max_numdecompos + 1; resno++) {\r
-                               for (layno = 0; layno < cstr_info->numlayers; layno++) {\r
-                                       for (compno = 0; compno < cstr_info->numcomps; compno++) {\r
-                                               int prec_max;\r
-                                               if (resno > cstr_info->numdecompos[compno])\r
-                                                       break;\r
-                                               prec_max = cstr_info->tile[tileno].pw[resno] * cstr_info->tile[tileno].ph[resno];\r
-                                               for (precno = 0; precno < prec_max; precno++) {\r
-                                                       start_pos = cstr_info->tile[tileno].packet[pack_nb].start_pos;\r
-                                                       end_ph_pos = cstr_info->tile[tileno].packet[pack_nb].end_ph_pos;\r
-                                                       end_pos = cstr_info->tile[tileno].packet[pack_nb].end_pos;\r
-                                                       disto = cstr_info->tile[tileno].packet[pack_nb].disto;\r
-                                                       fprintf(stream, "%4d %6d %5d %7d %6d %6d %9d   %9d %7d",\r
-                                                               pack_nb, tileno, resno, layno, compno, precno, start_pos, end_ph_pos, end_pos);\r
-                                                       if (disto_on)\r
-                                                               fprintf(stream, " %8e", disto);\r
-                                                       fprintf(stream, "\n");\r
-                                                       total_disto += disto;\r
-                                                       pack_nb++;\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-               } /* RLCP */\r
-\r
-               else if (cstr_info->prog == RPCL) {     /* RPCL */\r
-\r
-                       fprintf(stream, "RPCL\npack_nb tileno resno precno compno layno start_pos end_ph_pos end_pos");\r
-                       if (disto_on)\r
-                               fprintf(stream, " disto");\r
-                       fprintf(stream,"\n");\r
-\r
-                       for (resno = 0; resno < max_numdecompos + 1; resno++) {\r
-                               int numprec = cstr_info->tile[tileno].pw[resno] * cstr_info->tile[tileno].ph[resno];\r
-                               for (precno = 0; precno < numprec; precno++) {\r
-                                       /* I suppose components have same XRsiz, YRsiz */\r
-                                       int x0 = cstr_info->tile_Ox + tileno - (int)floor((float)tileno/(float)cstr_info->tw ) * cstr_info->tw * cstr_info->tile_x;\r
-                                       int y0 = cstr_info->tile_Ox + (int)floor( (float)tileno/(float)cstr_info->tw ) * cstr_info->tile_y;\r
-                                       int x1 = x0 + cstr_info->tile_x;\r
-                                       int y1 = y0 + cstr_info->tile_y;\r
-                                       for (compno = 0; compno < cstr_info->numcomps; compno++) {\r
-                                               int pcnx = cstr_info->tile[tileno].pw[resno];\r
-                                               int pcx = (int) pow( 2, cstr_info->tile[tileno].pdx[resno] + cstr_info->numdecompos[compno] - resno );\r
-                                               int pcy = (int) pow( 2, cstr_info->tile[tileno].pdy[resno] + cstr_info->numdecompos[compno] - resno );\r
-                                               int precno_x = precno - (int) floor( (float)precno/(float)pcnx ) * pcnx;\r
-                                               int precno_y = (int) floor( (float)precno/(float)pcnx );\r
-                                               if (resno > cstr_info->numdecompos[compno])\r
-                                                       break;\r
-                                               for(y = y0; y < y1; y++) {\r
-                                                       if (precno_y*pcy == y ) {\r
-                                                               for (x = x0; x < x1; x++) {\r
-                                                                       if (precno_x*pcx == x ) {\r
-                                                                               for (layno = 0; layno < cstr_info->numlayers; layno++) {\r
-                                                                                       start_pos = cstr_info->tile[tileno].packet[pack_nb].start_pos;\r
-                                                                                       end_ph_pos = cstr_info->tile[tileno].packet[pack_nb].end_ph_pos;\r
-                                                                                       end_pos = cstr_info->tile[tileno].packet[pack_nb].end_pos;\r
-                                                                                       disto = cstr_info->tile[tileno].packet[pack_nb].disto;\r
-                                                                                       fprintf(stream, "%4d %6d %5d %6d %6d %7d %9d   %9d %7d",\r
-                                                                                               pack_nb, tileno, resno, precno, compno, layno, start_pos, end_ph_pos, end_pos);\r
-                                                                                       if (disto_on)\r
-                                                                                               fprintf(stream, " %8e", disto);\r
-                                                                                       fprintf(stream, "\n");\r
-                                                                                       total_disto += disto;\r
-                                                                                       pack_nb++;\r
-                                                                               }\r
-                                                                       }\r
-                                                               }/* x = x0..x1 */\r
-                                                       }\r
-                                               }  /* y = y0..y1 */\r
-                                       } /* precno */\r
-                               } /* compno */\r
-                       } /* resno */\r
-               } /* RPCL */\r
-\r
-               else if (cstr_info->prog == PCRL) {     /* PCRL */\r
-                       /* I suppose components have same XRsiz, YRsiz */\r
-                       int x0 = cstr_info->tile_Ox + tileno - (int)floor( (float)tileno/(float)cstr_info->tw ) * cstr_info->tw * cstr_info->tile_x;\r
-                       int y0 = cstr_info->tile_Ox + (int)floor( (float)tileno/(float)cstr_info->tw ) * cstr_info->tile_y;\r
-                       int x1 = x0 + cstr_info->tile_x;\r
-                       int y1 = y0 + cstr_info->tile_y;\r
-\r
-                       // Count the maximum number of precincts\r
-                       int max_numprec = 0;\r
-                       for (resno = 0; resno < max_numdecompos + 1; resno++) {\r
-                               int numprec = cstr_info->tile[tileno].pw[resno] * cstr_info->tile[tileno].ph[resno];\r
-                               if (numprec > max_numprec)\r
-                                       max_numprec = numprec;\r
-                       }\r
-\r
-                       fprintf(stream, "PCRL\npack_nb tileno precno compno resno layno start_pos end_ph_pos end_pos");\r
-                       if (disto_on)\r
-                               fprintf(stream, " disto");\r
-                       fprintf(stream,"\n");\r
 \r
-                       for (precno = 0; precno < max_numprec; precno++) {\r
-                               for (compno = 0; compno < cstr_info->numcomps; compno++) {\r
-                                       for (resno = 0; resno < cstr_info->numdecompos[compno] + 1; resno++) {\r
-                                               int numprec = cstr_info->tile[tileno].pw[resno] * cstr_info->tile[tileno].ph[resno];\r
-                                               int pcnx = cstr_info->tile[tileno].pw[resno];\r
-                                               int pcx = (int) pow( 2, cstr_info->tile[tileno].pdx[resno] + cstr_info->numdecompos[compno] - resno );\r
-                                               int pcy = (int) pow( 2, cstr_info->tile[tileno].pdy[resno] + cstr_info->numdecompos[compno] - resno );\r
-                                               int precno_x = precno - (int) floor( (float)precno/(float)pcnx ) * pcnx;\r
-                                               int precno_y = (int) floor( (float)precno/(float)pcnx );\r
-                                               if (precno >= numprec)\r
-                                                       continue;\r
-                                               for(y = y0; y < y1; y++) {\r
-                                                       if (precno_y*pcy == y ) {\r
-                                                               for (x = x0; x < x1; x++) {\r
-                                                                       if (precno_x*pcx == x ) {\r
-                                                                               for (layno = 0; layno < cstr_info->numlayers; layno++) {\r
-                                                                                       start_pos = cstr_info->tile[tileno].packet[pack_nb].start_pos;\r
-                                                                                       end_ph_pos = cstr_info->tile[tileno].packet[pack_nb].end_ph_pos;\r
-                                                                                       end_pos = cstr_info->tile[tileno].packet[pack_nb].end_pos;\r
-                                                                                       disto = cstr_info->tile[tileno].packet[pack_nb].disto;\r
-                                                                                       fprintf(stream, "%4d %6d %6d %6d %5d %7d %9d   %9d %7d",\r
-                                                                                               pack_nb, tileno, precno, compno, resno, layno, start_pos, end_ph_pos, end_pos);\r
-                                                                                       if (disto_on)\r
-                                                                                               fprintf(stream, " %8e", disto);\r
-                                                                                       fprintf(stream, "\n");\r
-                                                                                       total_disto += disto;\r
-                                                                                       pack_nb++;\r
-                                                                               }\r
-                                                                       }\r
-                                                               }/* x = x0..x1 */\r
-                                                       }\r
-                                               }  /* y = y0..y1 */\r
-                                       } /* resno */\r
-                               } /* compno */\r
-                       } /* precno */\r
-               } /* PCRL */\r
-\r
-               else {  /* CPRL */\r
-                       // Count the maximum number of precincts\r
-                       int max_numprec = 0;\r
-                       for (resno = 0; resno < max_numdecompos + 1; resno++) {\r
-                               int numprec = cstr_info->tile[tileno].pw[resno] * cstr_info->tile[tileno].ph[resno];\r
-                               if (numprec > max_numprec)\r
-                                       max_numprec = numprec;\r
-                       }\r
-\r
-                       fprintf(stream, "CPRL\npack_nb tileno compno precno resno layno start_pos end_ph_pos end_pos");\r
-                       if (disto_on)\r
-                               fprintf(stream, " disto");\r
-                       fprintf(stream,"\n");\r
-\r
-                       for (compno = 0; compno < cstr_info->numcomps; compno++) {\r
-                               /* I suppose components have same XRsiz, YRsiz */\r
-                               int x0 = cstr_info->tile_Ox + tileno - (int)floor( (float)tileno/(float)cstr_info->tw ) * cstr_info->tw * cstr_info->tile_x;\r
-                               int y0 = cstr_info->tile_Ox + (int)floor( (float)tileno/(float)cstr_info->tw ) * cstr_info->tile_y;\r
-                               int x1 = x0 + cstr_info->tile_x;\r
-                               int y1 = y0 + cstr_info->tile_y;\r
-\r
-                               for (precno = 0; precno < max_numprec; precno++) {\r
-                                       for (resno = 0; resno < cstr_info->numdecompos[compno] + 1; resno++) {\r
-                                               int numprec = cstr_info->tile[tileno].pw[resno] * cstr_info->tile[tileno].ph[resno];\r
-                                               int pcnx = cstr_info->tile[tileno].pw[resno];\r
-                                               int pcx = (int) pow( 2, cstr_info->tile[tileno].pdx[resno] + cstr_info->numdecompos[compno] - resno );\r
-                                               int pcy = (int) pow( 2, cstr_info->tile[tileno].pdy[resno] + cstr_info->numdecompos[compno] - resno );\r
-                                               int precno_x = precno - (int) floor( (float)precno/(float)pcnx ) * pcnx;\r
-                                               int precno_y = (int) floor( (float)precno/(float)pcnx );\r
-                                               if (precno >= numprec)\r
-                                                       continue;\r
-\r
-                                               for(y = y0; y < y1; y++) {\r
-                                                       if (precno_y*pcy == y ) {\r
-                                                               for (x = x0; x < x1; x++) {\r
-                                                                       if (precno_x*pcx == x ) {\r
-                                                                               for (layno = 0; layno < cstr_info->numlayers; layno++) {\r
-                                                                                       start_pos = cstr_info->tile[tileno].packet[pack_nb].start_pos;\r
-                                                                                       end_ph_pos = cstr_info->tile[tileno].packet[pack_nb].end_ph_pos;\r
-                                                                                       end_pos = cstr_info->tile[tileno].packet[pack_nb].end_pos;\r
-                                                                                       disto = cstr_info->tile[tileno].packet[pack_nb].disto;\r
-                                                                                       fprintf(stream, "%4d %6d %6d %6d %5d %7d %9d   %9d %7d",\r
-                                                                                               pack_nb, tileno, compno, precno, resno, layno, start_pos, end_ph_pos, end_pos);\r
-                                                                                       if (disto_on)\r
-                                                                                               fprintf(stream, " %8e", disto);\r
-                                                                                       fprintf(stream, "\n");\r
-                                                                                       total_disto += disto;\r
-                                                                                       pack_nb++;\r
-                                                                               }\r
-                                                                       }\r
-                                                               }/* x = x0..x1 */\r
-                                                       }\r
-                                               } /* y = y0..y1 */\r
-                                       } /* resno */\r
-                               } /* precno */\r
-                       } /* compno */\r
-               } /* CPRL */\r
-       } /* tileno */\r
-\r
-       if (disto_on) {\r
-               fprintf(stream, "%8e\n", cstr_info->D_max); /* SE max */\r
-               fprintf(stream, "%.8e\n", total_disto); /* SE totale */\r
-       }\r
-/* UniPG>> */\r
-       /* print the markers' list */\r
-       if (cstr_info->marknum) {\r
-               fprintf(stream, "\nMARKER LIST\n");\r
-               fprintf(stream, "%d\n", cstr_info->marknum);\r
-               fprintf(stream, "type\tstart_pos    length\n");\r
-               for (x = 0; x < cstr_info->marknum; x++)\r
-                       fprintf(stream, "%X\t%9d %9d\n", cstr_info->marker[x].type, cstr_info->marker[x].pos, cstr_info->marker[x].len);\r
-       }\r
-/* <<UniPG */\r
-\r
-       return EXIT_SUCCESS;\r
-}\r
-\r
-/* ------------------------------------------------------------------------------------ */\r
-\r
-/**\r
-Dump the file info structure into a file\r
-@param stream          output stream\r
-@param file_info       informations read into the JPG2000 file\r
-@return Returns 0 if successful, returns 1 otherwise\r
-*/\r
-int dump_file_info(FILE* stream, opj_file_info_t *file_info)\r
-{\r
-       /* IMAGE HEADER */\r
-       if ( file_info->file_info_flag & OPJ_IMG_INFO ) {\r
-               opj_image_header_t img_header = file_info->img_info;\r
-               int compno;\r
-\r
-               fprintf(stream, "Image info {\n");\r
-               fprintf(stream, "\t x0=%d, y0=%d\n",img_header.x0, img_header.y0);\r
-               fprintf(stream, "\t x1=%d, y1=%d\n",img_header.x1, img_header.y1);\r
-               fprintf(stream, "\t numcomps=%d\n", img_header.numcomps);\r
-               for (compno = 0; compno < img_header.numcomps; compno++) {\r
-                       opj_image_comp_header_t comp = img_header.comps[compno];\r
-\r
-                       fprintf(stream, "\t component %d {\n", compno);\r
-                       fprintf(stream, "\t\t dx=%d, dy=%d\n", comp.dx, comp.dy);\r
-                       fprintf(stream, "\t\t prec=%d\n", comp.prec);\r
-                       fprintf(stream, "\t\t sgnd=%d\n", comp.sgnd);\r
-                       fprintf(stream, "\t}\n");\r
-               }\r
-               fprintf(stream, "}\n");\r
-       }\r
-\r
-       /* CODESTREAM INFO */\r
-       if ( file_info->file_info_flag & OPJ_J2K_INFO ) {\r
-               opj_codestream_info_v2_t cstr_info = file_info->codestream_info;\r
-               int tileno, compno, layno, bandno, resno, numbands;\r
-\r
-               fprintf(stream, "Codestream info {\n");\r
-               fprintf(stream, "\t tx0=%d, ty0=%d\n", cstr_info.tx0, cstr_info.ty0);\r
-               fprintf(stream, "\t tdx=%d, tdy=%d\n", cstr_info.tdx, cstr_info.tdy);\r
-               fprintf(stream, "\t tw=%d, th=%d\n", cstr_info.tw, cstr_info.th);\r
-\r
-               for (tileno = 0; tileno < cstr_info.tw * cstr_info.th; tileno++) {\r
-                       opj_tile_info_v2_t tile_info = cstr_info.tile[tileno];\r
-\r
-                       fprintf(stream, "\t tile %d {\n", tileno);\r
-                       fprintf(stream, "\t\t csty=%x\n", tile_info.csty);\r
-                       fprintf(stream, "\t\t prg=%d\n", tile_info.prg);\r
-                       fprintf(stream, "\t\t numlayers=%d\n", tile_info.numlayers);\r
-                       fprintf(stream, "\t\t mct=%d\n", tile_info.mct);\r
-                       fprintf(stream, "\t\t rates=");\r
-\r
-                       for (layno = 0; layno < tile_info.numlayers; layno++) {\r
-                               fprintf(stream, "%.1f ", tile_info.rates[layno]);\r
-                       }\r
-                       fprintf(stream, "\n");\r
-\r
-                       for (compno = 0; compno < cstr_info.numcomps; compno++) {\r
-                               opj_tccp_info_t tccp_info = tile_info.tccp_info[compno];\r
-\r
-                               fprintf(stream, "\t\t comp %d {\n", compno);\r
-                               fprintf(stream, "\t\t\t csty=%x\n", tccp_info.csty);\r
-                               fprintf(stream, "\t\t\t numresolutions=%d\n", tccp_info.numresolutions);\r
-                               fprintf(stream, "\t\t\t cblkw=%d\n", tccp_info.cblkw);\r
-                               fprintf(stream, "\t\t\t cblkh=%d\n", tccp_info.cblkh);\r
-                               fprintf(stream, "\t\t\t cblksty=%x\n", tccp_info.cblksty);\r
-                               fprintf(stream, "\t\t\t qmfbid=%d\n", tccp_info.qmfbid);\r
-                               fprintf(stream, "\t\t\t qntsty=%d\n", tccp_info.qntsty);\r
-                               fprintf(stream, "\t\t\t numgbits=%d\n", tccp_info.numgbits);\r
-                               fprintf(stream, "\t\t\t roishift=%d\n", tccp_info.roishift);\r
-\r
-#ifdef TODO_MSD\r
-                               fprintf(stream, "\t\t\t stepsizes=");\r
-                               numbands = tccp_info->qntsty == J2K_CCP_QNTSTY_SIQNT ? 1 : tccp_info->numresolutions * 3 - 2;\r
-                               for (bandno = 0; bandno < numbands; bandno++) {\r
-                                       fprintf(stream, "(%d,%d) ", tccp_info->stepsizes[bandno].mant,\r
-                                               tccp_info->stepsizes[bandno].expn);\r
-                               }\r
-                               fprintf(stream, "\n");\r
-\r
-                               if (tccp_info->csty & J2K_CCP_CSTY_PRT) {\r
-                                       fprintf(stream, "      prcw=");\r
-                                       for (resno = 0; resno < tccp_info->numresolutions; resno++) {\r
-                                               fprintf(stream, "%d ", tccp_info->prcw[resno]);\r
-                                       }\r
-                                       fprintf(stream, "\n");\r
-\r
-                                       fprintf(stream, "      prch=");\r
-                                       for (resno = 0; resno < tccp_info->numresolutions; resno++) {\r
-                                               fprintf(stream, "%d ", tccp_info->prch[resno]);\r
-                                       }\r
-                                       fprintf(stream, "\n");\r
-                               }\r
-#endif\r
-                               fprintf(stream, "\t\t\t }\n");\r
-                       } /*end of component*/\r
-                       fprintf(stream, "\t\t }\n");\r
-               } /*end of tile */\r
-               fprintf(stream, "\t }\n");\r
-       }\r
-\r
-       if ( file_info->file_info_flag & OPJ_JP2_INFO ) {\r
-               // not yet coded\r
-       }\r
-       return EXIT_SUCCESS;\r
-}\r