public override System.String ToString()
{
System.String str = "\n --- COD (" + lcod + " bytes) ---\n";
str += " Coding style : ";
if (scod == 0)
{
str += "Default";
}
else
{
if ((scod & CSJ2K.j2k.codestream.Markers.SCOX_PRECINCT_PARTITION) != 0)
str += "Precints ";
if ((scod & CSJ2K.j2k.codestream.Markers.SCOX_USE_SOP) != 0)
str += "SOP ";
if ((scod & CSJ2K.j2k.codestream.Markers.SCOX_USE_EPH) != 0)
str += "EPH ";
int cb0x = ((scod & CSJ2K.j2k.codestream.Markers.SCOX_HOR_CB_PART) != 0)?1:0;
int cb0y = ((scod & CSJ2K.j2k.codestream.Markers.SCOX_VER_CB_PART) != 0)?1:0;
if (cb0x != 0 || cb0y != 0)
{
str += "Code-blocks offset";
str += ("\n Cblk partition : " + cb0x + "," + cb0y);
}
}
str += "\n";
str += " Cblk style : ";
if (spcod_cs == 0)
{
str += "Default";
}
else
{
if ((spcod_cs & 0x1) != 0)
str += "Bypass ";
if ((spcod_cs & 0x2) != 0)
str += "Reset ";
if ((spcod_cs & 0x4) != 0)
str += "Terminate ";
if ((spcod_cs & 0x8) != 0)
str += "Vert_causal ";
if ((spcod_cs & 0x10) != 0)
str += "Predict ";
if ((spcod_cs & 0x20) != 0)
str += "Seg_symb ";
}
str += "\n";
str += (" Num. of levels : " + spcod_ndl + "\n");
switch (sgcod_po)
{
case CSJ2K.j2k.codestream.ProgressionType.LY_RES_COMP_POS_PROG:
str += " Progress. type : LY_RES_COMP_POS_PROG\n";
break;
case CSJ2K.j2k.codestream.ProgressionType.RES_LY_COMP_POS_PROG:
str += " Progress. type : RES_LY_COMP_POS_PROG\n";
break;
case CSJ2K.j2k.codestream.ProgressionType.RES_POS_COMP_LY_PROG:
str += " Progress. type : RES_POS_COMP_LY_PROG\n";
break;
case CSJ2K.j2k.codestream.ProgressionType.POS_COMP_RES_LY_PROG:
str += " Progress. type : POS_COMP_RES_LY_PROG\n";
break;
case CSJ2K.j2k.codestream.ProgressionType.COMP_POS_RES_LY_PROG:
str += " Progress. type : COMP_POS_RES_LY_PROG\n";
break;
}
str += (" Num. of layers : " + sgcod_nl + "\n");
str += (" Cblk dimension : " + (1 << (spcod_cw + 2)) + "x" + (1 << (spcod_ch + 2)) + "\n");
switch (spcod_t[0])
{
case CSJ2K.j2k.wavelet.FilterTypes_Fields.W9X7:
str += " Filter : 9-7 irreversible\n";
break;
case CSJ2K.j2k.wavelet.FilterTypes_Fields.W5X3:
str += " Filter : 5-3 reversible\n";
break;
}
str += (" Multi comp tr. : " + (sgcod_mct == 1) + "\n");
if (spcod_ps != null)
{
str += " Precincts : ";
for (int i = 0; i < spcod_ps.Length; i++)
{
str += ((1 << (spcod_ps[i] & 0x000F)) + "x" + (1 << (((spcod_ps[i] & 0x00F0) >> 4))) + " ");
}
}
str += "\n";
return str;
}