--- /dev/null
+$VAR1 = {
+ 'ABI_DUMPER_VERSION' => '0.99.15',
+ 'ABI_DUMP_VERSION' => '3.2',
+ 'Arch' => 'x86_64',
+ 'GccVersion' => '4.9.2',
+ 'Headers' => {
+ 'bio.h' => 1,
+ 'cio.h' => 1,
+ 'dwt.h' => 1,
+ 'event.h' => 1,
+ 'image.h' => 1,
+ 'j2k.h' => 1,
+ 'j2k_lib.h' => 1,
+ 'jp2.h' => 1,
+ 'jpt.h' => 1,
+ 'mct.h' => 1,
+ 'mqc.h' => 1,
+ 'openjpeg.h' => 1,
+ 'pi.h' => 1,
+ 'raw.h' => 1,
+ 't1.h' => 1,
+ 't2.h' => 1,
+ 'tcd.h' => 1,
+ 'tgt.h' => 1
+ },
+ 'Language' => 'C',
+ 'LibraryName' => 'libopenjpeg.so',
+ 'LibraryVersion' => '1.1',
+ 'NameSpaces' => {},
+ 'Needed' => {
+ 'libc.so.6' => 1
+ },
+ 'PublicABI' => '1',
+ 'Sources' => {
+ 'bio.c' => 1,
+ 'cio.c' => 1,
+ 'dwt.c' => 1,
+ 'event.c' => 1,
+ 'image.c' => 1,
+ 'j2k.c' => 1,
+ 'j2k_lib.c' => 1,
+ 'jp2.c' => 1,
+ 'jpt.c' => 1,
+ 'mct.c' => 1,
+ 'mqc.c' => 1,
+ 'openjpeg.c' => 1,
+ 'pi.c' => 1,
+ 'raw.c' => 1,
+ 't1.c' => 1,
+ 't2.c' => 1,
+ 'tcd.c' => 1,
+ 'tgt.c' => 1
+ },
+ 'SymbolInfo' => {
+ '1009' => {
+ 'Header' => 'bio.h',
+ 'Return' => '809',
+ 'ShortName' => 'bio_create',
+ 'Source' => 'bio.c',
+ 'SourceLine' => '117'
+ },
+ '104424' => {
+ 'Header' => 't2.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 't2',
+ 'type' => '104418'
+ },
+ '1' => {
+ 'name' => 'tileno',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'tile',
+ 'type' => '23105'
+ },
+ '3' => {
+ 'name' => 'maxlayers',
+ 'type' => '77'
+ },
+ '4' => {
+ 'name' => 'dest',
+ 'type' => '674'
+ },
+ '5' => {
+ 'name' => 'len',
+ 'type' => '77'
+ },
+ '6' => {
+ 'name' => 'image_info',
+ 'offset' => '0',
+ 'type' => '4969'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx',
+ '3' => 'rcx',
+ '4' => 'r8',
+ '5' => 'r9'
+ },
+ 'Return' => '77',
+ 'ShortName' => 't2_encode_packets',
+ 'Source' => 't2.c',
+ 'SourceLine' => '565'
+ },
+ '104876' => {
+ 'Header' => 't2.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 't2',
+ 'type' => '104418'
+ },
+ '1' => {
+ 'name' => 'src',
+ 'type' => '674'
+ },
+ '2' => {
+ 'name' => 'len',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'tileno',
+ 'type' => '77'
+ },
+ '4' => {
+ 'name' => 'tile',
+ 'type' => '23105'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx',
+ '3' => 'rcx',
+ '4' => 'r8'
+ },
+ 'Return' => '77',
+ 'ShortName' => 't2_decode_packets',
+ 'Source' => 't2.c',
+ 'SourceLine' => '625'
+ },
+ '105304' => {
+ 'Header' => 't2.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'cinfo',
+ 'type' => '3008'
+ },
+ '1' => {
+ 'name' => 'image',
+ 'type' => '4957'
+ },
+ '2' => {
+ 'name' => 'cp',
+ 'type' => '4963'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '104418',
+ 'ShortName' => 't2_create',
+ 'Source' => 't2.c',
+ 'SourceLine' => '676'
+ },
+ '105420' => {
+ 'Header' => 't2.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 't2',
+ 'type' => '104418'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 't2_destroy',
+ 'Source' => 't2.c',
+ 'SourceLine' => '687'
+ },
+ '105536' => {
+ 'Header' => 'tgt.h',
+ 'Line' => '91',
+ 'Param' => {
+ '0' => {
+ 'name' => 'tree',
+ 'type' => '8079'
+ },
+ '1' => {
+ 'name' => 'leafno',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'value',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'tgt_setvalue',
+ 'Source' => 'tgt.c',
+ 'SourceLine' => '129'
+ },
+ '105563' => {
+ 'Header' => 'tgt.h',
+ 'Line' => '84',
+ 'Param' => {
+ '0' => {
+ 'name' => 'tree',
+ 'type' => '8079'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'tgt_reset',
+ 'Source' => 'tgt.c',
+ 'SourceLine' => '116'
+ },
+ '105580' => {
+ 'Header' => 'tgt.h',
+ 'Line' => '99',
+ 'Param' => {
+ '0' => {
+ 'name' => 'bio',
+ 'type' => '809'
+ },
+ '1' => {
+ 'name' => 'tree',
+ 'type' => '8079'
+ },
+ '2' => {
+ 'name' => 'leafno',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'threshold',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx',
+ '3' => 'rcx'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'tgt_encode',
+ 'Source' => 'tgt.c',
+ 'SourceLine' => '138'
+ },
+ '105808' => {
+ 'Header' => 'tgt.h',
+ 'Line' => '108',
+ 'Param' => {
+ '0' => {
+ 'name' => 'bio',
+ 'type' => '809'
+ },
+ '1' => {
+ 'name' => 'tree',
+ 'type' => '8079'
+ },
+ '2' => {
+ 'name' => 'leafno',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'threshold',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx',
+ '3' => 'rcx'
+ },
+ 'Return' => '77',
+ 'ShortName' => 'tgt_decode',
+ 'Source' => 'tgt.c',
+ 'SourceLine' => '178'
+ },
+ '1076' => {
+ 'Header' => 'bio.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'bio',
+ 'type' => '809'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'bio_destroy',
+ 'Source' => 'bio.c',
+ 'SourceLine' => '122'
+ },
+ '111374' => {
+ 'Header' => 'tcd.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'fd',
+ 'type' => '37321'
+ },
+ '1' => {
+ 'name' => 'tcd',
+ 'type' => '28919'
+ },
+ '2' => {
+ 'name' => 'img',
+ 'type' => '23218'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'tcd_dump',
+ 'Source' => 'tcd.c',
+ 'SourceLine' => '34'
+ },
+ '1142' => {
+ 'Header' => 'bio.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'bio',
+ 'type' => '809'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '77',
+ 'ShortName' => 'bio_numbytes',
+ 'Source' => 'bio.c',
+ 'SourceLine' => '128'
+ },
+ '11442' => {
+ 'Header' => 'dwt.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'tilec',
+ 'type' => '8470'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'dwt_encode',
+ 'Source' => 'dwt.c',
+ 'SourceLine' => '337'
+ },
+ '1189' => {
+ 'Header' => 'bio.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'bio',
+ 'type' => '809'
+ },
+ '1' => {
+ 'name' => 'bp',
+ 'type' => '674'
+ },
+ '2' => {
+ 'name' => 'len',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'bio_init_enc',
+ 'Source' => 'bio.c',
+ 'SourceLine' => '132'
+ },
+ '12057' => {
+ 'Header' => 'dwt.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'tilec',
+ 'type' => '8470'
+ },
+ '1' => {
+ 'name' => 'stop',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'dwt_decode',
+ 'Source' => 'dwt.c',
+ 'SourceLine' => '393'
+ },
+ '122559' => {
+ 'Header' => 'tcd.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'tcd',
+ 'type' => '28919'
+ },
+ '1' => {
+ 'name' => 'layno',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'final',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'tcd_makelayer_fixed',
+ 'Source' => 'tcd.c',
+ 'SourceLine' => '777'
+ },
+ '123071' => {
+ 'Header' => 'tcd.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'tcd',
+ 'type' => '28919'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'tcd_rateallocate_fixed',
+ 'Source' => 'tcd.c',
+ 'SourceLine' => '866'
+ },
+ '123165' => {
+ 'Header' => 'tcd.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'tcd',
+ 'type' => '28919'
+ },
+ '1' => {
+ 'name' => 'layno',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'thresh',
+ 'type' => '177'
+ },
+ '3' => {
+ 'name' => 'final',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'xmm0',
+ '3' => 'rdx'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'tcd_makelayer',
+ 'Source' => 'tcd.c',
+ 'SourceLine' => '873'
+ },
+ '123624' => {
+ 'Header' => 'tcd.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'tcd',
+ 'type' => '28919'
+ },
+ '1' => {
+ 'name' => 'dest',
+ 'type' => '674'
+ },
+ '2' => {
+ 'name' => 'len',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'image_info',
+ 'type' => '4969'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx',
+ '3' => 'rcx'
+ },
+ 'Return' => '77',
+ 'ShortName' => 'tcd_rateallocate',
+ 'Source' => 'tcd.c',
+ 'SourceLine' => '943'
+ },
+ '1259' => {
+ 'Header' => 'bio.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'bio',
+ 'type' => '809'
+ },
+ '1' => {
+ 'name' => 'bp',
+ 'type' => '674'
+ },
+ '2' => {
+ 'name' => 'len',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'bio_init_dec',
+ 'Source' => 'bio.c',
+ 'SourceLine' => '140'
+ },
+ '12688' => {
+ 'Header' => 'dwt.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'orient',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '77',
+ 'ShortName' => 'dwt_getgain',
+ 'Source' => 'dwt.c',
+ 'SourceLine' => '449'
+ },
+ '12739' => {
+ 'Header' => 'dwt.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'level',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'orient',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi'
+ },
+ 'Return' => '177',
+ 'ShortName' => 'dwt_getnorm',
+ 'Source' => 'dwt.c',
+ 'SourceLine' => '460'
+ },
+ '127736' => {
+ 'Header' => 'tgt.h',
+ 'Line' => '74',
+ 'Param' => {
+ '0' => {
+ 'name' => 'numleafsh',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'numleafsv',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi'
+ },
+ 'Return' => '8079',
+ 'ShortName' => 'tgt_create',
+ 'Source' => 'tgt.c',
+ 'SourceLine' => '40'
+ },
+ '127830' => {
+ 'Header' => 'tgt.h',
+ 'Line' => '79',
+ 'Param' => {
+ '0' => {
+ 'name' => 'tree',
+ 'type' => '8079'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'tgt_destroy',
+ 'Source' => 'tgt.c',
+ 'SourceLine' => '111'
+ },
+ '12804' => {
+ 'Header' => 'dwt.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'tilec',
+ 'type' => '8470'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'dwt_encode_real',
+ 'Source' => 'dwt.c',
+ 'SourceLine' => '468'
+ },
+ '1329' => {
+ 'Header' => 'bio.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'bio',
+ 'type' => '809'
+ },
+ '1' => {
+ 'name' => 'v',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'n',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'bio_write',
+ 'Source' => 'bio.c',
+ 'SourceLine' => '148'
+ },
+ '13419' => {
+ 'Header' => 'dwt.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'tilec',
+ 'type' => '8470'
+ },
+ '1' => {
+ 'name' => 'stop',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'dwt_decode_real',
+ 'Source' => 'dwt.c',
+ 'SourceLine' => '524'
+ },
+ '14050' => {
+ 'Header' => 'dwt.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'orient',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '77',
+ 'ShortName' => 'dwt_getgain_real',
+ 'Source' => 'dwt.c',
+ 'SourceLine' => '580'
+ },
+ '14099' => {
+ 'Header' => 'dwt.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'level',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'orient',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi'
+ },
+ 'Return' => '177',
+ 'ShortName' => 'dwt_getnorm_real',
+ 'Source' => 'dwt.c',
+ 'SourceLine' => '588'
+ },
+ '14164' => {
+ 'Header' => 'dwt.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'tccp',
+ 'type' => '3894'
+ },
+ '1' => {
+ 'name' => 'prec',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'dwt_calc_explicit_stepsizes',
+ 'Source' => 'dwt.c',
+ 'SourceLine' => '592'
+ },
+ '1447' => {
+ 'Header' => 'bio.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'bio',
+ 'type' => '809'
+ },
+ '1' => {
+ 'name' => 'n',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi'
+ },
+ 'Return' => '77',
+ 'ShortName' => 'bio_read',
+ 'Source' => 'bio.c',
+ 'SourceLine' => '155'
+ },
+ '1555' => {
+ 'Header' => 'bio.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'bio',
+ 'type' => '809'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '77',
+ 'ShortName' => 'bio_flush',
+ 'Source' => 'bio.c',
+ 'SourceLine' => '164'
+ },
+ '15655' => {
+ 'Header' => 'openjpeg.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'cinfo',
+ 'type' => '3008'
+ },
+ '1' => {
+ 'name' => 'event_mgr',
+ 'type' => '2990'
+ },
+ '2' => {
+ 'name' => 'context',
+ 'type' => '148'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '2990',
+ 'ShortName' => 'opj_set_event_mgr',
+ 'Source' => 'event.c',
+ 'SourceLine' => '64'
+ },
+ '1648' => {
+ 'Header' => 'bio.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'bio',
+ 'type' => '809'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '77',
+ 'ShortName' => 'bio_inalign',
+ 'Source' => 'bio.c',
+ 'SourceLine' => '178'
+ },
+ '17227' => {
+ 'Header' => 'image.h',
+ 'Return' => '4957',
+ 'ShortName' => 'opj_image_create0',
+ 'Source' => 'image.c',
+ 'SourceLine' => '29'
+ },
+ '17294' => {
+ 'Header' => 'openjpeg.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'image',
+ 'type' => '4957'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'opj_image_destroy',
+ 'Source' => 'image.c',
+ 'SourceLine' => '71'
+ },
+ '17379' => {
+ 'Header' => 'openjpeg.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'numcmpts',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'cmptparms',
+ 'type' => '17635'
+ },
+ '2' => {
+ 'name' => 'clrspc',
+ 'type' => '2578'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '4957',
+ 'ShortName' => 'opj_image_create',
+ 'Source' => 'image.c',
+ 'SourceLine' => '34'
+ },
+ '1739' => {
+ 'Header' => 'j2k_lib.h',
+ 'Line' => '53',
+ 'Param' => {
+ '0' => {
+ 'name' => 'size',
+ 'type' => '45'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '148',
+ 'ShortName' => 'opj_malloc',
+ 'Source' => 'j2k_lib.c',
+ 'SourceLine' => '60'
+ },
+ '1760' => {
+ 'Header' => 'j2k_lib.h',
+ 'Line' => '67',
+ 'Param' => {
+ '0' => {
+ 'name' => 'memblock',
+ 'type' => '148'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'opj_free',
+ 'Source' => 'j2k_lib.c',
+ 'SourceLine' => '72'
+ },
+ '39346' => {
+ 'Header' => 'j2k.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'cinfo',
+ 'type' => '3008'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '5299',
+ 'ShortName' => 'j2k_create_decompress',
+ 'Source' => 'j2k.c',
+ 'SourceLine' => '1458'
+ },
+ '39482' => {
+ 'Header' => 'j2k.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'j2k',
+ 'type' => '5299'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'j2k_destroy_decompress',
+ 'Source' => 'j2k.c',
+ 'SourceLine' => '1471'
+ },
+ '39801' => {
+ 'Header' => 'j2k.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'j2k',
+ 'type' => '5299'
+ },
+ '1' => {
+ 'name' => 'parameters',
+ 'type' => '39891'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'j2k_setup_decoder',
+ 'Source' => 'j2k.c',
+ 'SourceLine' => '1519'
+ },
+ '39897' => {
+ 'Header' => 'j2k.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'j2k',
+ 'type' => '5299'
+ },
+ '1' => {
+ 'name' => 'cio',
+ 'type' => '4975'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi'
+ },
+ 'Return' => '4957',
+ 'ShortName' => 'j2k_decode',
+ 'Source' => 'j2k.c',
+ 'SourceLine' => '1538'
+ },
+ '40383' => {
+ 'Header' => 'j2k.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'j2k',
+ 'type' => '5299'
+ },
+ '1' => {
+ 'name' => 'cio',
+ 'type' => '4975'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi'
+ },
+ 'Return' => '4957',
+ 'ShortName' => 'j2k_decode_jpt_stream',
+ 'Source' => 'j2k.c',
+ 'SourceLine' => '1627'
+ },
+ '41249' => {
+ 'Header' => 'j2k.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'cinfo',
+ 'type' => '3008'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '5299',
+ 'ShortName' => 'j2k_create_compress',
+ 'Source' => 'j2k.c',
+ 'SourceLine' => '1709'
+ },
+ '41334' => {
+ 'Header' => 'j2k.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'j2k',
+ 'type' => '5299'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'j2k_destroy_compress',
+ 'Source' => 'j2k.c',
+ 'SourceLine' => '1717'
+ },
+ '41479' => {
+ 'Header' => 'j2k.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'j2k',
+ 'type' => '5299'
+ },
+ '1' => {
+ 'name' => 'parameters',
+ 'type' => '42205'
+ },
+ '2' => {
+ 'name' => 'image',
+ 'type' => '4957'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'j2k_setup_encoder',
+ 'Source' => 'j2k.c',
+ 'SourceLine' => '1754'
+ },
+ '42211' => {
+ 'Header' => 'j2k.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'j2k',
+ 'type' => '5299'
+ },
+ '1' => {
+ 'name' => 'cio',
+ 'type' => '4975'
+ },
+ '2' => {
+ 'name' => 'image',
+ 'type' => '4957'
+ },
+ '3' => {
+ 'name' => 'index',
+ 'type' => '150'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx',
+ '3' => 'rcx'
+ },
+ 'Return' => '77',
+ 'ShortName' => 'j2k_encode',
+ 'Source' => 'j2k.c',
+ 'SourceLine' => '2214'
+ },
+ '43271' => {
+ 'Header' => 'j2k_lib.h',
+ 'Line' => '61',
+ 'Param' => {
+ '0' => {
+ 'name' => 'memblock',
+ 'type' => '148'
+ },
+ '1' => {
+ 'name' => 'size',
+ 'type' => '45'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi'
+ },
+ 'Return' => '148',
+ 'ShortName' => 'opj_realloc',
+ 'Source' => 'j2k_lib.c',
+ 'SourceLine' => '68'
+ },
+ '43342' => {
+ 'Header' => 'tcd.h',
+ 'Line' => '191',
+ 'Param' => {
+ '0' => {
+ 'name' => 'cinfo',
+ 'type' => '3008'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '28919',
+ 'ShortName' => 'tcd_create',
+ 'Source' => 'tcd.c',
+ 'SourceLine' => '96'
+ },
+ '43363' => {
+ 'Header' => 'tcd.h',
+ 'Line' => '224',
+ 'Param' => {
+ '0' => {
+ 'name' => 'tcd',
+ 'type' => '28919'
+ },
+ '1' => {
+ 'name' => 'image',
+ 'type' => '4957'
+ },
+ '2' => {
+ 'name' => 'cp',
+ 'type' => '4963'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'tcd_malloc_decode',
+ 'Source' => 'tcd.c',
+ 'SourceLine' => '574'
+ },
+ '43390' => {
+ 'Header' => 'tcd.h',
+ 'Line' => '246',
+ 'Param' => {
+ '0' => {
+ 'name' => 'tcd',
+ 'type' => '28919'
+ },
+ '1' => {
+ 'name' => 'src',
+ 'type' => '674'
+ },
+ '2' => {
+ 'name' => 'len',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'tileno',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx',
+ '3' => 'rcx'
+ },
+ 'Return' => '77',
+ 'ShortName' => 'tcd_decode_tile',
+ 'Source' => 'tcd.c',
+ 'SourceLine' => '1231'
+ },
+ '43443' => {
+ 'Header' => 'tcd.h',
+ 'Line' => '251',
+ 'Param' => {
+ '0' => {
+ 'name' => 'tcd',
+ 'type' => '28919'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'tcd_free_decode',
+ 'Source' => 'tcd.c',
+ 'SourceLine' => '1355'
+ },
+ '43460' => {
+ 'Header' => 'tcd.h',
+ 'Line' => '196',
+ 'Param' => {
+ '0' => {
+ 'name' => 'tcd',
+ 'type' => '28919'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'tcd_destroy',
+ 'Source' => 'tcd.c',
+ 'SourceLine' => '113'
+ },
+ '43550' => {
+ 'Header' => 'tcd.h',
+ 'Line' => '238',
+ 'Param' => {
+ '0' => {
+ 'name' => 'tcd',
+ 'type' => '28919'
+ },
+ '1' => {
+ 'name' => 'tileno',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'dest',
+ 'type' => '674'
+ },
+ '3' => {
+ 'name' => 'len',
+ 'type' => '77'
+ },
+ '4' => {
+ 'name' => 'image_info',
+ 'type' => '4969'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx',
+ '3' => 'rcx',
+ '4' => 'r8'
+ },
+ 'Return' => '77',
+ 'ShortName' => 'tcd_encode_tile',
+ 'Source' => 'tcd.c',
+ 'SourceLine' => '1086'
+ },
+ '43823' => {
+ 'Header' => 'jpt.h',
+ 'Line' => '73',
+ 'Param' => {
+ '0' => {
+ 'name' => 'cinfo',
+ 'type' => '3008'
+ },
+ '1' => {
+ 'name' => 'cio',
+ 'type' => '4975'
+ },
+ '2' => {
+ 'name' => 'header',
+ 'type' => '43850'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'jpt_read_msg_header',
+ 'Source' => 'jpt.c',
+ 'SourceLine' => '83'
+ },
+ '43856' => {
+ 'Header' => 'jpt.h',
+ 'Line' => '65',
+ 'Param' => {
+ '0' => {
+ 'name' => 'header',
+ 'type' => '43850'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'jpt_init_msg_header',
+ 'Source' => 'jpt.c',
+ 'SourceLine' => '56'
+ },
+ '43873' => {
+ 'Header' => 'tcd.h',
+ 'Line' => '204',
+ 'Param' => {
+ '0' => {
+ 'name' => 'tcd',
+ 'type' => '28919'
+ },
+ '1' => {
+ 'name' => 'image',
+ 'type' => '4957'
+ },
+ '2' => {
+ 'name' => 'cp',
+ 'type' => '4963'
+ },
+ '3' => {
+ 'name' => 'curtileno',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx',
+ '3' => 'rcx'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'tcd_malloc_encode',
+ 'Source' => 'tcd.c',
+ 'SourceLine' => '122'
+ },
+ '43905' => {
+ 'Header' => 'tcd.h',
+ 'Line' => '217',
+ 'Param' => {
+ '0' => {
+ 'name' => 'tcd',
+ 'type' => '28919'
+ },
+ '1' => {
+ 'name' => 'image',
+ 'type' => '4957'
+ },
+ '2' => {
+ 'name' => 'cp',
+ 'type' => '4963'
+ },
+ '3' => {
+ 'name' => 'curtileno',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx',
+ '3' => 'rcx'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'tcd_init_encode',
+ 'Source' => 'tcd.c',
+ 'SourceLine' => '374'
+ },
+ '43937' => {
+ 'Header' => 'tcd.h',
+ 'Line' => '209',
+ 'Param' => {
+ '0' => {
+ 'name' => 'tcd',
+ 'type' => '28919'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'tcd_free_encode',
+ 'Source' => 'tcd.c',
+ 'SourceLine' => '331'
+ },
+ '45273' => {
+ 'Header' => 'j2k_lib.h',
+ 'Return' => '177',
+ 'ShortName' => 'opj_clock',
+ 'Source' => 'j2k_lib.c',
+ 'SourceLine' => '36'
+ },
+ '5328' => {
+ 'Header' => 'openjpeg.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'cinfo',
+ 'type' => '3008'
+ },
+ '1' => {
+ 'name' => 'buffer',
+ 'type' => '674'
+ },
+ '2' => {
+ 'name' => 'length',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '4975',
+ 'ShortName' => 'opj_cio_open',
+ 'Source' => 'cio.c',
+ 'SourceLine' => '36'
+ },
+ '5541' => {
+ 'Header' => 'openjpeg.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'cio',
+ 'type' => '4975'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'opj_cio_close',
+ 'Source' => 'cio.c',
+ 'SourceLine' => '81'
+ },
+ '5584' => {
+ 'Header' => 'openjpeg.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'cio',
+ 'type' => '4975'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '77',
+ 'ShortName' => 'cio_tell',
+ 'Source' => 'cio.c',
+ 'SourceLine' => '98'
+ },
+ '55896' => {
+ 'Header' => 'jp2.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'jp2',
+ 'type' => '50645'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'jp2_destroy_decompress',
+ 'Source' => 'jp2.c',
+ 'SourceLine' => '536'
+ },
+ '55941' => {
+ 'Header' => 'jp2.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'cinfo',
+ 'type' => '3008'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '50645',
+ 'ShortName' => 'jp2_create_decompress',
+ 'Source' => 'jp2.c',
+ 'SourceLine' => '522'
+ },
+ '56076' => {
+ 'Header' => 'jp2.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'jp2',
+ 'type' => '50645'
+ },
+ '1' => {
+ 'name' => 'parameters',
+ 'type' => '39891'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'jp2_setup_decoder',
+ 'Source' => 'jp2.c',
+ 'SourceLine' => '551'
+ },
+ '56166' => {
+ 'Header' => 'jp2.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'jp2',
+ 'type' => '50645'
+ },
+ '1' => {
+ 'name' => 'cio',
+ 'type' => '4975'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi'
+ },
+ 'Return' => '4957',
+ 'ShortName' => 'jp2_decode',
+ 'Source' => 'jp2.c',
+ 'SourceLine' => '557'
+ },
+ '5631' => {
+ 'Header' => 'openjpeg.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'cio',
+ 'type' => '4975'
+ },
+ '1' => {
+ 'name' => 'pos',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'cio_seek',
+ 'Source' => 'cio.c',
+ 'SourceLine' => '107'
+ },
+ '56399' => {
+ 'Header' => 'jp2.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'jp2',
+ 'type' => '50645'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'jp2_destroy_compress',
+ 'Source' => 'jp2.c',
+ 'SourceLine' => '600'
+ },
+ '56444' => {
+ 'Header' => 'jp2.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'cinfo',
+ 'type' => '3008'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '50645',
+ 'ShortName' => 'jp2_create_compress',
+ 'Source' => 'jp2.c',
+ 'SourceLine' => '586'
+ },
+ '56579' => {
+ 'Header' => 'jp2.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'jp2',
+ 'type' => '50645'
+ },
+ '1' => {
+ 'name' => 'parameters',
+ 'type' => '42205'
+ },
+ '2' => {
+ 'name' => 'image',
+ 'type' => '4957'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'jp2_setup_encoder',
+ 'Source' => 'jp2.c',
+ 'SourceLine' => '615'
+ },
+ '56728' => {
+ 'Header' => 'jp2.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'jp2',
+ 'type' => '50645'
+ },
+ '1' => {
+ 'name' => 'cio',
+ 'type' => '4975'
+ },
+ '2' => {
+ 'name' => 'image',
+ 'type' => '4957'
+ },
+ '3' => {
+ 'name' => 'index',
+ 'type' => '150'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx',
+ '3' => 'rcx'
+ },
+ 'Return' => '77',
+ 'ShortName' => 'jp2_encode',
+ 'Source' => 'jp2.c',
+ 'SourceLine' => '692'
+ },
+ '5689' => {
+ 'Header' => 'cio.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'cio',
+ 'type' => '4975'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '77',
+ 'ShortName' => 'cio_numbytesleft',
+ 'Source' => 'cio.c',
+ 'SourceLine' => '114'
+ },
+ '5736' => {
+ 'Header' => 'cio.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'cio',
+ 'type' => '4975'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '674',
+ 'ShortName' => 'cio_getbp',
+ 'Source' => 'cio.c',
+ 'SourceLine' => '121'
+ },
+ '5958' => {
+ 'Header' => 'cio.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'cio',
+ 'type' => '4975'
+ },
+ '1' => {
+ 'name' => 'v',
+ 'type' => '98'
+ },
+ '2' => {
+ 'name' => 'n',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '98',
+ 'ShortName' => 'cio_write',
+ 'Source' => 'cio.c',
+ 'SourceLine' => '154'
+ },
+ '59920' => {
+ 'Header' => 'mct.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'c0',
+ 'type' => '1941'
+ },
+ '1' => {
+ 'name' => 'c1',
+ 'type' => '1941'
+ },
+ '2' => {
+ 'name' => 'c2',
+ 'type' => '1941'
+ },
+ '3' => {
+ 'name' => 'n',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx',
+ '3' => 'rcx'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'mct_encode',
+ 'Source' => 'mct.c',
+ 'SourceLine' => '47'
+ },
+ '60106' => {
+ 'Header' => 'mct.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'c0',
+ 'type' => '1941'
+ },
+ '1' => {
+ 'name' => 'c1',
+ 'type' => '1941'
+ },
+ '2' => {
+ 'name' => 'c2',
+ 'type' => '1941'
+ },
+ '3' => {
+ 'name' => 'n',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx',
+ '3' => 'rcx'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'mct_decode',
+ 'Source' => 'mct.c',
+ 'SourceLine' => '66'
+ },
+ '60292' => {
+ 'Header' => 'mct.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'compno',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '177',
+ 'ShortName' => 'mct_getnorm',
+ 'Source' => 'mct.c',
+ 'SourceLine' => '85'
+ },
+ '60339' => {
+ 'Header' => 'mct.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'c0',
+ 'type' => '1941'
+ },
+ '1' => {
+ 'name' => 'c1',
+ 'type' => '1941'
+ },
+ '2' => {
+ 'name' => 'c2',
+ 'type' => '1941'
+ },
+ '3' => {
+ 'name' => 'n',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx',
+ '3' => 'rcx'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'mct_encode_real',
+ 'Source' => 'mct.c',
+ 'SourceLine' => '92'
+ },
+ '6083' => {
+ 'Header' => 'cio.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'cio',
+ 'type' => '4975'
+ },
+ '1' => {
+ 'name' => 'n',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi'
+ },
+ 'Return' => '98',
+ 'ShortName' => 'cio_read',
+ 'Source' => 'cio.c',
+ 'SourceLine' => '170'
+ },
+ '61178' => {
+ 'Header' => 'mct.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'c0',
+ 'type' => '1941'
+ },
+ '1' => {
+ 'name' => 'c1',
+ 'type' => '1941'
+ },
+ '2' => {
+ 'name' => 'c2',
+ 'type' => '1941'
+ },
+ '3' => {
+ 'name' => 'n',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx',
+ '3' => 'rcx'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'mct_decode_real',
+ 'Source' => 'mct.c',
+ 'SourceLine' => '111'
+ },
+ '61652' => {
+ 'Header' => 'mct.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'compno',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '177',
+ 'ShortName' => 'mct_getnorm_real',
+ 'Source' => 'mct.c',
+ 'SourceLine' => '130'
+ },
+ '6191' => {
+ 'Header' => 'cio.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'cio',
+ 'type' => '4975'
+ },
+ '1' => {
+ 'name' => 'n',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'cio_skip',
+ 'Source' => 'cio.c',
+ 'SourceLine' => '185'
+ },
+ '6305' => {
+ 'Header' => 'event.h',
+ 'Line' => '52',
+ 'Param' => {
+ '0' => {
+ 'name' => 'cinfo',
+ 'type' => '3008'
+ },
+ '1' => {
+ 'name' => 'event_type',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'fmt',
+ 'type' => '1858'
+ },
+ '3' => {
+ 'type' => '-1'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '77',
+ 'ShortName' => 'opj_event_msg',
+ 'Source' => 'event.c',
+ 'SourceLine' => '75'
+ },
+ '63251' => {
+ 'Header' => 'mqc.h',
+ 'Return' => '62692',
+ 'ShortName' => 'mqc_create',
+ 'Source' => 'mqc.c',
+ 'SourceLine' => '347'
+ },
+ '63321' => {
+ 'Header' => 'mqc.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'mqc',
+ 'type' => '62692'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'mqc_destroy',
+ 'Source' => 'mqc.c',
+ 'SourceLine' => '352'
+ },
+ '63389' => {
+ 'Header' => 'mqc.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'mqc',
+ 'type' => '62692'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '77',
+ 'ShortName' => 'mqc_numbytes',
+ 'Source' => 'mqc.c',
+ 'SourceLine' => '358'
+ },
+ '63438' => {
+ 'Header' => 'mqc.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'mqc',
+ 'type' => '62692'
+ },
+ '1' => {
+ 'name' => 'ctxno',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'mqc_setcurctx',
+ 'Source' => 'mqc.c',
+ 'SourceLine' => '374'
+ },
+ '63497' => {
+ 'Header' => 'mqc.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'mqc',
+ 'type' => '62692'
+ },
+ '1' => {
+ 'name' => 'bp',
+ 'type' => '674'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'mqc_init_enc',
+ 'Source' => 'mqc.c',
+ 'SourceLine' => '362'
+ },
+ '63584' => {
+ 'Header' => 'mqc.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'mqc',
+ 'type' => '62692'
+ },
+ '1' => {
+ 'name' => 'd',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'mqc_encode',
+ 'Source' => 'mqc.c',
+ 'SourceLine' => '378'
+ },
+ '63683' => {
+ 'Header' => 'mqc.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'mqc',
+ 'type' => '62692'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'mqc_flush',
+ 'Source' => 'mqc.c',
+ 'SourceLine' => '386'
+ },
+ '63798' => {
+ 'Header' => 'mqc.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'mqc',
+ 'type' => '62692'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'mqc_bypass_init_enc',
+ 'Source' => 'mqc.c',
+ 'SourceLine' => '398'
+ },
+ '63843' => {
+ 'Header' => 'mqc.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'mqc',
+ 'type' => '62692'
+ },
+ '1' => {
+ 'name' => 'd',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'mqc_bypass_enc',
+ 'Source' => 'mqc.c',
+ 'SourceLine' => '406'
+ },
+ '63902' => {
+ 'Header' => 'mqc.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'mqc',
+ 'type' => '62692'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '77',
+ 'ShortName' => 'mqc_bypass_flush_enc',
+ 'Source' => 'mqc.c',
+ 'SourceLine' => '420'
+ },
+ '63967' => {
+ 'Header' => 'mqc.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'mqc',
+ 'type' => '62692'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '77',
+ 'ShortName' => 'mqc_restart_enc',
+ 'Source' => 'mqc.c',
+ 'SourceLine' => '447'
+ },
+ '64089' => {
+ 'Header' => 'mqc.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'mqc',
+ 'type' => '62692'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'mqc_restart_init_enc',
+ 'Source' => 'mqc.c',
+ 'SourceLine' => '463'
+ },
+ '64161' => {
+ 'Header' => 'mqc.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'mqc',
+ 'type' => '62692'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'mqc_erterm_enc',
+ 'Source' => 'mqc.c',
+ 'SourceLine' => '475'
+ },
+ '64266' => {
+ 'Header' => 'mqc.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'mqc',
+ 'type' => '62692'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'mqc_segmark_enc',
+ 'Source' => 'mqc.c',
+ 'SourceLine' => '490'
+ },
+ '64394' => {
+ 'Header' => 'mqc.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'mqc',
+ 'type' => '62692'
+ },
+ '1' => {
+ 'name' => 'bp',
+ 'type' => '674'
+ },
+ '2' => {
+ 'name' => 'len',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'mqc_init_dec',
+ 'Source' => 'mqc.c',
+ 'SourceLine' => '499'
+ },
+ '64521' => {
+ 'Header' => 'mqc.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'mqc',
+ 'type' => '62692'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '77',
+ 'ShortName' => 'mqc_decode',
+ 'Source' => 'mqc.c',
+ 'SourceLine' => '512'
+ },
+ '64678' => {
+ 'Header' => 'mqc.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'mqc',
+ 'type' => '62692'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'mqc_resetstates',
+ 'Source' => 'mqc.c',
+ 'SourceLine' => '531'
+ },
+ '64737' => {
+ 'Header' => 'mqc.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'mqc',
+ 'type' => '62692'
+ },
+ '1' => {
+ 'name' => 'ctxno',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'msb',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'prob',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx',
+ '3' => 'rcx'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'mqc_setstate',
+ 'Source' => 'mqc.c',
+ 'SourceLine' => '538'
+ },
+ '64826' => {
+ 'Header' => 'mqc.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'mqc',
+ 'type' => '62692'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'mqc_reset_enc',
+ 'Source' => 'mqc.c',
+ 'SourceLine' => '440'
+ },
+ '69496' => {
+ 'Header' => 'openjpeg.h',
+ 'Return' => '1858',
+ 'ShortName' => 'opj_version',
+ 'Source' => 'openjpeg.c',
+ 'SourceLine' => '56'
+ },
+ '69525' => {
+ 'Header' => 'openjpeg.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'format',
+ 'type' => '2626'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '69729',
+ 'ShortName' => 'opj_create_decompress',
+ 'Source' => 'openjpeg.c',
+ 'SourceLine' => '60'
+ },
+ '69735' => {
+ 'Header' => 'openjpeg.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'dinfo',
+ 'type' => '69729'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'opj_destroy_decompress',
+ 'Source' => 'openjpeg.c',
+ 'SourceLine' => '93'
+ },
+ '69778' => {
+ 'Header' => 'openjpeg.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'parameters',
+ 'type' => '39891'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'opj_set_default_decoder_parameters',
+ 'Source' => 'openjpeg.c',
+ 'SourceLine' => '113'
+ },
+ '69827' => {
+ 'Header' => 'openjpeg.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'dinfo',
+ 'type' => '69729'
+ },
+ '1' => {
+ 'name' => 'parameters',
+ 'type' => '39891'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'opj_setup_decoder',
+ 'Source' => 'openjpeg.c',
+ 'SourceLine' => '132'
+ },
+ '69913' => {
+ 'Header' => 'openjpeg.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'dinfo',
+ 'type' => '69729'
+ },
+ '1' => {
+ 'name' => 'cio',
+ 'type' => '4975'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi'
+ },
+ 'Return' => '4957',
+ 'ShortName' => 'opj_decode',
+ 'Source' => 'openjpeg.c',
+ 'SourceLine' => '149'
+ },
+ '70028' => {
+ 'Header' => 'openjpeg.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'format',
+ 'type' => '2626'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '70232',
+ 'ShortName' => 'opj_create_compress',
+ 'Source' => 'openjpeg.c',
+ 'SourceLine' => '167'
+ },
+ '70238' => {
+ 'Header' => 'openjpeg.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'cinfo',
+ 'type' => '70232'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'opj_destroy_compress',
+ 'Source' => 'openjpeg.c',
+ 'SourceLine' => '200'
+ },
+ '70281' => {
+ 'Header' => 'openjpeg.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'parameters',
+ 'type' => '42205'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'opj_set_default_encoder_parameters',
+ 'Source' => 'openjpeg.c',
+ 'SourceLine' => '220'
+ },
+ '70330' => {
+ 'Header' => 'openjpeg.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'cinfo',
+ 'type' => '70232'
+ },
+ '1' => {
+ 'name' => 'parameters',
+ 'type' => '42205'
+ },
+ '2' => {
+ 'name' => 'image',
+ 'type' => '4957'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'opj_setup_encoder',
+ 'Source' => 'openjpeg.c',
+ 'SourceLine' => '269'
+ },
+ '70435' => {
+ 'Header' => 'openjpeg.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'cinfo',
+ 'type' => '70232'
+ },
+ '1' => {
+ 'name' => 'cio',
+ 'type' => '4975'
+ },
+ '2' => {
+ 'name' => 'image',
+ 'type' => '4957'
+ },
+ '3' => {
+ 'name' => 'index',
+ 'type' => '150'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx',
+ '3' => 'rcx'
+ },
+ 'Return' => '77',
+ 'ShortName' => 'opj_encode',
+ 'Source' => 'openjpeg.c',
+ 'SourceLine' => '286'
+ },
+ '76625' => {
+ 'Header' => 'pi.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'pi',
+ 'type' => '73729'
+ },
+ '1' => {
+ 'name' => 'cp',
+ 'type' => '4963'
+ },
+ '2' => {
+ 'name' => 'tileno',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'pi_destroy',
+ 'Source' => 'pi.c',
+ 'SourceLine' => '521'
+ },
+ '76847' => {
+ 'Header' => 'pi.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'image',
+ 'type' => '4957'
+ },
+ '1' => {
+ 'name' => 'cp',
+ 'type' => '4963'
+ },
+ '2' => {
+ 'name' => 'tileno',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '73729',
+ 'ShortName' => 'pi_create',
+ 'Source' => 'pi.c',
+ 'SourceLine' => '387'
+ },
+ '78356' => {
+ 'Header' => 'pi.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'pi',
+ 'type' => '73729'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '77',
+ 'ShortName' => 'pi_next',
+ 'Source' => 'pi.c',
+ 'SourceLine' => '543'
+ },
+ '79347' => {
+ 'Header' => 'raw.h',
+ 'Return' => '79341',
+ 'ShortName' => 'raw_create',
+ 'Source' => 'raw.c',
+ 'SourceLine' => '45'
+ },
+ '79414' => {
+ 'Header' => 'raw.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'raw',
+ 'type' => '79341'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'raw_destroy',
+ 'Source' => 'raw.c',
+ 'SourceLine' => '50'
+ },
+ '79480' => {
+ 'Header' => 'raw.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'raw',
+ 'type' => '79341'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '77',
+ 'ShortName' => 'raw_numbytes',
+ 'Source' => 'raw.c',
+ 'SourceLine' => '56'
+ },
+ '79527' => {
+ 'Header' => 'raw.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'raw',
+ 'type' => '79341'
+ },
+ '1' => {
+ 'name' => 'bp',
+ 'type' => '674'
+ },
+ '2' => {
+ 'name' => 'len',
+ 'type' => '77'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '1',
+ 'ShortName' => 'raw_init_dec',
+ 'Source' => 'raw.c',
+ 'SourceLine' => '60'
+ },
+ '79595' => {
+ 'Header' => 'raw.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'raw',
+ 'type' => '79341'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '77',
+ 'ShortName' => 'raw_decode',
+ 'Source' => 'raw.c',
+ 'SourceLine' => '68'
+ },
+ '93513' => {
+ 'Header' => 't1.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'cinfo',
+ 'type' => '3008'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '83641',
+ 'ShortName' => 't1_create',
+ 'Source' => 't1.c',
+ 'SourceLine' => '913'
+ },
+ '93652' => {
+ 'Header' => 't1.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 't1',
+ 'type' => '83641'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '1',
+ 'ShortName' => 't1_destroy',
+ 'Source' => 't1.c',
+ 'SourceLine' => '926'
+ },
+ '93696' => {
+ 'Header' => 't1.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 't1',
+ 'type' => '83641'
+ },
+ '1' => {
+ 'name' => 'tile',
+ 'type' => '23105'
+ },
+ '2' => {
+ 'name' => 'tcp',
+ 'type' => '4198'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '1',
+ 'ShortName' => 't1_encode_cblks',
+ 'Source' => 't1.c',
+ 'SourceLine' => '935'
+ },
+ '94322' => {
+ 'Header' => 't1.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 't1',
+ 'type' => '83641'
+ },
+ '1' => {
+ 'name' => 'tile',
+ 'type' => '23105'
+ },
+ '2' => {
+ 'name' => 'tcp',
+ 'type' => '4198'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '1',
+ 'ShortName' => 't1_decode_cblks',
+ 'Source' => 't1.c',
+ 'SourceLine' => '1006'
+ }
+ },
+ 'SymbolVersion' => {
+ '_ITM_deregisterTMCloneTable' => 'vsprintf@@GLIBC_2.2.5',
+ '_ITM_registerTMCloneTable' => 'vsprintf@@GLIBC_2.2.5',
+ '_Jv_RegisterClasses' => 'vsprintf@@GLIBC_2.2.5',
+ '__gmon_start__' => 'vsprintf@@GLIBC_2.2.5',
+ 'ceilf' => 'vsprintf@@GLIBC_2.2.5',
+ 'floor' => 'vsprintf@@GLIBC_2.2.5',
+ 'floorf' => 'vsprintf@@GLIBC_2.2.5',
+ 'pow' => 'vsprintf@@GLIBC_2.2.5',
+ 'trunc' => 'vsprintf@@GLIBC_2.2.5',
+ 'truncf' => 'vsprintf@@GLIBC_2.2.5'
+ },
+ 'Symbols' => {
+ 'libopenjpeg.so' => {
+ '_fini' => 1,
+ '_init' => 1,
+ 'bio_create' => 1,
+ 'bio_destroy' => 1,
+ 'bio_flush' => 1,
+ 'bio_inalign' => 1,
+ 'bio_init_dec' => 1,
+ 'bio_init_enc' => 1,
+ 'bio_numbytes' => 1,
+ 'bio_read' => 1,
+ 'bio_write' => 1,
+ 'cio_bytein' => 1,
+ 'cio_byteout' => 1,
+ 'cio_getbp' => 1,
+ 'cio_numbytesleft' => 1,
+ 'cio_read' => 1,
+ 'cio_seek' => 1,
+ 'cio_skip' => 1,
+ 'cio_tell' => 1,
+ 'cio_write' => 1,
+ 'dwt_calc_explicit_stepsizes' => 1,
+ 'dwt_decode' => 1,
+ 'dwt_decode_real' => 1,
+ 'dwt_encode' => 1,
+ 'dwt_encode_real' => 1,
+ 'dwt_getgain' => 1,
+ 'dwt_getgain_real' => 1,
+ 'dwt_getnorm' => 1,
+ 'dwt_getnorm_real' => 1,
+ 'j2k_create_compress' => 1,
+ 'j2k_create_decompress' => 1,
+ 'j2k_dec_mstab' => -320,
+ 'j2k_decode' => 1,
+ 'j2k_decode_jpt_stream' => 1,
+ 'j2k_destroy_compress' => 1,
+ 'j2k_destroy_decompress' => 1,
+ 'j2k_dump_cp' => 1,
+ 'j2k_dump_image' => 1,
+ 'j2k_encode' => 1,
+ 'j2k_setup_decoder' => 1,
+ 'j2k_setup_encoder' => 1,
+ 'jp2_create_compress' => 1,
+ 'jp2_create_decompress' => 1,
+ 'jp2_decode' => 1,
+ 'jp2_destroy_compress' => 1,
+ 'jp2_destroy_decompress' => 1,
+ 'jp2_encode' => 1,
+ 'jp2_setup_decoder' => 1,
+ 'jp2_setup_encoder' => 1,
+ 'jpt_init_msg_header' => 1,
+ 'jpt_read_VBAS_info' => 1,
+ 'jpt_read_msg_header' => 1,
+ 'jpt_reinit_msg_header' => 1,
+ 'mct_decode' => 1,
+ 'mct_decode_real' => 1,
+ 'mct_encode' => 1,
+ 'mct_encode_real' => 1,
+ 'mct_getnorm' => 1,
+ 'mct_getnorm_real' => 1,
+ 'mqc_bypass_enc' => 1,
+ 'mqc_bypass_flush_enc' => 1,
+ 'mqc_bypass_init_enc' => 1,
+ 'mqc_create' => 1,
+ 'mqc_decode' => 1,
+ 'mqc_destroy' => 1,
+ 'mqc_encode' => 1,
+ 'mqc_erterm_enc' => 1,
+ 'mqc_flush' => 1,
+ 'mqc_init_dec' => 1,
+ 'mqc_init_enc' => 1,
+ 'mqc_numbytes' => 1,
+ 'mqc_reset_enc' => 1,
+ 'mqc_resetstates' => 1,
+ 'mqc_restart_enc' => 1,
+ 'mqc_restart_init_enc' => 1,
+ 'mqc_segmark_enc' => 1,
+ 'mqc_setcurctx' => 1,
+ 'mqc_setstate' => 1,
+ 'opj_cio_close' => 1,
+ 'opj_cio_open' => 1,
+ 'opj_clock' => 1,
+ 'opj_create_compress' => 1,
+ 'opj_create_decompress' => 1,
+ 'opj_decode' => 1,
+ 'opj_destroy_compress' => 1,
+ 'opj_destroy_decompress' => 1,
+ 'opj_encode' => 1,
+ 'opj_event_msg' => 1,
+ 'opj_free' => 1,
+ 'opj_image_create' => 1,
+ 'opj_image_create0' => 1,
+ 'opj_image_destroy' => 1,
+ 'opj_malloc' => 1,
+ 'opj_realloc' => 1,
+ 'opj_set_default_decoder_parameters' => 1,
+ 'opj_set_default_encoder_parameters' => 1,
+ 'opj_set_event_mgr' => 1,
+ 'opj_setup_decoder' => 1,
+ 'opj_setup_encoder' => 1,
+ 'opj_version' => 1,
+ 'pi_create' => 1,
+ 'pi_destroy' => 1,
+ 'pi_next' => 1,
+ 'raw_create' => 1,
+ 'raw_decode' => 1,
+ 'raw_destroy' => 1,
+ 'raw_init_dec' => 1,
+ 'raw_numbytes' => 1,
+ 't1_create' => 1,
+ 't1_decode_cblks' => 1,
+ 't1_destroy' => 1,
+ 't1_encode_cblks' => 1,
+ 't2_create' => 1,
+ 't2_decode_packets' => 1,
+ 't2_destroy' => 1,
+ 't2_encode_packets' => 1,
+ 'tcd_create' => 1,
+ 'tcd_decode_tile' => 1,
+ 'tcd_destroy' => 1,
+ 'tcd_dump' => 1,
+ 'tcd_encode_tile' => 1,
+ 'tcd_free_decode' => 1,
+ 'tcd_free_encode' => 1,
+ 'tcd_init_encode' => 1,
+ 'tcd_makelayer' => 1,
+ 'tcd_makelayer_fixed' => 1,
+ 'tcd_malloc_decode' => 1,
+ 'tcd_malloc_encode' => 1,
+ 'tcd_rateallocate' => 1,
+ 'tcd_rateallocate_fixed' => 1,
+ 'tgt_create' => 1,
+ 'tgt_decode' => 1,
+ 'tgt_destroy' => 1,
+ 'tgt_encode' => 1,
+ 'tgt_reset' => 1,
+ 'tgt_setvalue' => 1
+ }
+ },
+ 'Target' => 'unix',
+ 'TypeInfo' => {
+ '-1' => {
+ 'Name' => '...',
+ 'Type' => 'Intrinsic'
+ },
+ '1' => {
+ 'Name' => 'void',
+ 'Type' => 'Intrinsic'
+ },
+ '100430' => {
+ 'Header' => 't2.h',
+ 'Line' => '45',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'cinfo',
+ 'offset' => '0',
+ 'type' => '3008'
+ },
+ '1' => {
+ 'name' => 'image',
+ 'offset' => '8',
+ 'type' => '4957'
+ },
+ '2' => {
+ 'name' => 'cp',
+ 'offset' => '16',
+ 'type' => '4963'
+ }
+ },
+ 'Name' => 'struct opj_t2',
+ 'Size' => '24',
+ 'Type' => 'Struct'
+ },
+ '100478' => {
+ 'BaseType' => '100430',
+ 'Header' => 't2.h',
+ 'Line' => '53',
+ 'Name' => 'opj_t2_t',
+ 'Size' => '24',
+ 'Type' => 'Typedef'
+ },
+ '104418' => {
+ 'BaseType' => '100478',
+ 'Name' => 'opj_t2_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '105' => {
+ 'Name' => 'signed char',
+ 'Size' => '1',
+ 'Type' => 'Intrinsic'
+ },
+ '112' => {
+ 'Name' => 'short',
+ 'Size' => '2',
+ 'Type' => 'Intrinsic'
+ },
+ '119' => {
+ 'Name' => 'long',
+ 'Size' => '8',
+ 'Type' => 'Intrinsic'
+ },
+ '126' => {
+ 'BaseType' => '119',
+ 'Header' => 'types.h',
+ 'Line' => '131',
+ 'Name' => '__off_t',
+ 'Size' => '8',
+ 'Type' => 'Typedef'
+ },
+ '137' => {
+ 'BaseType' => '119',
+ 'Header' => 'types.h',
+ 'Line' => '132',
+ 'Name' => '__off64_t',
+ 'Size' => '8',
+ 'Type' => 'Typedef'
+ },
+ '148' => {
+ 'BaseType' => '1',
+ 'Name' => 'void*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '150' => {
+ 'BaseType' => '84',
+ 'Name' => 'char*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '170' => {
+ 'Name' => 'float',
+ 'Size' => '4',
+ 'Type' => 'Intrinsic'
+ },
+ '17086' => {
+ 'Header' => 'openjpeg.h',
+ 'Line' => '498',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'dx',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'dy',
+ 'offset' => '4',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'w',
+ 'offset' => '8',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'h',
+ 'offset' => '12',
+ 'type' => '77'
+ },
+ '4' => {
+ 'name' => 'x0',
+ 'offset' => '16',
+ 'type' => '77'
+ },
+ '5' => {
+ 'name' => 'y0',
+ 'offset' => '20',
+ 'type' => '77'
+ },
+ '6' => {
+ 'name' => 'prec',
+ 'offset' => '24',
+ 'type' => '77'
+ },
+ '7' => {
+ 'name' => 'bpp',
+ 'offset' => '28',
+ 'type' => '77'
+ },
+ '8' => {
+ 'name' => 'sgnd',
+ 'offset' => '32',
+ 'type' => '77'
+ }
+ },
+ 'Name' => 'struct opj_image_comptparm',
+ 'Size' => '36',
+ 'Type' => 'Struct'
+ },
+ '17209' => {
+ 'BaseType' => '17086',
+ 'Header' => 'openjpeg.h',
+ 'Line' => '517',
+ 'Name' => 'opj_image_cmptparm_t',
+ 'Size' => '36',
+ 'Type' => 'Typedef'
+ },
+ '17635' => {
+ 'BaseType' => '17209',
+ 'Name' => 'opj_image_cmptparm_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '177' => {
+ 'Name' => 'double',
+ 'Size' => '8',
+ 'Type' => 'Intrinsic'
+ },
+ '17905' => {
+ 'BaseType' => '184',
+ 'Header' => 'stdio.h',
+ 'Line' => '48',
+ 'Name' => 'FILE',
+ 'Size' => '216',
+ 'Type' => 'Typedef'
+ },
+ '184' => {
+ 'Header' => 'libio.h',
+ 'Line' => '245',
+ 'Memb' => {
+ '0' => {
+ 'name' => '_flags',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => '_IO_read_ptr',
+ 'offset' => '8',
+ 'type' => '150'
+ },
+ '10' => {
+ 'name' => '_IO_backup_base',
+ 'offset' => '80',
+ 'type' => '150'
+ },
+ '11' => {
+ 'name' => '_IO_save_end',
+ 'offset' => '88',
+ 'type' => '150'
+ },
+ '12' => {
+ 'name' => '_markers',
+ 'offset' => '96',
+ 'type' => '624'
+ },
+ '13' => {
+ 'name' => '_chain',
+ 'offset' => '104',
+ 'type' => '630'
+ },
+ '14' => {
+ 'name' => '_fileno',
+ 'offset' => '112',
+ 'type' => '77'
+ },
+ '15' => {
+ 'name' => '_flags2',
+ 'offset' => '116',
+ 'type' => '77'
+ },
+ '16' => {
+ 'name' => '_old_offset',
+ 'offset' => '120',
+ 'type' => '126'
+ },
+ '17' => {
+ 'name' => '_cur_column',
+ 'offset' => '128',
+ 'type' => '70'
+ },
+ '18' => {
+ 'name' => '_vtable_offset',
+ 'offset' => '130',
+ 'type' => '105'
+ },
+ '19' => {
+ 'name' => '_shortbuf',
+ 'offset' => '131',
+ 'type' => '636'
+ },
+ '2' => {
+ 'name' => '_IO_read_end',
+ 'offset' => '16',
+ 'type' => '150'
+ },
+ '20' => {
+ 'name' => '_lock',
+ 'offset' => '136',
+ 'type' => '652'
+ },
+ '21' => {
+ 'name' => '_offset',
+ 'offset' => '144',
+ 'type' => '137'
+ },
+ '22' => {
+ 'name' => '__pad1',
+ 'offset' => '152',
+ 'type' => '148'
+ },
+ '23' => {
+ 'name' => '__pad2',
+ 'offset' => '160',
+ 'type' => '148'
+ },
+ '24' => {
+ 'name' => '__pad3',
+ 'offset' => '168',
+ 'type' => '148'
+ },
+ '25' => {
+ 'name' => '__pad4',
+ 'offset' => '176',
+ 'type' => '148'
+ },
+ '26' => {
+ 'name' => '__pad5',
+ 'offset' => '184',
+ 'type' => '45'
+ },
+ '27' => {
+ 'name' => '_mode',
+ 'offset' => '192',
+ 'type' => '77'
+ },
+ '28' => {
+ 'name' => '_unused2',
+ 'offset' => '196',
+ 'type' => '658'
+ },
+ '3' => {
+ 'name' => '_IO_read_base',
+ 'offset' => '24',
+ 'type' => '150'
+ },
+ '4' => {
+ 'name' => '_IO_write_base',
+ 'offset' => '32',
+ 'type' => '150'
+ },
+ '5' => {
+ 'name' => '_IO_write_ptr',
+ 'offset' => '40',
+ 'type' => '150'
+ },
+ '6' => {
+ 'name' => '_IO_write_end',
+ 'offset' => '48',
+ 'type' => '150'
+ },
+ '7' => {
+ 'name' => '_IO_buf_base',
+ 'offset' => '56',
+ 'type' => '150'
+ },
+ '8' => {
+ 'name' => '_IO_buf_end',
+ 'offset' => '64',
+ 'type' => '150'
+ },
+ '9' => {
+ 'name' => '_IO_save_base',
+ 'offset' => '72',
+ 'type' => '150'
+ }
+ },
+ 'Name' => 'struct _IO_FILE',
+ 'PrivateABI' => 1,
+ 'Size' => '216',
+ 'Type' => 'Struct'
+ },
+ '1858' => {
+ 'BaseType' => '1864',
+ 'Name' => 'char const*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '1864' => {
+ 'BaseType' => '84',
+ 'Name' => 'char const',
+ 'Size' => '1',
+ 'Type' => 'Const'
+ },
+ '18775' => {
+ 'Header' => 'openjpeg.h',
+ 'Line' => '198',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'tile_size_on',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'cp_tx0',
+ 'offset' => '4',
+ 'type' => '77'
+ },
+ '10' => {
+ 'name' => 'csty',
+ 'offset' => '48',
+ 'type' => '77'
+ },
+ '11' => {
+ 'name' => 'prog_order',
+ 'offset' => '52',
+ 'type' => '2530'
+ },
+ '12' => {
+ 'name' => 'POC',
+ 'offset' => '56',
+ 'type' => '2850'
+ },
+ '13' => {
+ 'name' => 'numpocs',
+ 'offset' => '1080',
+ 'type' => '77'
+ },
+ '14' => {
+ 'name' => 'tcp_numlayers',
+ 'offset' => '1084',
+ 'type' => '77'
+ },
+ '15' => {
+ 'name' => 'tcp_rates',
+ 'offset' => '1088',
+ 'type' => '2866'
+ },
+ '16' => {
+ 'name' => 'tcp_distoratio',
+ 'offset' => '1488',
+ 'type' => '2866'
+ },
+ '17' => {
+ 'name' => 'numresolution',
+ 'offset' => '1888',
+ 'type' => '77'
+ },
+ '18' => {
+ 'name' => 'cblockw_init',
+ 'offset' => '1892',
+ 'type' => '77'
+ },
+ '19' => {
+ 'name' => 'cblockh_init',
+ 'offset' => '1896',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'cp_ty0',
+ 'offset' => '8',
+ 'type' => '77'
+ },
+ '20' => {
+ 'name' => 'mode',
+ 'offset' => '1900',
+ 'type' => '77'
+ },
+ '21' => {
+ 'name' => 'irreversible',
+ 'offset' => '1904',
+ 'type' => '77'
+ },
+ '22' => {
+ 'name' => 'roi_compno',
+ 'offset' => '1908',
+ 'type' => '77'
+ },
+ '23' => {
+ 'name' => 'roi_shift',
+ 'offset' => '1912',
+ 'type' => '77'
+ },
+ '24' => {
+ 'name' => 'res_spec',
+ 'offset' => '1916',
+ 'type' => '77'
+ },
+ '25' => {
+ 'name' => 'prcw_init',
+ 'offset' => '1920',
+ 'type' => '2882'
+ },
+ '26' => {
+ 'name' => 'prch_init',
+ 'offset' => '2052',
+ 'type' => '2882'
+ },
+ '27' => {
+ 'name' => 'infile',
+ 'offset' => '2184',
+ 'type' => '19315'
+ },
+ '28' => {
+ 'name' => 'outfile',
+ 'offset' => '6280',
+ 'type' => '19315'
+ },
+ '29' => {
+ 'name' => 'index_on',
+ 'offset' => '10376',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'cp_tdx',
+ 'offset' => '12',
+ 'type' => '77'
+ },
+ '30' => {
+ 'name' => 'index',
+ 'offset' => '10380',
+ 'type' => '19315'
+ },
+ '31' => {
+ 'name' => 'image_offset_x0',
+ 'offset' => '14476',
+ 'type' => '77'
+ },
+ '32' => {
+ 'name' => 'image_offset_y0',
+ 'offset' => '14480',
+ 'type' => '77'
+ },
+ '33' => {
+ 'name' => 'subsampling_dx',
+ 'offset' => '14484',
+ 'type' => '77'
+ },
+ '34' => {
+ 'name' => 'subsampling_dy',
+ 'offset' => '14488',
+ 'type' => '77'
+ },
+ '35' => {
+ 'name' => 'decod_format',
+ 'offset' => '14492',
+ 'type' => '77'
+ },
+ '36' => {
+ 'name' => 'cod_format',
+ 'offset' => '14496',
+ 'type' => '77'
+ },
+ '4' => {
+ 'name' => 'cp_tdy',
+ 'offset' => '16',
+ 'type' => '77'
+ },
+ '5' => {
+ 'name' => 'cp_disto_alloc',
+ 'offset' => '20',
+ 'type' => '77'
+ },
+ '6' => {
+ 'name' => 'cp_fixed_alloc',
+ 'offset' => '24',
+ 'type' => '77'
+ },
+ '7' => {
+ 'name' => 'cp_fixed_quality',
+ 'offset' => '28',
+ 'type' => '77'
+ },
+ '8' => {
+ 'name' => 'cp_matrice',
+ 'offset' => '32',
+ 'type' => '1941'
+ },
+ '9' => {
+ 'name' => 'cp_comment',
+ 'offset' => '40',
+ 'type' => '150'
+ }
+ },
+ 'Name' => 'struct opj_cparameters',
+ 'Size' => '14504',
+ 'Type' => 'Struct'
+ },
+ '19315' => {
+ 'BaseType' => '84',
+ 'Name' => 'char[4096]',
+ 'Size' => '4096',
+ 'Type' => 'Array'
+ },
+ '19332' => {
+ 'BaseType' => '18775',
+ 'Header' => 'openjpeg.h',
+ 'Line' => '312',
+ 'Name' => 'opj_cparameters_t',
+ 'Size' => '14504',
+ 'Type' => 'Typedef'
+ },
+ '19344' => {
+ 'Header' => 'openjpeg.h',
+ 'Line' => '317',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'cp_reduce',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'cp_layer',
+ 'offset' => '4',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'infile',
+ 'offset' => '8',
+ 'type' => '19315'
+ },
+ '3' => {
+ 'name' => 'outfile',
+ 'offset' => '4104',
+ 'type' => '19315'
+ },
+ '4' => {
+ 'name' => 'decod_format',
+ 'offset' => '8200',
+ 'type' => '77'
+ },
+ '5' => {
+ 'name' => 'cod_format',
+ 'offset' => '8204',
+ 'type' => '77'
+ }
+ },
+ 'Name' => 'struct opj_dparameters',
+ 'Size' => '8208',
+ 'Type' => 'Struct'
+ },
+ '1941' => {
+ 'BaseType' => '77',
+ 'Name' => 'int*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '19440' => {
+ 'BaseType' => '19344',
+ 'Header' => 'openjpeg.h',
+ 'Line' => '359',
+ 'Name' => 'opj_dparameters_t',
+ 'Size' => '8208',
+ 'Type' => 'Typedef'
+ },
+ '1954' => {
+ 'BaseType' => '84',
+ 'Name' => 'char[4]',
+ 'Size' => '4',
+ 'Type' => 'Array'
+ },
+ '21609' => {
+ 'Header' => 'jpt.h',
+ 'Line' => '42',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'Id',
+ 'offset' => '0',
+ 'type' => '98'
+ },
+ '1' => {
+ 'name' => 'last_byte',
+ 'offset' => '4',
+ 'type' => '98'
+ },
+ '2' => {
+ 'name' => 'Class_Id',
+ 'offset' => '8',
+ 'type' => '98'
+ },
+ '3' => {
+ 'name' => 'CSn_Id',
+ 'offset' => '12',
+ 'type' => '98'
+ },
+ '4' => {
+ 'name' => 'Msg_offset',
+ 'offset' => '16',
+ 'type' => '98'
+ },
+ '5' => {
+ 'name' => 'Msg_length',
+ 'offset' => '20',
+ 'type' => '98'
+ },
+ '6' => {
+ 'name' => 'Layer_nb',
+ 'offset' => '24',
+ 'type' => '98'
+ }
+ },
+ 'Name' => 'struct opj_jpt_msg_header',
+ 'Size' => '28',
+ 'Type' => 'Struct'
+ },
+ '21705' => {
+ 'BaseType' => '21609',
+ 'Header' => 'jpt.h',
+ 'Line' => '57',
+ 'Name' => 'opj_jpt_msg_header_t',
+ 'Size' => '28',
+ 'Type' => 'Typedef'
+ },
+ '22907' => {
+ 'Header' => 'tcd.h',
+ 'Line' => '140',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'x0',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'y0',
+ 'offset' => '4',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'x1',
+ 'offset' => '8',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'y1',
+ 'offset' => '12',
+ 'type' => '77'
+ },
+ '4' => {
+ 'name' => 'numcomps',
+ 'offset' => '16',
+ 'type' => '77'
+ },
+ '5' => {
+ 'name' => 'comps',
+ 'offset' => '24',
+ 'type' => '8470'
+ },
+ '6' => {
+ 'name' => 'nbpix',
+ 'offset' => '32',
+ 'type' => '77'
+ },
+ '7' => {
+ 'name' => 'distotile',
+ 'offset' => '40',
+ 'type' => '177'
+ },
+ '8' => {
+ 'name' => 'distolayer',
+ 'offset' => '48',
+ 'type' => '23031'
+ }
+ },
+ 'Name' => 'struct opj_tcd_tile',
+ 'Size' => '848',
+ 'Type' => 'Struct'
+ },
+ '23031' => {
+ 'BaseType' => '177',
+ 'Name' => 'double[100]',
+ 'Size' => '800',
+ 'Type' => 'Array'
+ },
+ '23047' => {
+ 'BaseType' => '22907',
+ 'Header' => 'tcd.h',
+ 'Line' => '147',
+ 'Name' => 'opj_tcd_tile_t',
+ 'Size' => '848',
+ 'Type' => 'Typedef'
+ },
+ '23058' => {
+ 'Header' => 'tcd.h',
+ 'Line' => '152',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'tw',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'th',
+ 'offset' => '4',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'tiles',
+ 'offset' => '8',
+ 'type' => '23105'
+ }
+ },
+ 'Name' => 'struct opj_tcd_image',
+ 'Size' => '16',
+ 'Type' => 'Struct'
+ },
+ '23105' => {
+ 'BaseType' => '23047',
+ 'Name' => 'opj_tcd_tile_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '23111' => {
+ 'BaseType' => '23058',
+ 'Header' => 'tcd.h',
+ 'Line' => '155',
+ 'Name' => 'opj_tcd_image_t',
+ 'Size' => '16',
+ 'Type' => 'Typedef'
+ },
+ '23122' => {
+ 'Header' => 'tcd.h',
+ 'Line' => '160',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'cinfo',
+ 'offset' => '0',
+ 'type' => '3008'
+ },
+ '1' => {
+ 'name' => 'tcd_image',
+ 'offset' => '8',
+ 'type' => '23218'
+ },
+ '2' => {
+ 'name' => 'image',
+ 'offset' => '16',
+ 'type' => '4957'
+ },
+ '3' => {
+ 'name' => 'cp',
+ 'offset' => '24',
+ 'type' => '4963'
+ },
+ '4' => {
+ 'name' => 'tcd_tile',
+ 'offset' => '32',
+ 'type' => '23105'
+ },
+ '5' => {
+ 'name' => 'tcp',
+ 'offset' => '40',
+ 'type' => '4198'
+ },
+ '6' => {
+ 'name' => 'tcd_tileno',
+ 'offset' => '48',
+ 'type' => '77'
+ }
+ },
+ 'Name' => 'struct opj_tcd',
+ 'Size' => '56',
+ 'Type' => 'Struct'
+ },
+ '23218' => {
+ 'BaseType' => '23111',
+ 'Name' => 'opj_tcd_image_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '23224' => {
+ 'BaseType' => '23122',
+ 'Header' => 'tcd.h',
+ 'Line' => '176',
+ 'Name' => 'opj_tcd_t',
+ 'Size' => '56',
+ 'Type' => 'Typedef'
+ },
+ '2481' => {
+ 'Header' => 'openjpeg.h',
+ 'Line' => '117',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'PROG_UNKNOWN',
+ 'value' => '-1'
+ },
+ '1' => {
+ 'name' => 'LRCP',
+ 'value' => '0'
+ },
+ '2' => {
+ 'name' => 'RLCP',
+ 'value' => '1'
+ },
+ '3' => {
+ 'name' => 'RPCL',
+ 'value' => '2'
+ },
+ '4' => {
+ 'name' => 'PCRL',
+ 'value' => '3'
+ },
+ '5' => {
+ 'name' => 'CPRL',
+ 'value' => '4'
+ }
+ },
+ 'Name' => 'enum PROG_ORDER',
+ 'Size' => '4',
+ 'Type' => 'Enum'
+ },
+ '2530' => {
+ 'BaseType' => '2481',
+ 'Header' => 'openjpeg.h',
+ 'Line' => '124',
+ 'Name' => 'OPJ_PROG_ORDER',
+ 'Size' => '4',
+ 'Type' => 'Typedef'
+ },
+ '2541' => {
+ 'Header' => 'openjpeg.h',
+ 'Line' => '129',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'CLRSPC_UNKNOWN',
+ 'value' => '-1'
+ },
+ '1' => {
+ 'name' => 'CLRSPC_SRGB',
+ 'value' => '1'
+ },
+ '2' => {
+ 'name' => 'CLRSPC_GRAY',
+ 'value' => '2'
+ },
+ '3' => {
+ 'name' => 'CLRSPC_SYCC',
+ 'value' => '3'
+ }
+ },
+ 'Name' => 'enum COLOR_SPACE',
+ 'Size' => '4',
+ 'Type' => 'Enum'
+ },
+ '2578' => {
+ 'BaseType' => '2541',
+ 'Header' => 'openjpeg.h',
+ 'Line' => '134',
+ 'Name' => 'OPJ_COLOR_SPACE',
+ 'Size' => '4',
+ 'Type' => 'Typedef'
+ },
+ '2589' => {
+ 'Header' => 'openjpeg.h',
+ 'Line' => '139',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'CODEC_UNKNOWN',
+ 'value' => '-1'
+ },
+ '1' => {
+ 'name' => 'CODEC_J2K',
+ 'value' => '0'
+ },
+ '2' => {
+ 'name' => 'CODEC_JPT',
+ 'value' => '1'
+ },
+ '3' => {
+ 'name' => 'CODEC_JP2',
+ 'value' => '2'
+ }
+ },
+ 'Name' => 'enum CODEC_FORMAT',
+ 'Size' => '4',
+ 'Type' => 'Enum'
+ },
+ '2626' => {
+ 'BaseType' => '2589',
+ 'Header' => 'openjpeg.h',
+ 'Line' => '144',
+ 'Name' => 'OPJ_CODEC_FORMAT',
+ 'Size' => '4',
+ 'Type' => 'Typedef'
+ },
+ '2637' => {
+ 'BaseType' => '2648',
+ 'Header' => 'openjpeg.h',
+ 'Line' => '157',
+ 'Name' => 'opj_msg_callback',
+ 'Size' => '8',
+ 'Type' => 'Typedef'
+ },
+ '2648' => {
+ 'Name' => 'void(*)(char const*, void*)',
+ 'Param' => {
+ '0' => {
+ 'type' => '1858'
+ },
+ '1' => {
+ 'type' => '148'
+ }
+ },
+ 'Return' => '1',
+ 'Size' => '8',
+ 'Type' => 'FuncPtr'
+ },
+ '2670' => {
+ 'Header' => 'openjpeg.h',
+ 'Line' => '168',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'error_handler',
+ 'offset' => '0',
+ 'type' => '2637'
+ },
+ '1' => {
+ 'name' => 'warning_handler',
+ 'offset' => '8',
+ 'type' => '2637'
+ },
+ '2' => {
+ 'name' => 'info_handler',
+ 'offset' => '16',
+ 'type' => '2637'
+ }
+ },
+ 'Name' => 'struct opj_event_mgr',
+ 'Size' => '24',
+ 'Type' => 'Struct'
+ },
+ '2719' => {
+ 'BaseType' => '2670',
+ 'Header' => 'openjpeg.h',
+ 'Line' => '175',
+ 'Name' => 'opj_event_mgr_t',
+ 'Size' => '24',
+ 'Type' => 'Typedef'
+ },
+ '2730' => {
+ 'Header' => 'openjpeg.h',
+ 'Line' => '187',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'resno0',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'compno0',
+ 'offset' => '4',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'layno1',
+ 'offset' => '8',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'resno1',
+ 'offset' => '12',
+ 'type' => '77'
+ },
+ '4' => {
+ 'name' => 'compno1',
+ 'offset' => '16',
+ 'type' => '77'
+ },
+ '5' => {
+ 'name' => 'prg',
+ 'offset' => '20',
+ 'type' => '2530'
+ },
+ '6' => {
+ 'name' => 'tile',
+ 'offset' => '24',
+ 'type' => '77'
+ },
+ '7' => {
+ 'name' => 'progorder',
+ 'offset' => '28',
+ 'type' => '1954'
+ }
+ },
+ 'Name' => 'struct opj_poc',
+ 'Size' => '32',
+ 'Type' => 'Struct'
+ },
+ '2839' => {
+ 'BaseType' => '2730',
+ 'Header' => 'openjpeg.h',
+ 'Line' => '193',
+ 'Name' => 'opj_poc_t',
+ 'Size' => '32',
+ 'Type' => 'Typedef'
+ },
+ '2850' => {
+ 'BaseType' => '2839',
+ 'Name' => 'opj_poc_t[32]',
+ 'Size' => '1024',
+ 'Type' => 'Array'
+ },
+ '2866' => {
+ 'BaseType' => '170',
+ 'Name' => 'float[100]',
+ 'Size' => '400',
+ 'Type' => 'Array'
+ },
+ '2882' => {
+ 'BaseType' => '77',
+ 'Name' => 'int[33]',
+ 'Size' => '132',
+ 'Type' => 'Array'
+ },
+ '28919' => {
+ 'BaseType' => '23224',
+ 'Name' => 'opj_tcd_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '2898' => {
+ 'Header' => 'openjpeg.h',
+ 'Line' => '375',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'event_mgr',
+ 'offset' => '0',
+ 'type' => '2990'
+ },
+ '1' => {
+ 'name' => 'client_data',
+ 'offset' => '8',
+ 'type' => '148'
+ },
+ '2' => {
+ 'name' => 'is_decompressor',
+ 'offset' => '16',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'codec_format',
+ 'offset' => '20',
+ 'type' => '2626'
+ },
+ '4' => {
+ 'name' => 'j2k_handle',
+ 'offset' => '24',
+ 'type' => '148'
+ },
+ '5' => {
+ 'name' => 'jp2_handle',
+ 'offset' => '32',
+ 'type' => '148'
+ }
+ },
+ 'Name' => 'struct opj_common_struct',
+ 'Size' => '40',
+ 'Type' => 'Struct'
+ },
+ '2990' => {
+ 'BaseType' => '2719',
+ 'Name' => 'opj_event_mgr_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '2996' => {
+ 'BaseType' => '2898',
+ 'Header' => 'openjpeg.h',
+ 'Line' => '381',
+ 'Name' => 'opj_common_struct_t',
+ 'Size' => '40',
+ 'Type' => 'Typedef'
+ },
+ '3008' => {
+ 'BaseType' => '3020',
+ 'Header' => 'openjpeg.h',
+ 'Line' => '383',
+ 'Name' => 'opj_common_ptr',
+ 'Size' => '8',
+ 'Type' => 'Typedef'
+ },
+ '3020' => {
+ 'BaseType' => '2996',
+ 'Name' => 'opj_common_struct_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '3026' => {
+ 'Header' => 'openjpeg.h',
+ 'Line' => '420',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'cinfo',
+ 'offset' => '0',
+ 'type' => '3008'
+ },
+ '1' => {
+ 'name' => 'openmode',
+ 'offset' => '8',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'buffer',
+ 'offset' => '16',
+ 'type' => '674'
+ },
+ '3' => {
+ 'name' => 'length',
+ 'offset' => '24',
+ 'type' => '77'
+ },
+ '4' => {
+ 'name' => 'start',
+ 'offset' => '32',
+ 'type' => '674'
+ },
+ '5' => {
+ 'name' => 'end',
+ 'offset' => '40',
+ 'type' => '674'
+ },
+ '6' => {
+ 'name' => 'bp',
+ 'offset' => '48',
+ 'type' => '674'
+ }
+ },
+ 'Name' => 'struct opj_cio',
+ 'Size' => '56',
+ 'Type' => 'Struct'
+ },
+ '3136' => {
+ 'BaseType' => '3026',
+ 'Header' => 'openjpeg.h',
+ 'Line' => '437',
+ 'Name' => 'opj_cio_t',
+ 'Size' => '56',
+ 'Type' => 'Typedef'
+ },
+ '3148' => {
+ 'Header' => 'openjpeg.h',
+ 'Line' => '448',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'dx',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'dy',
+ 'offset' => '4',
+ 'type' => '77'
+ },
+ '10' => {
+ 'name' => 'factor',
+ 'offset' => '40',
+ 'type' => '77'
+ },
+ '11' => {
+ 'name' => 'data',
+ 'offset' => '48',
+ 'type' => '1941'
+ },
+ '2' => {
+ 'name' => 'w',
+ 'offset' => '8',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'h',
+ 'offset' => '12',
+ 'type' => '77'
+ },
+ '4' => {
+ 'name' => 'x0',
+ 'offset' => '16',
+ 'type' => '77'
+ },
+ '5' => {
+ 'name' => 'y0',
+ 'offset' => '20',
+ 'type' => '77'
+ },
+ '6' => {
+ 'name' => 'prec',
+ 'offset' => '24',
+ 'type' => '77'
+ },
+ '7' => {
+ 'name' => 'bpp',
+ 'offset' => '28',
+ 'type' => '77'
+ },
+ '8' => {
+ 'name' => 'sgnd',
+ 'offset' => '32',
+ 'type' => '77'
+ },
+ '9' => {
+ 'name' => 'resno_decoded',
+ 'offset' => '36',
+ 'type' => '77'
+ }
+ },
+ 'Name' => 'struct opj_image_comp',
+ 'Size' => '56',
+ 'Type' => 'Struct'
+ },
+ '3310' => {
+ 'BaseType' => '3148',
+ 'Header' => 'openjpeg.h',
+ 'Line' => '473',
+ 'Name' => 'opj_image_comp_t',
+ 'Size' => '56',
+ 'Type' => 'Typedef'
+ },
+ '3322' => {
+ 'Header' => 'openjpeg.h',
+ 'Line' => '478',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'x0',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'y0',
+ 'offset' => '4',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'x1',
+ 'offset' => '8',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'y1',
+ 'offset' => '12',
+ 'type' => '77'
+ },
+ '4' => {
+ 'name' => 'numcomps',
+ 'offset' => '16',
+ 'type' => '77'
+ },
+ '5' => {
+ 'name' => 'color_space',
+ 'offset' => '20',
+ 'type' => '2578'
+ },
+ '6' => {
+ 'name' => 'comps',
+ 'offset' => '24',
+ 'type' => '3423'
+ }
+ },
+ 'Name' => 'struct opj_image',
+ 'Size' => '32',
+ 'Type' => 'Struct'
+ },
+ '3423' => {
+ 'BaseType' => '3310',
+ 'Name' => 'opj_image_comp_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '3429' => {
+ 'BaseType' => '3322',
+ 'Header' => 'openjpeg.h',
+ 'Line' => '493',
+ 'Name' => 'opj_image_t',
+ 'Size' => '32',
+ 'Type' => 'Typedef'
+ },
+ '3441' => {
+ 'Header' => 'j2k.h',
+ 'Line' => '109',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'expn',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'mant',
+ 'offset' => '4',
+ 'type' => '77'
+ }
+ },
+ 'Name' => 'struct opj_stepsize',
+ 'Size' => '8',
+ 'Type' => 'Struct'
+ },
+ '3478' => {
+ 'BaseType' => '3441',
+ 'Header' => 'j2k.h',
+ 'Line' => '114',
+ 'Name' => 'opj_stepsize_t',
+ 'Size' => '8',
+ 'Type' => 'Typedef'
+ },
+ '3489' => {
+ 'Header' => 'j2k.h',
+ 'Line' => '119',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'csty',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'numresolutions',
+ 'offset' => '4',
+ 'type' => '77'
+ },
+ '10' => {
+ 'name' => 'prcw',
+ 'offset' => '812',
+ 'type' => '2882'
+ },
+ '11' => {
+ 'name' => 'prch',
+ 'offset' => '944',
+ 'type' => '2882'
+ },
+ '2' => {
+ 'name' => 'cblkw',
+ 'offset' => '8',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'cblkh',
+ 'offset' => '12',
+ 'type' => '77'
+ },
+ '4' => {
+ 'name' => 'cblksty',
+ 'offset' => '16',
+ 'type' => '77'
+ },
+ '5' => {
+ 'name' => 'qmfbid',
+ 'offset' => '20',
+ 'type' => '77'
+ },
+ '6' => {
+ 'name' => 'qntsty',
+ 'offset' => '24',
+ 'type' => '77'
+ },
+ '7' => {
+ 'name' => 'stepsizes',
+ 'offset' => '28',
+ 'type' => '3651'
+ },
+ '8' => {
+ 'name' => 'numgbits',
+ 'offset' => '804',
+ 'type' => '77'
+ },
+ '9' => {
+ 'name' => 'roishift',
+ 'offset' => '808',
+ 'type' => '77'
+ }
+ },
+ 'Name' => 'struct opj_tccp',
+ 'Size' => '1076',
+ 'Type' => 'Struct'
+ },
+ '3651' => {
+ 'BaseType' => '3478',
+ 'Name' => 'opj_stepsize_t[97]',
+ 'Size' => '776',
+ 'Type' => 'Array'
+ },
+ '3667' => {
+ 'BaseType' => '3489',
+ 'Header' => 'j2k.h',
+ 'Line' => '144',
+ 'Name' => 'opj_tccp_t',
+ 'Size' => '1076',
+ 'Type' => 'Typedef'
+ },
+ '3678' => {
+ 'Header' => 'j2k.h',
+ 'Line' => '151',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'first',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'csty',
+ 'offset' => '4',
+ 'type' => '77'
+ },
+ '10' => {
+ 'name' => 'ppt_data_first',
+ 'offset' => '1464',
+ 'type' => '674'
+ },
+ '11' => {
+ 'name' => 'ppt',
+ 'offset' => '1472',
+ 'type' => '77'
+ },
+ '12' => {
+ 'name' => 'ppt_store',
+ 'offset' => '1476',
+ 'type' => '77'
+ },
+ '13' => {
+ 'name' => 'ppt_len',
+ 'offset' => '1480',
+ 'type' => '77'
+ },
+ '14' => {
+ 'name' => 'distoratio',
+ 'offset' => '1484',
+ 'type' => '2866'
+ },
+ '15' => {
+ 'name' => 'tccps',
+ 'offset' => '1888',
+ 'type' => '3894'
+ },
+ '2' => {
+ 'name' => 'prg',
+ 'offset' => '8',
+ 'type' => '2530'
+ },
+ '3' => {
+ 'name' => 'numlayers',
+ 'offset' => '12',
+ 'type' => '77'
+ },
+ '4' => {
+ 'name' => 'mct',
+ 'offset' => '16',
+ 'type' => '77'
+ },
+ '5' => {
+ 'name' => 'rates',
+ 'offset' => '20',
+ 'type' => '2866'
+ },
+ '6' => {
+ 'name' => 'numpocs',
+ 'offset' => '420',
+ 'type' => '77'
+ },
+ '7' => {
+ 'name' => 'POC',
+ 'offset' => '424',
+ 'type' => '77'
+ },
+ '8' => {
+ 'name' => 'pocs',
+ 'offset' => '428',
+ 'type' => '2850'
+ },
+ '9' => {
+ 'name' => 'ppt_data',
+ 'offset' => '1456',
+ 'type' => '674'
+ }
+ },
+ 'Name' => 'struct opj_tcp',
+ 'Size' => '1896',
+ 'Type' => 'Struct'
+ },
+ '37321' => {
+ 'BaseType' => '17905',
+ 'Name' => 'FILE*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '3894' => {
+ 'BaseType' => '3667',
+ 'Name' => 'opj_tccp_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '3900' => {
+ 'BaseType' => '3678',
+ 'Header' => 'j2k.h',
+ 'Line' => '184',
+ 'Name' => 'opj_tcp_t',
+ 'Size' => '1896',
+ 'Type' => 'Typedef'
+ },
+ '3911' => {
+ 'Header' => 'j2k.h',
+ 'Line' => '189',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'disto_alloc',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'fixed_alloc',
+ 'offset' => '4',
+ 'type' => '77'
+ },
+ '10' => {
+ 'name' => 'comment',
+ 'offset' => '40',
+ 'type' => '150'
+ },
+ '11' => {
+ 'name' => 'tw',
+ 'offset' => '48',
+ 'type' => '77'
+ },
+ '12' => {
+ 'name' => 'th',
+ 'offset' => '52',
+ 'type' => '77'
+ },
+ '13' => {
+ 'name' => 'tileno',
+ 'offset' => '56',
+ 'type' => '1941'
+ },
+ '14' => {
+ 'name' => 'tileno_size',
+ 'offset' => '64',
+ 'type' => '77'
+ },
+ '15' => {
+ 'name' => 'ppm_data',
+ 'offset' => '72',
+ 'type' => '674'
+ },
+ '16' => {
+ 'name' => 'ppm_data_first',
+ 'offset' => '80',
+ 'type' => '674'
+ },
+ '17' => {
+ 'name' => 'ppm',
+ 'offset' => '88',
+ 'type' => '77'
+ },
+ '18' => {
+ 'name' => 'ppm_store',
+ 'offset' => '92',
+ 'type' => '77'
+ },
+ '19' => {
+ 'name' => 'ppm_previous',
+ 'offset' => '96',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'fixed_quality',
+ 'offset' => '8',
+ 'type' => '77'
+ },
+ '20' => {
+ 'name' => 'ppm_len',
+ 'offset' => '100',
+ 'type' => '77'
+ },
+ '21' => {
+ 'name' => 'tcps',
+ 'offset' => '104',
+ 'type' => '4198'
+ },
+ '22' => {
+ 'name' => 'matrice',
+ 'offset' => '112',
+ 'type' => '1941'
+ },
+ '3' => {
+ 'name' => 'reduce',
+ 'offset' => '12',
+ 'type' => '77'
+ },
+ '4' => {
+ 'name' => 'layer',
+ 'offset' => '16',
+ 'type' => '77'
+ },
+ '5' => {
+ 'name' => 'index_on',
+ 'offset' => '20',
+ 'type' => '77'
+ },
+ '6' => {
+ 'name' => 'tx0',
+ 'offset' => '24',
+ 'type' => '77'
+ },
+ '7' => {
+ 'name' => 'ty0',
+ 'offset' => '28',
+ 'type' => '77'
+ },
+ '8' => {
+ 'name' => 'tdx',
+ 'offset' => '32',
+ 'type' => '77'
+ },
+ '9' => {
+ 'name' => 'tdy',
+ 'offset' => '36',
+ 'type' => '77'
+ }
+ },
+ 'Name' => 'struct opj_cp',
+ 'Size' => '120',
+ 'Type' => 'Struct'
+ },
+ '39891' => {
+ 'BaseType' => '19440',
+ 'Name' => 'opj_dparameters_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '4198' => {
+ 'BaseType' => '3900',
+ 'Name' => 'opj_tcp_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '4204' => {
+ 'BaseType' => '3911',
+ 'Header' => 'j2k.h',
+ 'Line' => '280',
+ 'Name' => 'opj_cp_t',
+ 'Size' => '120',
+ 'Type' => 'Typedef'
+ },
+ '4216' => {
+ 'Header' => 'j2k.h',
+ 'Line' => '285',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'start_pos',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'end_pos',
+ 'offset' => '4',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'disto',
+ 'offset' => '8',
+ 'type' => '177'
+ }
+ },
+ 'Name' => 'struct opj_packet_info',
+ 'Size' => '16',
+ 'Type' => 'Struct'
+ },
+ '42205' => {
+ 'BaseType' => '19332',
+ 'Name' => 'opj_cparameters_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '4269' => {
+ 'BaseType' => '4216',
+ 'Header' => 'j2k.h',
+ 'Line' => '292',
+ 'Name' => 'opj_packet_info_t',
+ 'Size' => '16',
+ 'Type' => 'Typedef'
+ },
+ '4281' => {
+ 'Header' => 'j2k.h',
+ 'Line' => '297',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'thresh',
+ 'offset' => '0',
+ 'type' => '4455'
+ },
+ '1' => {
+ 'name' => 'num_tile',
+ 'offset' => '8',
+ 'type' => '77'
+ },
+ '10' => {
+ 'name' => 'nbpix',
+ 'offset' => '560',
+ 'type' => '77'
+ },
+ '11' => {
+ 'name' => 'distotile',
+ 'offset' => '568',
+ 'type' => '177'
+ },
+ '2' => {
+ 'name' => 'start_pos',
+ 'offset' => '12',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'end_header',
+ 'offset' => '16',
+ 'type' => '77'
+ },
+ '4' => {
+ 'name' => 'end_pos',
+ 'offset' => '20',
+ 'type' => '77'
+ },
+ '5' => {
+ 'name' => 'pw',
+ 'offset' => '24',
+ 'type' => '2882'
+ },
+ '6' => {
+ 'name' => 'ph',
+ 'offset' => '156',
+ 'type' => '2882'
+ },
+ '7' => {
+ 'name' => 'pdx',
+ 'offset' => '288',
+ 'type' => '2882'
+ },
+ '8' => {
+ 'name' => 'pdy',
+ 'offset' => '420',
+ 'type' => '2882'
+ },
+ '9' => {
+ 'name' => 'packet',
+ 'offset' => '552',
+ 'type' => '4461'
+ }
+ },
+ 'Name' => 'struct opj_tile_info',
+ 'Size' => '576',
+ 'Type' => 'Struct'
+ },
+ '43850' => {
+ 'BaseType' => '21705',
+ 'Name' => 'opj_jpt_msg_header_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '4455' => {
+ 'BaseType' => '177',
+ 'Name' => 'double*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '4461' => {
+ 'BaseType' => '4269',
+ 'Name' => 'opj_packet_info_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '4467' => {
+ 'BaseType' => '4281',
+ 'Header' => 'j2k.h',
+ 'Line' => '322',
+ 'Name' => 'opj_tile_info_t',
+ 'Size' => '576',
+ 'Type' => 'Typedef'
+ },
+ '4479' => {
+ 'Header' => 'j2k.h',
+ 'Line' => '327',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'index_on',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'D_max',
+ 'offset' => '8',
+ 'type' => '177'
+ },
+ '10' => {
+ 'name' => 'tile_Oy',
+ 'offset' => '48',
+ 'type' => '77'
+ },
+ '11' => {
+ 'name' => 'tw',
+ 'offset' => '52',
+ 'type' => '77'
+ },
+ '12' => {
+ 'name' => 'th',
+ 'offset' => '56',
+ 'type' => '77'
+ },
+ '13' => {
+ 'name' => 'comp',
+ 'offset' => '60',
+ 'type' => '77'
+ },
+ '14' => {
+ 'name' => 'layer',
+ 'offset' => '64',
+ 'type' => '77'
+ },
+ '15' => {
+ 'name' => 'decomposition',
+ 'offset' => '68',
+ 'type' => '77'
+ },
+ '16' => {
+ 'name' => 'main_head_end',
+ 'offset' => '72',
+ 'type' => '77'
+ },
+ '17' => {
+ 'name' => 'codestream_size',
+ 'offset' => '76',
+ 'type' => '77'
+ },
+ '18' => {
+ 'name' => 'tile',
+ 'offset' => '80',
+ 'type' => '4738'
+ },
+ '2' => {
+ 'name' => 'num',
+ 'offset' => '16',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'index_write',
+ 'offset' => '20',
+ 'type' => '77'
+ },
+ '4' => {
+ 'name' => 'image_w',
+ 'offset' => '24',
+ 'type' => '77'
+ },
+ '5' => {
+ 'name' => 'image_h',
+ 'offset' => '28',
+ 'type' => '77'
+ },
+ '6' => {
+ 'name' => 'prog',
+ 'offset' => '32',
+ 'type' => '2530'
+ },
+ '7' => {
+ 'name' => 'tile_x',
+ 'offset' => '36',
+ 'type' => '77'
+ },
+ '8' => {
+ 'name' => 'tile_y',
+ 'offset' => '40',
+ 'type' => '77'
+ },
+ '9' => {
+ 'name' => 'tile_Ox',
+ 'offset' => '44',
+ 'type' => '77'
+ }
+ },
+ 'Name' => 'struct opj_image_info',
+ 'Size' => '88',
+ 'Type' => 'Struct'
+ },
+ '45' => {
+ 'BaseType' => '56',
+ 'Header' => 'stddef.h',
+ 'Line' => '212',
+ 'Name' => 'size_t',
+ 'Size' => '8',
+ 'Type' => 'Typedef'
+ },
+ '4738' => {
+ 'BaseType' => '4467',
+ 'Name' => 'opj_tile_info_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '4744' => {
+ 'BaseType' => '4479',
+ 'Header' => 'j2k.h',
+ 'Line' => '366',
+ 'Name' => 'opj_image_info_t',
+ 'Size' => '88',
+ 'Type' => 'Typedef'
+ },
+ '4756' => {
+ 'Header' => 'j2k.h',
+ 'Line' => '371',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'cinfo',
+ 'offset' => '0',
+ 'type' => '3008'
+ },
+ '1' => {
+ 'name' => 'state',
+ 'offset' => '8',
+ 'type' => '77'
+ },
+ '10' => {
+ 'name' => 'image',
+ 'offset' => '64',
+ 'type' => '4957'
+ },
+ '11' => {
+ 'name' => 'cp',
+ 'offset' => '72',
+ 'type' => '4963'
+ },
+ '12' => {
+ 'name' => 'image_info',
+ 'offset' => '80',
+ 'type' => '4969'
+ },
+ '13' => {
+ 'name' => 'cio',
+ 'offset' => '88',
+ 'type' => '4975'
+ },
+ '2' => {
+ 'name' => 'curtileno',
+ 'offset' => '12',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'eot',
+ 'offset' => '16',
+ 'type' => '674'
+ },
+ '4' => {
+ 'name' => 'sot_start',
+ 'offset' => '24',
+ 'type' => '77'
+ },
+ '5' => {
+ 'name' => 'sod_start',
+ 'offset' => '28',
+ 'type' => '77'
+ },
+ '6' => {
+ 'name' => 'pos_correction',
+ 'offset' => '32',
+ 'type' => '77'
+ },
+ '7' => {
+ 'name' => 'tile_data',
+ 'offset' => '40',
+ 'type' => '4951'
+ },
+ '8' => {
+ 'name' => 'tile_len',
+ 'offset' => '48',
+ 'type' => '1941'
+ },
+ '9' => {
+ 'name' => 'default_tcp',
+ 'offset' => '56',
+ 'type' => '4198'
+ }
+ },
+ 'Name' => 'struct opj_j2k',
+ 'Size' => '96',
+ 'Type' => 'Struct'
+ },
+ '4951' => {
+ 'BaseType' => '674',
+ 'Name' => 'unsigned char**',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '4957' => {
+ 'BaseType' => '3429',
+ 'Name' => 'opj_image_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '4963' => {
+ 'BaseType' => '4204',
+ 'Name' => 'opj_cp_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '4969' => {
+ 'BaseType' => '4744',
+ 'Name' => 'opj_image_info_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '4975' => {
+ 'BaseType' => '3136',
+ 'Name' => 'opj_cio_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '4981' => {
+ 'BaseType' => '4756',
+ 'Header' => 'j2k.h',
+ 'Line' => '412',
+ 'Name' => 'opj_j2k_t',
+ 'Size' => '96',
+ 'Type' => 'Typedef'
+ },
+ '4993' => {
+ 'Header' => 'jp2.h',
+ 'Line' => '58',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'depth',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'sgnd',
+ 'offset' => '4',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'bpcc',
+ 'offset' => '8',
+ 'type' => '77'
+ }
+ },
+ 'Name' => 'struct opj_jp2_comps',
+ 'Size' => '12',
+ 'Type' => 'Struct'
+ },
+ '5042' => {
+ 'BaseType' => '4993',
+ 'Header' => 'jp2.h',
+ 'Line' => '62',
+ 'Name' => 'opj_jp2_comps_t',
+ 'Size' => '12',
+ 'Type' => 'Typedef'
+ },
+ '5053' => {
+ 'Header' => 'jp2.h',
+ 'Line' => '67',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'cinfo',
+ 'offset' => '0',
+ 'type' => '3008'
+ },
+ '1' => {
+ 'name' => 'j2k',
+ 'offset' => '8',
+ 'type' => '5299'
+ },
+ '10' => {
+ 'name' => 'approx',
+ 'offset' => '48',
+ 'type' => '98'
+ },
+ '11' => {
+ 'name' => 'enumcs',
+ 'offset' => '52',
+ 'type' => '98'
+ },
+ '12' => {
+ 'name' => 'precedence',
+ 'offset' => '56',
+ 'type' => '98'
+ },
+ '13' => {
+ 'name' => 'brand',
+ 'offset' => '60',
+ 'type' => '98'
+ },
+ '14' => {
+ 'name' => 'minversion',
+ 'offset' => '64',
+ 'type' => '98'
+ },
+ '15' => {
+ 'name' => 'numcl',
+ 'offset' => '68',
+ 'type' => '98'
+ },
+ '16' => {
+ 'name' => 'cl',
+ 'offset' => '72',
+ 'type' => '5305'
+ },
+ '17' => {
+ 'name' => 'comps',
+ 'offset' => '80',
+ 'type' => '5311'
+ },
+ '18' => {
+ 'name' => 'j2k_codestream_offset',
+ 'offset' => '88',
+ 'type' => '98'
+ },
+ '19' => {
+ 'name' => 'j2k_codestream_length',
+ 'offset' => '92',
+ 'type' => '98'
+ },
+ '2' => {
+ 'name' => 'w',
+ 'offset' => '16',
+ 'type' => '98'
+ },
+ '3' => {
+ 'name' => 'h',
+ 'offset' => '20',
+ 'type' => '98'
+ },
+ '4' => {
+ 'name' => 'numcomps',
+ 'offset' => '24',
+ 'type' => '98'
+ },
+ '5' => {
+ 'name' => 'bpc',
+ 'offset' => '28',
+ 'type' => '98'
+ },
+ '6' => {
+ 'name' => 'C',
+ 'offset' => '32',
+ 'type' => '98'
+ },
+ '7' => {
+ 'name' => 'UnkC',
+ 'offset' => '36',
+ 'type' => '98'
+ },
+ '8' => {
+ 'name' => 'IPR',
+ 'offset' => '40',
+ 'type' => '98'
+ },
+ '9' => {
+ 'name' => 'meth',
+ 'offset' => '44',
+ 'type' => '98'
+ }
+ },
+ 'Name' => 'struct opj_jp2',
+ 'Size' => '96',
+ 'Type' => 'Struct'
+ },
+ '50645' => {
+ 'BaseType' => '5317',
+ 'Name' => 'opj_jp2_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '5299' => {
+ 'BaseType' => '4981',
+ 'Name' => 'opj_j2k_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '5305' => {
+ 'BaseType' => '98',
+ 'Name' => 'unsigned int*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '5311' => {
+ 'BaseType' => '5042',
+ 'Name' => 'opj_jp2_comps_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '5317' => {
+ 'BaseType' => '5053',
+ 'Header' => 'jp2.h',
+ 'Line' => '90',
+ 'Name' => 'opj_jp2_t',
+ 'Size' => '96',
+ 'Type' => 'Typedef'
+ },
+ '56' => {
+ 'Name' => 'unsigned long',
+ 'Size' => '8',
+ 'Type' => 'Intrinsic'
+ },
+ '568' => {
+ 'Header' => 'libio.h',
+ 'Line' => '154',
+ 'Name' => '_IO_lock_t',
+ 'Type' => 'Typedef'
+ },
+ '575' => {
+ 'Header' => 'libio.h',
+ 'Line' => '160',
+ 'Memb' => {
+ '0' => {
+ 'name' => '_next',
+ 'offset' => '0',
+ 'type' => '624'
+ },
+ '1' => {
+ 'name' => '_sbuf',
+ 'offset' => '8',
+ 'type' => '630'
+ },
+ '2' => {
+ 'name' => '_pos',
+ 'offset' => '16',
+ 'type' => '77'
+ }
+ },
+ 'Name' => 'struct _IO_marker',
+ 'PrivateABI' => 1,
+ 'Size' => '24',
+ 'Type' => 'Struct'
+ },
+ '624' => {
+ 'BaseType' => '575',
+ 'Name' => 'struct _IO_marker*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '62470' => {
+ 'Header' => 'mqc.h',
+ 'Line' => '48',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'qeval',
+ 'offset' => '0',
+ 'type' => '98'
+ },
+ '1' => {
+ 'name' => 'mps',
+ 'offset' => '4',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'nmps',
+ 'offset' => '8',
+ 'type' => '62531'
+ },
+ '3' => {
+ 'name' => 'nlps',
+ 'offset' => '16',
+ 'type' => '62531'
+ }
+ },
+ 'Name' => 'struct opj_mqc_state',
+ 'Size' => '24',
+ 'Type' => 'Struct'
+ },
+ '62531' => {
+ 'BaseType' => '62470',
+ 'Name' => 'struct opj_mqc_state*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '62537' => {
+ 'BaseType' => '62470',
+ 'Header' => 'mqc.h',
+ 'Line' => '57',
+ 'Name' => 'opj_mqc_state_t',
+ 'Size' => '24',
+ 'Type' => 'Typedef'
+ },
+ '62548' => {
+ 'Header' => 'mqc.h',
+ 'Line' => '64',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'c',
+ 'offset' => '0',
+ 'type' => '98'
+ },
+ '1' => {
+ 'name' => 'a',
+ 'offset' => '4',
+ 'type' => '98'
+ },
+ '2' => {
+ 'name' => 'ct',
+ 'offset' => '8',
+ 'type' => '98'
+ },
+ '3' => {
+ 'name' => 'bp',
+ 'offset' => '16',
+ 'type' => '674'
+ },
+ '4' => {
+ 'name' => 'start',
+ 'offset' => '24',
+ 'type' => '674'
+ },
+ '5' => {
+ 'name' => 'end',
+ 'offset' => '32',
+ 'type' => '674'
+ },
+ '6' => {
+ 'name' => 'ctxs',
+ 'offset' => '40',
+ 'type' => '62653'
+ },
+ '7' => {
+ 'name' => 'curctx',
+ 'offset' => '296',
+ 'type' => '62675'
+ }
+ },
+ 'Name' => 'struct opj_mqc',
+ 'Size' => '304',
+ 'Type' => 'Struct'
+ },
+ '62653' => {
+ 'BaseType' => '62669',
+ 'Name' => 'opj_mqc_state_t*[32]',
+ 'Size' => '256',
+ 'Type' => 'Array'
+ },
+ '62669' => {
+ 'BaseType' => '62537',
+ 'Name' => 'opj_mqc_state_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '62675' => {
+ 'BaseType' => '62669',
+ 'Name' => 'opj_mqc_state_t**',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '62681' => {
+ 'BaseType' => '62548',
+ 'Header' => 'mqc.h',
+ 'Line' => '73',
+ 'Name' => 'opj_mqc_t',
+ 'Size' => '304',
+ 'Type' => 'Typedef'
+ },
+ '62692' => {
+ 'BaseType' => '62681',
+ 'Name' => 'opj_mqc_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '630' => {
+ 'BaseType' => '184',
+ 'Name' => 'struct _IO_FILE*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '636' => {
+ 'BaseType' => '84',
+ 'Name' => 'char[1]',
+ 'Size' => '1',
+ 'Type' => 'Array'
+ },
+ '652' => {
+ 'BaseType' => '568',
+ 'Name' => '_IO_lock_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '658' => {
+ 'BaseType' => '84',
+ 'Name' => 'char[20]',
+ 'Size' => '20',
+ 'Type' => 'Array'
+ },
+ '66986' => {
+ 'Header' => 'openjpeg.h',
+ 'Line' => '388',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'event_mgr',
+ 'offset' => '0',
+ 'type' => '2990'
+ },
+ '1' => {
+ 'name' => 'client_data',
+ 'offset' => '8',
+ 'type' => '148'
+ },
+ '2' => {
+ 'name' => 'is_decompressor',
+ 'offset' => '16',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'codec_format',
+ 'offset' => '20',
+ 'type' => '2626'
+ },
+ '4' => {
+ 'name' => 'j2k_handle',
+ 'offset' => '24',
+ 'type' => '148'
+ },
+ '5' => {
+ 'name' => 'jp2_handle',
+ 'offset' => '32',
+ 'type' => '148'
+ }
+ },
+ 'Name' => 'struct opj_cinfo',
+ 'Size' => '40',
+ 'Type' => 'Struct'
+ },
+ '67078' => {
+ 'BaseType' => '66986',
+ 'Header' => 'openjpeg.h',
+ 'Line' => '392',
+ 'Name' => 'opj_cinfo_t',
+ 'Size' => '40',
+ 'Type' => 'Typedef'
+ },
+ '67090' => {
+ 'Header' => 'openjpeg.h',
+ 'Line' => '397',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'event_mgr',
+ 'offset' => '0',
+ 'type' => '2990'
+ },
+ '1' => {
+ 'name' => 'client_data',
+ 'offset' => '8',
+ 'type' => '148'
+ },
+ '2' => {
+ 'name' => 'is_decompressor',
+ 'offset' => '16',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'codec_format',
+ 'offset' => '20',
+ 'type' => '2626'
+ },
+ '4' => {
+ 'name' => 'j2k_handle',
+ 'offset' => '24',
+ 'type' => '148'
+ },
+ '5' => {
+ 'name' => 'jp2_handle',
+ 'offset' => '32',
+ 'type' => '148'
+ }
+ },
+ 'Name' => 'struct opj_dinfo',
+ 'Size' => '40',
+ 'Type' => 'Struct'
+ },
+ '67182' => {
+ 'BaseType' => '67090',
+ 'Header' => 'openjpeg.h',
+ 'Line' => '401',
+ 'Name' => 'opj_dinfo_t',
+ 'Size' => '40',
+ 'Type' => 'Typedef'
+ },
+ '674' => {
+ 'BaseType' => '91',
+ 'Name' => 'unsigned char*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '680' => {
+ 'Header' => 'bio.h',
+ 'Line' => '47',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'start',
+ 'offset' => '0',
+ 'type' => '674'
+ },
+ '1' => {
+ 'name' => 'end',
+ 'offset' => '8',
+ 'type' => '674'
+ },
+ '2' => {
+ 'name' => 'bp',
+ 'offset' => '16',
+ 'type' => '674'
+ },
+ '3' => {
+ 'name' => 'buf',
+ 'offset' => '24',
+ 'type' => '98'
+ },
+ '4' => {
+ 'name' => 'ct',
+ 'offset' => '28',
+ 'type' => '77'
+ }
+ },
+ 'Name' => 'struct opj_bio',
+ 'Size' => '32',
+ 'Type' => 'Struct'
+ },
+ '69729' => {
+ 'BaseType' => '67182',
+ 'Name' => 'opj_dinfo_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '70' => {
+ 'Name' => 'unsigned short',
+ 'Size' => '2',
+ 'Type' => 'Intrinsic'
+ },
+ '70232' => {
+ 'BaseType' => '67078',
+ 'Name' => 'opj_cinfo_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '7279' => {
+ 'Header' => 'tgt.h',
+ 'Line' => '48',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'parent',
+ 'offset' => '0',
+ 'type' => '7340'
+ },
+ '1' => {
+ 'name' => 'value',
+ 'offset' => '8',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'low',
+ 'offset' => '12',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'known',
+ 'offset' => '16',
+ 'type' => '77'
+ }
+ },
+ 'Name' => 'struct opj_tgt_node',
+ 'Size' => '24',
+ 'Type' => 'Struct'
+ },
+ '73020' => {
+ 'Header' => 'pi.h',
+ 'Line' => '49',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'pdx',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'pdy',
+ 'offset' => '4',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'pw',
+ 'offset' => '8',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'ph',
+ 'offset' => '12',
+ 'type' => '77'
+ }
+ },
+ 'Name' => 'struct opj_pi_resolution',
+ 'Size' => '16',
+ 'Type' => 'Struct'
+ },
+ '73079' => {
+ 'BaseType' => '73020',
+ 'Header' => 'pi.h',
+ 'Line' => '52',
+ 'Name' => 'opj_pi_resolution_t',
+ 'Size' => '16',
+ 'Type' => 'Typedef'
+ },
+ '73090' => {
+ 'Header' => 'pi.h',
+ 'Line' => '57',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'dx',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'dy',
+ 'offset' => '4',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'numresolutions',
+ 'offset' => '8',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'resolutions',
+ 'offset' => '16',
+ 'type' => '73149'
+ }
+ },
+ 'Name' => 'struct opj_pi_comp',
+ 'Size' => '24',
+ 'Type' => 'Struct'
+ },
+ '73149' => {
+ 'BaseType' => '73079',
+ 'Name' => 'opj_pi_resolution_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '73155' => {
+ 'BaseType' => '73090',
+ 'Header' => 'pi.h',
+ 'Line' => '62',
+ 'Name' => 'opj_pi_comp_t',
+ 'Size' => '24',
+ 'Type' => 'Typedef'
+ },
+ '73166' => {
+ 'Header' => 'pi.h',
+ 'Line' => '67',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'include',
+ 'offset' => '0',
+ 'type' => '73425'
+ },
+ '1' => {
+ 'name' => 'step_l',
+ 'offset' => '8',
+ 'type' => '77'
+ },
+ '10' => {
+ 'name' => 'poc',
+ 'offset' => '44',
+ 'type' => '2839'
+ },
+ '11' => {
+ 'name' => 'numcomps',
+ 'offset' => '76',
+ 'type' => '77'
+ },
+ '12' => {
+ 'name' => 'comps',
+ 'offset' => '80',
+ 'type' => '73431'
+ },
+ '13' => {
+ 'name' => 'tx0',
+ 'offset' => '88',
+ 'type' => '77'
+ },
+ '14' => {
+ 'name' => 'ty0',
+ 'offset' => '92',
+ 'type' => '77'
+ },
+ '15' => {
+ 'name' => 'tx1',
+ 'offset' => '96',
+ 'type' => '77'
+ },
+ '16' => {
+ 'name' => 'ty1',
+ 'offset' => '100',
+ 'type' => '77'
+ },
+ '17' => {
+ 'name' => 'x',
+ 'offset' => '104',
+ 'type' => '77'
+ },
+ '18' => {
+ 'name' => 'y',
+ 'offset' => '108',
+ 'type' => '77'
+ },
+ '19' => {
+ 'name' => 'dx',
+ 'offset' => '112',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'step_r',
+ 'offset' => '12',
+ 'type' => '77'
+ },
+ '20' => {
+ 'name' => 'dy',
+ 'offset' => '116',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'step_c',
+ 'offset' => '16',
+ 'type' => '77'
+ },
+ '4' => {
+ 'name' => 'step_p',
+ 'offset' => '20',
+ 'type' => '77'
+ },
+ '5' => {
+ 'name' => 'compno',
+ 'offset' => '24',
+ 'type' => '77'
+ },
+ '6' => {
+ 'name' => 'resno',
+ 'offset' => '28',
+ 'type' => '77'
+ },
+ '7' => {
+ 'name' => 'precno',
+ 'offset' => '32',
+ 'type' => '77'
+ },
+ '8' => {
+ 'name' => 'layno',
+ 'offset' => '36',
+ 'type' => '77'
+ },
+ '9' => {
+ 'name' => 'first',
+ 'offset' => '40',
+ 'type' => '77'
+ }
+ },
+ 'Name' => 'struct opj_pi_iterator',
+ 'Size' => '120',
+ 'Type' => 'Struct'
+ },
+ '7340' => {
+ 'BaseType' => '7279',
+ 'Name' => 'struct opj_tgt_node*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '73425' => {
+ 'BaseType' => '112',
+ 'Name' => 'short*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '73431' => {
+ 'BaseType' => '73155',
+ 'Name' => 'opj_pi_comp_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '73437' => {
+ 'BaseType' => '73166',
+ 'Header' => 'pi.h',
+ 'Line' => '96',
+ 'Name' => 'opj_pi_iterator_t',
+ 'Size' => '120',
+ 'Type' => 'Typedef'
+ },
+ '7346' => {
+ 'BaseType' => '7279',
+ 'Header' => 'tgt.h',
+ 'Line' => '53',
+ 'Name' => 'opj_tgt_node_t',
+ 'Size' => '24',
+ 'Type' => 'Typedef'
+ },
+ '7357' => {
+ 'Header' => 'tgt.h',
+ 'Line' => '58',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'numleafsh',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'numleafsv',
+ 'offset' => '4',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'numnodes',
+ 'offset' => '8',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'nodes',
+ 'offset' => '16',
+ 'type' => '7418'
+ }
+ },
+ 'Name' => 'struct opj_tgt_tree',
+ 'Size' => '24',
+ 'Type' => 'Struct'
+ },
+ '73729' => {
+ 'BaseType' => '73437',
+ 'Name' => 'opj_pi_iterator_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '7418' => {
+ 'BaseType' => '7346',
+ 'Name' => 'opj_tgt_node_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '7424' => {
+ 'BaseType' => '7357',
+ 'Header' => 'tgt.h',
+ 'Line' => '63',
+ 'Name' => 'opj_tgt_tree_t',
+ 'Size' => '24',
+ 'Type' => 'Typedef'
+ },
+ '7435' => {
+ 'Header' => 'tcd.h',
+ 'Line' => '47',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'numpasses',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'len',
+ 'offset' => '4',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'data',
+ 'offset' => '8',
+ 'type' => '674'
+ },
+ '3' => {
+ 'name' => 'maxpasses',
+ 'offset' => '16',
+ 'type' => '77'
+ },
+ '4' => {
+ 'name' => 'numnewpasses',
+ 'offset' => '20',
+ 'type' => '77'
+ },
+ '5' => {
+ 'name' => 'newlen',
+ 'offset' => '24',
+ 'type' => '77'
+ }
+ },
+ 'Name' => 'struct opj_tcd_seg',
+ 'Size' => '32',
+ 'Type' => 'Struct'
+ },
+ '751' => {
+ 'BaseType' => '680',
+ 'Header' => 'bio.h',
+ 'Line' => '58',
+ 'Name' => 'opj_bio_t',
+ 'Size' => '32',
+ 'Type' => 'Typedef'
+ },
+ '7520' => {
+ 'BaseType' => '7435',
+ 'Header' => 'tcd.h',
+ 'Line' => '54',
+ 'Name' => 'opj_tcd_seg_t',
+ 'Size' => '32',
+ 'Type' => 'Typedef'
+ },
+ '7531' => {
+ 'Header' => 'tcd.h',
+ 'Line' => '59',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'rate',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'distortiondec',
+ 'offset' => '8',
+ 'type' => '177'
+ },
+ '2' => {
+ 'name' => 'term',
+ 'offset' => '16',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'len',
+ 'offset' => '20',
+ 'type' => '77'
+ }
+ },
+ 'Name' => 'struct opj_tcd_pass',
+ 'Size' => '24',
+ 'Type' => 'Struct'
+ },
+ '7592' => {
+ 'BaseType' => '7531',
+ 'Header' => 'tcd.h',
+ 'Line' => '63',
+ 'Name' => 'opj_tcd_pass_t',
+ 'Size' => '24',
+ 'Type' => 'Typedef'
+ },
+ '7603' => {
+ 'Header' => 'tcd.h',
+ 'Line' => '68',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'numpasses',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'len',
+ 'offset' => '4',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'disto',
+ 'offset' => '8',
+ 'type' => '177'
+ },
+ '3' => {
+ 'name' => 'data',
+ 'offset' => '16',
+ 'type' => '674'
+ }
+ },
+ 'Name' => 'struct opj_tcd_layer',
+ 'Size' => '24',
+ 'Type' => 'Struct'
+ },
+ '7664' => {
+ 'BaseType' => '7603',
+ 'Header' => 'tcd.h',
+ 'Line' => '73',
+ 'Name' => 'opj_tcd_layer_t',
+ 'Size' => '24',
+ 'Type' => 'Typedef'
+ },
+ '7675' => {
+ 'Header' => 'tcd.h',
+ 'Line' => '78',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'x0',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'y0',
+ 'offset' => '4',
+ 'type' => '77'
+ },
+ '10' => {
+ 'name' => 'segs',
+ 'offset' => '40',
+ 'type' => '7882'
+ },
+ '11' => {
+ 'name' => 'data',
+ 'offset' => '3240',
+ 'type' => '7898'
+ },
+ '12' => {
+ 'name' => 'numpassesinlayers',
+ 'offset' => '11432',
+ 'type' => '77'
+ },
+ '13' => {
+ 'name' => 'layers',
+ 'offset' => '11440',
+ 'type' => '7915'
+ },
+ '14' => {
+ 'name' => 'totalpasses',
+ 'offset' => '13840',
+ 'type' => '77'
+ },
+ '15' => {
+ 'name' => 'passes',
+ 'offset' => '13848',
+ 'type' => '7931'
+ },
+ '2' => {
+ 'name' => 'x1',
+ 'offset' => '8',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'y1',
+ 'offset' => '12',
+ 'type' => '77'
+ },
+ '4' => {
+ 'name' => 'numbps',
+ 'offset' => '16',
+ 'type' => '77'
+ },
+ '5' => {
+ 'name' => 'numlenbits',
+ 'offset' => '20',
+ 'type' => '77'
+ },
+ '6' => {
+ 'name' => 'len',
+ 'offset' => '24',
+ 'type' => '77'
+ },
+ '7' => {
+ 'name' => 'numpasses',
+ 'offset' => '28',
+ 'type' => '77'
+ },
+ '8' => {
+ 'name' => 'numnewpasses',
+ 'offset' => '32',
+ 'type' => '77'
+ },
+ '9' => {
+ 'name' => 'numsegs',
+ 'offset' => '36',
+ 'type' => '77'
+ }
+ },
+ 'Name' => 'struct opj_tcd_cblk',
+ 'Size' => '16248',
+ 'Type' => 'Struct'
+ },
+ '77' => {
+ 'Name' => 'int',
+ 'Size' => '4',
+ 'Type' => 'Intrinsic'
+ },
+ '7882' => {
+ 'BaseType' => '7520',
+ 'Name' => 'opj_tcd_seg_t[100]',
+ 'Size' => '3200',
+ 'Type' => 'Array'
+ },
+ '7898' => {
+ 'BaseType' => '91',
+ 'Name' => 'unsigned char[8192]',
+ 'Size' => '8192',
+ 'Type' => 'Array'
+ },
+ '7915' => {
+ 'BaseType' => '7664',
+ 'Name' => 'opj_tcd_layer_t[100]',
+ 'Size' => '2400',
+ 'Type' => 'Array'
+ },
+ '79237' => {
+ 'Header' => 'raw.h',
+ 'Line' => '46',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'c',
+ 'offset' => '0',
+ 'type' => '91'
+ },
+ '1' => {
+ 'name' => 'ct',
+ 'offset' => '4',
+ 'type' => '98'
+ },
+ '2' => {
+ 'name' => 'lenmax',
+ 'offset' => '8',
+ 'type' => '98'
+ },
+ '3' => {
+ 'name' => 'len',
+ 'offset' => '12',
+ 'type' => '98'
+ },
+ '4' => {
+ 'name' => 'bp',
+ 'offset' => '16',
+ 'type' => '674'
+ },
+ '5' => {
+ 'name' => 'start',
+ 'offset' => '24',
+ 'type' => '674'
+ },
+ '6' => {
+ 'name' => 'end',
+ 'offset' => '32',
+ 'type' => '674'
+ }
+ },
+ 'Name' => 'struct opj_raw',
+ 'Size' => '40',
+ 'Type' => 'Struct'
+ },
+ '7931' => {
+ 'BaseType' => '7592',
+ 'Name' => 'opj_tcd_pass_t[100]',
+ 'Size' => '2400',
+ 'Type' => 'Array'
+ },
+ '79330' => {
+ 'BaseType' => '79237',
+ 'Header' => 'raw.h',
+ 'Line' => '61',
+ 'Name' => 'opj_raw_t',
+ 'Size' => '40',
+ 'Type' => 'Typedef'
+ },
+ '79341' => {
+ 'BaseType' => '79330',
+ 'Name' => 'opj_raw_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '7947' => {
+ 'BaseType' => '7675',
+ 'Header' => 'tcd.h',
+ 'Line' => '92',
+ 'Name' => 'opj_tcd_cblk_t',
+ 'Size' => '16248',
+ 'Type' => 'Typedef'
+ },
+ '7958' => {
+ 'Header' => 'tcd.h',
+ 'Line' => '97',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'x0',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'y0',
+ 'offset' => '4',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'x1',
+ 'offset' => '8',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'y1',
+ 'offset' => '12',
+ 'type' => '77'
+ },
+ '4' => {
+ 'name' => 'cw',
+ 'offset' => '16',
+ 'type' => '77'
+ },
+ '5' => {
+ 'name' => 'ch',
+ 'offset' => '20',
+ 'type' => '77'
+ },
+ '6' => {
+ 'name' => 'cblks',
+ 'offset' => '24',
+ 'type' => '8073'
+ },
+ '7' => {
+ 'name' => 'incltree',
+ 'offset' => '32',
+ 'type' => '8079'
+ },
+ '8' => {
+ 'name' => 'imsbtree',
+ 'offset' => '40',
+ 'type' => '8079'
+ }
+ },
+ 'Name' => 'struct opj_tcd_precinct',
+ 'Size' => '48',
+ 'Type' => 'Struct'
+ },
+ '8073' => {
+ 'BaseType' => '7947',
+ 'Name' => 'opj_tcd_cblk_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '8079' => {
+ 'BaseType' => '7424',
+ 'Name' => 'opj_tgt_tree_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '8085' => {
+ 'BaseType' => '7958',
+ 'Header' => 'tcd.h',
+ 'Line' => '103',
+ 'Name' => 'opj_tcd_precinct_t',
+ 'Size' => '48',
+ 'Type' => 'Typedef'
+ },
+ '809' => {
+ 'BaseType' => '751',
+ 'Name' => 'opj_bio_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '8096' => {
+ 'Header' => 'tcd.h',
+ 'Line' => '108',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'x0',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'y0',
+ 'offset' => '4',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'x1',
+ 'offset' => '8',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'y1',
+ 'offset' => '12',
+ 'type' => '77'
+ },
+ '4' => {
+ 'name' => 'bandno',
+ 'offset' => '16',
+ 'type' => '77'
+ },
+ '5' => {
+ 'name' => 'precincts',
+ 'offset' => '24',
+ 'type' => '8201'
+ },
+ '6' => {
+ 'name' => 'numbps',
+ 'offset' => '32',
+ 'type' => '77'
+ },
+ '7' => {
+ 'name' => 'stepsize',
+ 'offset' => '36',
+ 'type' => '170'
+ }
+ },
+ 'Name' => 'struct opj_tcd_band',
+ 'Size' => '40',
+ 'Type' => 'Struct'
+ },
+ '8201' => {
+ 'BaseType' => '8085',
+ 'Name' => 'opj_tcd_precinct_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '8207' => {
+ 'BaseType' => '8096',
+ 'Header' => 'tcd.h',
+ 'Line' => '114',
+ 'Name' => 'opj_tcd_band_t',
+ 'Size' => '40',
+ 'Type' => 'Typedef'
+ },
+ '8218' => {
+ 'Header' => 'tcd.h',
+ 'Line' => '119',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'x0',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'y0',
+ 'offset' => '4',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'x1',
+ 'offset' => '8',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'y1',
+ 'offset' => '12',
+ 'type' => '77'
+ },
+ '4' => {
+ 'name' => 'pw',
+ 'offset' => '16',
+ 'type' => '77'
+ },
+ '5' => {
+ 'name' => 'ph',
+ 'offset' => '20',
+ 'type' => '77'
+ },
+ '6' => {
+ 'name' => 'numbands',
+ 'offset' => '24',
+ 'type' => '77'
+ },
+ '7' => {
+ 'name' => 'bands',
+ 'offset' => '32',
+ 'type' => '8321'
+ }
+ },
+ 'Name' => 'struct opj_tcd_resolution',
+ 'Size' => '152',
+ 'Type' => 'Struct'
+ },
+ '83070' => {
+ 'Header' => 't1.h',
+ 'Line' => '94',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'cinfo',
+ 'offset' => '0',
+ 'type' => '3008'
+ },
+ '1' => {
+ 'name' => 'mqc',
+ 'offset' => '8',
+ 'type' => '62692'
+ },
+ '10' => {
+ 'name' => 'lut_nmsedec_ref0',
+ 'offset' => '24088',
+ 'type' => '83315'
+ },
+ '11' => {
+ 'name' => 'data',
+ 'offset' => '24600',
+ 'type' => '83265'
+ },
+ '12' => {
+ 'name' => 'flags',
+ 'offset' => '4218904',
+ 'type' => '83355'
+ },
+ '2' => {
+ 'name' => 'raw',
+ 'offset' => '16',
+ 'type' => '79341'
+ },
+ '3' => {
+ 'name' => 'lut_ctxno_zc',
+ 'offset' => '24',
+ 'type' => '83265'
+ },
+ '4' => {
+ 'name' => 'lut_ctxno_sc',
+ 'offset' => '4120',
+ 'type' => '83282'
+ },
+ '5' => {
+ 'name' => 'lut_ctxno_mag',
+ 'offset' => '5144',
+ 'type' => '83298'
+ },
+ '6' => {
+ 'name' => 'lut_spb',
+ 'offset' => '21528',
+ 'type' => '83282'
+ },
+ '7' => {
+ 'name' => 'lut_nmsedec_sig',
+ 'offset' => '22552',
+ 'type' => '83315'
+ },
+ '8' => {
+ 'name' => 'lut_nmsedec_sig0',
+ 'offset' => '23064',
+ 'type' => '83315'
+ },
+ '9' => {
+ 'name' => 'lut_nmsedec_ref',
+ 'offset' => '23576',
+ 'type' => '83315'
+ }
+ },
+ 'Name' => 'struct opj_t1',
+ 'Size' => '8429608',
+ 'Type' => 'Struct'
+ },
+ '8321' => {
+ 'BaseType' => '8207',
+ 'Name' => 'opj_tcd_band_t[3]',
+ 'Size' => '120',
+ 'Type' => 'Array'
+ },
+ '83265' => {
+ 'BaseType' => '77',
+ 'Name' => 'int[1024]',
+ 'Size' => '4096',
+ 'Type' => 'Array'
+ },
+ '83282' => {
+ 'BaseType' => '77',
+ 'Name' => 'int[256]',
+ 'Size' => '1024',
+ 'Type' => 'Array'
+ },
+ '83298' => {
+ 'BaseType' => '77',
+ 'Name' => 'int[4096]',
+ 'Size' => '16384',
+ 'Type' => 'Array'
+ },
+ '83315' => {
+ 'BaseType' => '77',
+ 'Name' => 'int[128]',
+ 'Size' => '512',
+ 'Type' => 'Array'
+ },
+ '83355' => {
+ 'BaseType' => '77',
+ 'Name' => 'int[1026]',
+ 'Size' => '4104',
+ 'Type' => 'Array'
+ },
+ '8337' => {
+ 'BaseType' => '8218',
+ 'Header' => 'tcd.h',
+ 'Line' => '124',
+ 'Name' => 'opj_tcd_resolution_t',
+ 'Size' => '152',
+ 'Type' => 'Typedef'
+ },
+ '83379' => {
+ 'BaseType' => '83070',
+ 'Header' => 't1.h',
+ 'Line' => '115',
+ 'Name' => 'opj_t1_t',
+ 'Size' => '8429608',
+ 'Type' => 'Typedef'
+ },
+ '8348' => {
+ 'Header' => 'tcd.h',
+ 'Line' => '129',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'x0',
+ 'offset' => '0',
+ 'type' => '77'
+ },
+ '1' => {
+ 'name' => 'y0',
+ 'offset' => '4',
+ 'type' => '77'
+ },
+ '2' => {
+ 'name' => 'x1',
+ 'offset' => '8',
+ 'type' => '77'
+ },
+ '3' => {
+ 'name' => 'y1',
+ 'offset' => '12',
+ 'type' => '77'
+ },
+ '4' => {
+ 'name' => 'numresolutions',
+ 'offset' => '16',
+ 'type' => '77'
+ },
+ '5' => {
+ 'name' => 'resolutions',
+ 'offset' => '24',
+ 'type' => '8453'
+ },
+ '6' => {
+ 'name' => 'data',
+ 'offset' => '32',
+ 'type' => '1941'
+ },
+ '7' => {
+ 'name' => 'nbpix',
+ 'offset' => '40',
+ 'type' => '77'
+ }
+ },
+ 'Name' => 'struct opj_tcd_tilecomp',
+ 'Size' => '48',
+ 'Type' => 'Struct'
+ },
+ '83641' => {
+ 'BaseType' => '83379',
+ 'Name' => 'opj_t1_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '84' => {
+ 'Name' => 'char',
+ 'Size' => '1',
+ 'Type' => 'Intrinsic'
+ },
+ '8453' => {
+ 'BaseType' => '8337',
+ 'Name' => 'opj_tcd_resolution_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '8459' => {
+ 'BaseType' => '8348',
+ 'Header' => 'tcd.h',
+ 'Line' => '135',
+ 'Name' => 'opj_tcd_tilecomp_t',
+ 'Size' => '48',
+ 'Type' => 'Typedef'
+ },
+ '8470' => {
+ 'BaseType' => '8459',
+ 'Name' => 'opj_tcd_tilecomp_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '91' => {
+ 'Name' => 'unsigned char',
+ 'Size' => '1',
+ 'Type' => 'Intrinsic'
+ },
+ '98' => {
+ 'Name' => 'unsigned int',
+ 'Size' => '4',
+ 'Type' => 'Intrinsic'
+ }
+ },
+ 'UndefinedSymbols' => {
+ 'libopenjpeg.so' => {
+ '_ITM_deregisterTMCloneTable' => 0,
+ '_ITM_registerTMCloneTable' => 0,
+ '_Jv_RegisterClasses' => 0,
+ '__cxa_finalize@GLIBC_2.2.5' => 0,
+ '__gmon_start__' => 0,
+ 'ceilf' => 0,
+ 'fclose@GLIBC_2.2.5' => 0,
+ 'floor' => 0,
+ 'floorf' => 0,
+ 'fopen@GLIBC_2.2.5' => 0,
+ 'fprintf@GLIBC_2.2.5' => 0,
+ 'fputc@GLIBC_2.2.5' => 0,
+ 'free@GLIBC_2.2.5' => 0,
+ 'fwrite@GLIBC_2.2.5' => 0,
+ 'getrusage@GLIBC_2.2.5' => 0,
+ 'malloc@GLIBC_2.2.5' => 0,
+ 'memcpy@GLIBC_2.14' => 0,
+ 'memset@GLIBC_2.2.5' => 0,
+ 'pow' => 0,
+ 'puts@GLIBC_2.2.5' => 0,
+ 'realloc@GLIBC_2.2.5' => 0,
+ 'strcpy@GLIBC_2.2.5' => 0,
+ 'trunc' => 0,
+ 'truncf' => 0,
+ 'vsprintf@GLIBC_2.2.5' => 0
+ }
+ },
+ 'WordSize' => '8'
+ };
--- /dev/null
+{
+ "Object": "lib/libopenjpeg.so",
+ "Lang": "C",
+ "TotalSymbols": "127",
+ "PublicABI": "1",
+ "Version": "1.7"
+}
\ No newline at end of file
$VAR1 = {
- 'ABI_DUMPER_VERSION' => '0.99.13',
+ 'ABI_DUMPER_VERSION' => '0.99.15',
'ABI_DUMP_VERSION' => '3.2',
'Arch' => 'x86_64',
'GccVersion' => '4.9.2',
'libopenjp2.so.2.1.1' => {
'_fini' => 1,
'_init' => 1,
+ 'j2k_destroy_cstr_index' => 1,
+ 'j2k_dump' => 1,
+ 'j2k_dump_image_comp_header' => 1,
+ 'j2k_dump_image_header' => 1,
+ 'j2k_get_cstr_index' => 1,
+ 'j2k_get_cstr_info' => 1,
+ 'jp2_dump' => 1,
+ 'jp2_get_cstr_index' => 1,
+ 'jp2_get_cstr_info' => 1,
+ 'opj_aligned_free' => 1,
+ 'opj_aligned_malloc' => 1,
+ 'opj_aligned_realloc' => 1,
+ 'opj_alloc_tile_component_data' => 1,
+ 'opj_bio_create' => 1,
+ 'opj_bio_destroy' => 1,
+ 'opj_bio_flush' => 1,
+ 'opj_bio_inalign' => 1,
+ 'opj_bio_init_dec' => 1,
+ 'opj_bio_init_enc' => 1,
+ 'opj_bio_numbytes' => 1,
+ 'opj_bio_read' => 1,
+ 'opj_bio_write' => 1,
+ 'opj_calculate_norms' => 1,
+ 'opj_calloc' => 1,
+ 'opj_clock' => 1,
+ 'opj_copy_image_header' => 1,
'opj_create_compress' => 1,
'opj_create_decompress' => 1,
'opj_decode' => 1,
'opj_destroy_cstr_index' => 1,
'opj_destroy_cstr_info' => 1,
'opj_dump_codec' => 1,
+ 'opj_dwt_calc_explicit_stepsizes' => 1,
+ 'opj_dwt_decode' => 1,
+ 'opj_dwt_decode_real' => 1,
+ 'opj_dwt_encode' => 1,
+ 'opj_dwt_encode_real' => 1,
+ 'opj_dwt_getgain' => 1,
+ 'opj_dwt_getgain_real' => 1,
+ 'opj_dwt_getnorm' => 1,
+ 'opj_dwt_getnorm_real' => 1,
'opj_encode' => 1,
'opj_end_compress' => 1,
'opj_end_decompress' => 1,
+ 'opj_event_msg' => 1,
+ 'opj_free' => 1,
'opj_get_cstr_index' => 1,
'opj_get_cstr_info' => 1,
'opj_get_decoded_tile' => 1,
+ 'opj_image_comp_header_update' => 1,
'opj_image_create' => 1,
+ 'opj_image_create0' => 1,
'opj_image_destroy' => 1,
'opj_image_tile_create' => 1,
+ 'opj_j2k_convert_progression_order' => 1,
+ 'opj_j2k_create_compress' => 1,
+ 'opj_j2k_create_decompress' => 1,
+ 'opj_j2k_decode' => 1,
+ 'opj_j2k_decode_tile' => 1,
+ 'opj_j2k_destroy' => 1,
+ 'opj_j2k_encode' => 1,
+ 'opj_j2k_end_compress' => 1,
+ 'opj_j2k_end_decompress' => 1,
+ 'opj_j2k_get_tile' => 1,
+ 'opj_j2k_read_header' => 1,
+ 'opj_j2k_read_tile_header' => 1,
+ 'opj_j2k_set_decode_area' => 1,
+ 'opj_j2k_set_decoded_resolution_factor' => 1,
+ 'opj_j2k_setup_decoder' => 1,
+ 'opj_j2k_setup_encoder' => 1,
+ 'opj_j2k_setup_mct_encoding' => 1,
+ 'opj_j2k_start_compress' => 1,
+ 'opj_j2k_write_tile' => 1,
+ 'opj_jp2_create' => 1,
+ 'opj_jp2_decode' => 1,
+ 'opj_jp2_decode_tile' => 1,
+ 'opj_jp2_destroy' => 1,
+ 'opj_jp2_encode' => 1,
+ 'opj_jp2_end_compress' => 1,
+ 'opj_jp2_end_decompress' => 1,
+ 'opj_jp2_get_tile' => 1,
+ 'opj_jp2_read_header' => 1,
+ 'opj_jp2_read_tile_header' => 1,
+ 'opj_jp2_set_decode_area' => 1,
+ 'opj_jp2_set_decoded_resolution_factor' => 1,
+ 'opj_jp2_setup_decoder' => 1,
+ 'opj_jp2_setup_encoder' => 1,
+ 'opj_jp2_start_compress' => 1,
+ 'opj_jp2_write_tile' => 1,
+ 'opj_malloc' => 1,
+ 'opj_matrix_inversion_f' => 1,
+ 'opj_mct_decode' => 1,
+ 'opj_mct_decode_custom' => 1,
+ 'opj_mct_decode_real' => 1,
+ 'opj_mct_encode' => 1,
+ 'opj_mct_encode_custom' => 1,
+ 'opj_mct_encode_real' => 1,
+ 'opj_mct_get_mct_norms' => 1,
+ 'opj_mct_get_mct_norms_real' => 1,
+ 'opj_mct_getnorm' => 1,
+ 'opj_mct_getnorm_real' => 1,
+ 'opj_mqc_bypass_enc' => 1,
+ 'opj_mqc_bypass_flush_enc' => 1,
+ 'opj_mqc_bypass_init_enc' => 1,
+ 'opj_mqc_create' => 1,
+ 'opj_mqc_decode' => 1,
+ 'opj_mqc_destroy' => 1,
+ 'opj_mqc_encode' => 1,
+ 'opj_mqc_erterm_enc' => 1,
+ 'opj_mqc_flush' => 1,
+ 'opj_mqc_init_dec' => 1,
+ 'opj_mqc_init_enc' => 1,
+ 'opj_mqc_numbytes' => 1,
+ 'opj_mqc_reset_enc' => 1,
+ 'opj_mqc_resetstates' => 1,
+ 'opj_mqc_restart_enc' => 1,
+ 'opj_mqc_restart_init_enc' => 1,
+ 'opj_mqc_segmark_enc' => 1,
+ 'opj_mqc_setstate' => 1,
+ 'opj_pi_create_decode' => 1,
+ 'opj_pi_create_encode' => 1,
+ 'opj_pi_destroy' => 1,
+ 'opj_pi_initialise_encode' => 1,
+ 'opj_pi_next' => 1,
+ 'opj_pi_update_encoding_parameters' => 1,
+ 'opj_procedure_list_add_procedure' => 1,
+ 'opj_procedure_list_clear' => 1,
+ 'opj_procedure_list_create' => 1,
+ 'opj_procedure_list_destroy' => 1,
+ 'opj_procedure_list_get_first_procedure' => 1,
+ 'opj_procedure_list_get_nb_procedures' => 1,
+ 'opj_raw_create' => 1,
+ 'opj_raw_decode' => 1,
+ 'opj_raw_destroy' => 1,
+ 'opj_raw_init_dec' => 1,
+ 'opj_raw_numbytes' => 1,
+ 'opj_read_bytes_BE' => 1,
+ 'opj_read_bytes_LE' => 1,
+ 'opj_read_double_BE' => 1,
+ 'opj_read_double_LE' => 1,
+ 'opj_read_float_BE' => 1,
+ 'opj_read_float_LE' => 1,
'opj_read_header' => 1,
'opj_read_tile_header' => 1,
+ 'opj_realloc' => 1,
'opj_set_MCT' => 1,
'opj_set_decode_area' => 1,
'opj_set_decoded_resolution_factor' => 1,
'opj_set_default_decoder_parameters' => 1,
'opj_set_default_encoder_parameters' => 1,
+ 'opj_set_default_event_handler' => 1,
'opj_set_error_handler' => 1,
'opj_set_info_handler' => 1,
'opj_set_warning_handler' => 1,
'opj_stream_create_default_file_stream' => 1,
'opj_stream_create_file_stream' => 1,
'opj_stream_default_create' => 1,
+ 'opj_stream_default_read' => 1,
+ 'opj_stream_default_seek' => 1,
+ 'opj_stream_default_skip' => 1,
+ 'opj_stream_default_write' => 1,
'opj_stream_destroy' => 1,
+ 'opj_stream_flush' => 1,
+ 'opj_stream_get_number_byte_left' => 1,
+ 'opj_stream_has_seek' => 1,
+ 'opj_stream_read_data' => 1,
+ 'opj_stream_read_seek' => 1,
+ 'opj_stream_read_skip' => 1,
+ 'opj_stream_seek' => 1,
'opj_stream_set_read_function' => 1,
'opj_stream_set_seek_function' => 1,
'opj_stream_set_skip_function' => 1,
'opj_stream_set_user_data' => 1,
'opj_stream_set_user_data_length' => 1,
'opj_stream_set_write_function' => 1,
+ 'opj_stream_skip' => 1,
+ 'opj_stream_tell' => 1,
+ 'opj_stream_write_data' => 1,
+ 'opj_stream_write_seek' => 1,
+ 'opj_stream_write_skip' => 1,
+ 'opj_t1_create' => 1,
+ 'opj_t1_decode_cblks' => 1,
+ 'opj_t1_destroy' => 1,
+ 'opj_t1_encode_cblks' => 1,
+ 'opj_t2_create' => 1,
+ 'opj_t2_decode_packets' => 1,
+ 'opj_t2_destroy' => 1,
+ 'opj_t2_encode_packets' => 1,
+ 'opj_tcd_copy_tile_data' => 1,
+ 'opj_tcd_create' => 1,
+ 'opj_tcd_decode_tile' => 1,
+ 'opj_tcd_destroy' => 1,
+ 'opj_tcd_encode_tile' => 1,
+ 'opj_tcd_get_decoded_tile_size' => 1,
+ 'opj_tcd_get_encoded_tile_size' => 1,
+ 'opj_tcd_init' => 1,
+ 'opj_tcd_init_decode_tile' => 1,
+ 'opj_tcd_init_encode_tile' => 1,
+ 'opj_tcd_makelayer' => 1,
+ 'opj_tcd_makelayer_fixed' => 1,
+ 'opj_tcd_rateallocate' => 1,
+ 'opj_tcd_rateallocate_fixed' => 1,
+ 'opj_tcd_update_tile_data' => 1,
+ 'opj_tgt_create' => 1,
+ 'opj_tgt_decode' => 1,
+ 'opj_tgt_destroy' => 1,
+ 'opj_tgt_encode' => 1,
+ 'opj_tgt_init' => 1,
+ 'opj_tgt_reset' => 1,
+ 'opj_tgt_setvalue' => 1,
'opj_version' => 1,
+ 'opj_write_bytes_BE' => 1,
+ 'opj_write_bytes_LE' => 1,
+ 'opj_write_double_BE' => 1,
+ 'opj_write_double_LE' => 1,
+ 'opj_write_float_BE' => 1,
+ 'opj_write_float_LE' => 1,
'opj_write_tile' => 1
}
},
}
},
'Name' => 'struct _IO_FILE',
+ 'PrivateABI' => 1,
'Size' => '216',
'Type' => 'Struct'
},
}
},
'Name' => 'struct _IO_marker',
+ 'PrivateABI' => 1,
'Size' => '24',
'Type' => 'Struct'
},
{
"Object": "lib/libopenjp2.so.2.1.1",
"Lang": "C",
- "PublicABI": "1"
+ "TotalSymbols": "43",
+ "PublicABI": "1",
+ "Version": "1.7"
}
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta name="keywords" content="OpenJPEG, 1.1, changes, changelog" />
+ <meta name="description" content="Log of changes in the package" />
+ <link rel="stylesheet" type="text/css" href="../../../css/common.css" />
+ <link rel="stylesheet" type="text/css" href="../../../css/changelog.css" />
+
+
+ <title>
+ OpenJPEG 1.1: changelog
+ </title>
+
+ </head>
+
+<body>
+<table cellpadding='0' cellspacing='0'><tr><td align='center'><h1 class='tool'><a title='Home: ABI tracker for OpenJPEG' href='../../../timeline/openjpeg/index.html' class='tool'>ABI<br/>Tracker</a></h1></td><td width='30px;'></td><td><h1>(OpenJPEG)</h1></td></tr></table><hr/>
+<br/>
+<br/>
+<h1>Changelog for <span class='version'>1.1</span> version</h1><br/><br/>
+<div class='changelog'>
+<pre class='wrap'>What's New for OpenJPEG
+
+* : fixed
+- : removed
+! : changed
++ : added
+
+January 31, 2007
+! [FOD] Linux Makefile added for the codec
+
+January 30, 2007
+! [FOD] Use of OPJ_PATH_LEN (defined as 4096) to be the maximum allowed size for filenames instead of MAX_PATH which is not always defined. This caused some programs using OpenJPEG to crash. Modifications in openjpeg.h j2k_to_image.c and image_to_j2k.c
+! [FOD] Correction of the syntax usage in MJ2_codec/mj2_to_frames.c
+
+January 23, 2007
+! [FOD] Modification in the context numbers, to reflect what has been specified in standard, in libopenjpeg/t1.h
+
+December 07, 2006
++ [Giuseppe Baruffa] Antonin verified that the MacOS build suffered from a missing definition of the "min" macro; I've added this definition (properly #ifndef'ed) into both jpwl.h and rs.h
+
+December 05, 2006
+* [Giuseppe Baruffa] Better fix of the TPH EPBs bug in JPWL module
+* [GB] Fixed the UEP bug in JPWL module; now, during a UEP specification, RS protection or CRC check can be switched off for selected range of packets, and consequently reswitched on without confusing the decoder
++ [GB] Added some lines in the help of JPWL_image_to_j2k, specifying that when using error protection on data packets, this must be paired with header protection, i.e. there cannot be packet protection without header protection
+
+December 04, 2006
+
++ [Francois-Olivier Devaux] New tag: version1.0 (includes codec and libopenjpeg directories)
+Total update of JPWL module
+ - [FOD] removed directories jpwl/decoder, jpwl/encoder, jpwl/decoder_02, jpwl/encoder_02
+ + [FOD] added in JPWL directory crc.h, jpwl.h, rs.h, crc.c, jpwl.c, jpwl_lib.c, rs.c, JPWL_image_to_j2k.dsp, JPWL_j2k_to_image.dsp, LibOpenJPEG_JPWL.dsp, JPWL_image_to_j2k.dsw, JPWL_j2k_to_image.dsw
+ ! [FOD] Modifications of libopenjpeg to integrate JPWL module (in libopenjpeg directory): j2k.c, j2k.h, openjpeg.c, openjpeg.h, opj_includes.g, t2.c
+ ! [FOD] Modification of codec to integrate JPWL module (in codec directory): image_to_j2k.c, j2k_to_image.c
+* [FOD] Corrected incorrect fprintf() formatting in codec/convert.c
+* [FOD] Code optimization usinq vsprintf() command in libopenjpeg/event.c
+* [Giuseppe Baruffa] Fixed a bug in TPH EPBs parameters: now, "last in current header" information is correctly signaled
+
+October 31, 2006
+* [Antonin] fixed a bug in the computation of the mantissa (mu)
++ [Antonin] added the ability to specify the rate as "float" (before : integer)
+
+August 18, 2006
+* [Antonin] fixed a bug in j2k_to_image.c, that prevented the -l option to work correctly.
+
+August 4, 2006
+* [Antonin] fixed a bug in pi.c, line 473, that appeared when more than 100 precincts were generated in a resolution level.
+
+July 28, 2006
++ [Antonin Descampe] added a readme in /mj2 to warn people that it only works with opj0.97
+
+July 21, 2006
+* [Mathieu Malaterre] Install exe and lib and include correctly
+* [Mathieu Malaterre] Fixed mem leaks and greyscale bmp
+* [Mathieu Malaterre] Fix pgx name length + random memory access
+! [Mathieu Malaterre] API is now const
+
+March 19, 2006
+* [Antonin] fixed a bug in t1.c that prevented in some cases a true lossless compression (thanks to Don Mimlitch for reporting this bug)
+
+February 12, 2006
+- [Herve Drolon] removed unneeded working variables in opj_tcd_t
+
+February 04, 2006
+* [galt] fixed a bug in codec/convert.c::imagetobmp
+
+February 01, 2006
+! [Herve Drolon] changed function definitions of INT and FIX modules to 'inline'
++ [Herve Drolon] added a VERSION resource to the DLL version of OpenJPEG
+
+January 31, 2006
+* [Mathieu Malaterre] Fix compilation using default openjpeg.dsw
+* [Herve Drolon] fixed various minor warnings occuring under icc9 and bcc32
+- [Mathieu Malaterre] Remove all references to OPJ_EXPORT, no declspec in header file anymore
++ [Mathieu Malaterre] Add a def.in file which is a template for Module Definition
++ [Herve Drolon] added MSVC project and compiler directives to build a 'standard' WIN32 DLL
+! [Mathieu Malaterre] Update CMake to match the new shared lib system (no more def file)
+
+January 27, 2006
+* [Antonin Descampe] fixed a two initialization problems in t1.c and tcd.c
+
+January 26, 2006
+* [Herve Drolon] fixed various minor warnings occuring under gcc
+* [__david__] fixed a segfault in codec/image_to_j2k.c & codec/j2k_to_image.c
+* [__david__] fixed help option in codec/j2k_to_image & codec/image_to_j2k
+
+January 25, 2006
+! [Mathieu Malaterre] Sync with ITK repository, also add ref to doxygen
+! [Mathieu Malaterre] Add a lot of comments on the CMake build system
+! [Mathieu Malaterre] Fix MINGW32 and BORLAND compilation problems.
+
+January 25, 2006
+* [Antonin Descampe] fixed a problem in convert.c when multiple comments
++ [Antonin Descampe] added cmake files to the project
+! [Antonin Descampe] fix.c : replaced "WIN32" by "_MSC_VER" for int64
++ [Antonin Descampe] added "OPJ_EXPORT" in openjpeg.h to generate shared lib with win32
+! [Antonin Descampe] removed all CtrlM from files
+
+January 24, 2006
+! [Antonin Descampe] event.c : replaced "WIN32" by "_MSC_VER" for i2a
+
+January 20, 2006
+* [Antonin Descampe] fixed various minor warnings with gdcm patches
+
+January 19, 2006
+* [Herve Drolon] fixed a bug in jp2_read_ihdr (need to allocate jp2->comps)
+
+January 18, 2006
+* [Herve Drolon] changed the name of j2k_realloc to opj_realloc
+* [Herve Drolon] fixed a bug in opj_cio_open when saving 48-bit images (wrong buffer size calculation)
+
+December 8, 2005
+* [Antonin Descampe] fixed a bug when specifying a rate '-r' => no distortion info was available in the index
+* [Antonin Descampe] fixed a bug in t1_getwmsedec (stepsize was divided by 8192)
+
+December 5, 2005 - 1.1.0
+</pre></div>
+
+</body>
+</html>
<table cellpadding='0' cellspacing='0'><tr><td align='center'><h1 class='tool'><a title='Home: ABI tracker for OpenJPEG' href='../../../timeline/openjpeg/index.html' class='tool'>ABI<br/>Tracker</a></h1></td><td width='30px;'></td><td><h1>(OpenJPEG)</h1></td></tr></table><hr/>
<br/>
<br/>
-<h1>Changelog for <span class='version'>current</span> version (Git)</h1><br/><br/>
+<h1>Changelog from Git</h1><br/><br/>
<div class='changelog'>
<pre class='wrap'>commit d0babeb6f6cdd1887308137df37bb2b4724a6592
Author: Antonin Descampe <antonin@gmail.com>
--- /dev/null
+<!-- verdict:incompatible;affected:19.3;added:6;removed:1;type_problems_high:8;type_problems_medium:28;type_problems_low:73;interface_problems_high:0;interface_problems_medium:4;interface_problems_low:0;changed_constants:0;tool_version:1.99.21 -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="keywords" content="libopenjpeg, binary compatibility, API, report" />
+<meta name="description" content="Binary compatibility report for the libopenjpeg object between 1.1 and 1.2 versions on x86_64" />
+<title>libopenjpeg: 1.1 to 1.2 binary compatibility report</title>
+<style type="text/css">
+body {
+ font-family:Arial, sans-serif;
+ background-color:White;
+ color:Black;
+}
+hr {
+ color:Black;
+ background-color:Black;
+ height:1px;
+ border:0;
+}
+h1 {
+ margin-bottom:0px;
+ padding-bottom:0px;
+ font-size:1.625em;
+}
+h2 {
+ margin-bottom:0px;
+ padding-bottom:0px;
+ font-size:1.25em;
+ white-space:nowrap;
+}
+span.section {
+ font-weight:bold;
+ cursor:pointer;
+ color:#003E69;
+ white-space:nowrap;
+ margin-left:5px;
+}
+span.new_sign {
+ font-weight:bold;
+ margin-left:26px;
+ color:#003E69;
+}
+span.new_sign_lbl {
+ margin-left:28px;
+ font-size:0.875em;
+ color:Black;
+}
+span:hover.section {
+ color:#336699;
+}
+span.sect_aff {
+ cursor:pointer;
+ margin-left:7px;
+ padding-left:15px;
+ font-size:0.875em;
+ color:#cc3300;
+}
+span.sect_info {
+ cursor:pointer;
+ margin-left:7px;
+ padding-left:15px;
+ font-size:0.875em;
+ color:Black;
+}
+span.ext {
+ font-weight:100;
+}
+span.h_name {
+ color:#cc3300;
+ font-size:0.875em;
+ font-weight:bold;
+}
+div.h_list, div.lib_list {
+ font-size:0.94em;
+ padding-left:5px;
+}
+span.ns {
+ color:#408080;
+ font-size:0.94em;
+}
+span.lib_name {
+ color:Green;
+ font-size:0.875em;
+ font-weight:bold;
+}
+span.iname {
+ font-weight:bold;
+ color:#003E69;
+ margin-left:5px;
+}
+span.iname_b {
+ font-weight:bold;
+ font-size:1.1em;
+}
+span.iname_a {
+ color:#333333;
+ font-weight:bold;
+ font-size:0.94em;
+}
+span.sym_p {
+ font-weight:normal;
+ white-space:normal;
+}
+div.affect {
+ padding-left:15px;
+ padding-bottom:10px;
+ font-size:0.87em;
+ font-style:italic;
+ line-height:0.75em;
+}
+div.affected {
+ padding-left:30px;
+ padding-top:10px;
+}
+table.ptable {
+ border-collapse:collapse;
+ border:1px outset black;
+ line-height:1em;
+ margin-left:15px;
+ margin-top:3px;
+ margin-bottom:3px;
+ width:900px;
+
+}
+table.ptable td {
+ border:1px solid gray;
+ padding: 3px;
+ font-size:0.875em;
+ text-align:left;
+ vertical-align:top;
+}
+table.vtable {
+ border-collapse:collapse;
+ border:1px outset black;
+ line-height:16px;
+ margin-left:30px;
+ margin-top:10px;
+}
+table.vtable td {
+ border:1px solid gray;
+ word-wrap:break-word;
+ padding: 3px;
+ font-size:0.875em;
+ max-width:450px;
+ vertical-align:top;
+}
+table.ptable th, table.vtable th {
+ background-color:#eeeeee;
+ font-weight:bold;
+ color:#333333;
+ font-family:Verdana, Arial;
+ font-size:0.81em;
+ border:1px solid gray;
+ text-align:center;
+ vertical-align:top;
+ white-space:nowrap;
+ padding: 3px;
+}
+table.summary {
+ border-collapse:collapse;
+ border:1px outset black;
+}
+table.summary th {
+ background-color:#eeeeee;
+ font-weight:100;
+ text-align:left;
+ font-size:0.94em;
+ white-space:nowrap;
+ border:1px inset gray;
+ padding: 3px;
+}
+table.summary td {
+ text-align:right;
+ white-space:nowrap;
+ border:1px inset gray;
+ padding: 3px 5px 3px 10px;
+}
+span.mangled {
+ padding-left:15px;
+ font-size:0.875em;
+ cursor:text;
+ color:#444444;
+}
+span.sym_ver {
+ color:#333333;
+ white-space:nowrap;
+ font-family:"DejaVu Sans Mono", Monospace;
+}
+span.attr {
+ color:#333333;
+ font-weight:100;
+}
+span.color_p {
+ font-style:italic;
+ color:Brown;
+}
+span.p {
+ font-style:italic;
+}
+span.fp {
+ font-style:italic;
+ background-color:#DCDCDC;
+}
+span.ttype {
+ font-weight:100;
+}
+span.nowrap {
+ white-space:nowrap;
+}
+span.value {
+ white-space:nowrap;
+ font-weight:bold;
+}
+.passed {
+ background-color:#CCFFCC;
+}
+.warning {
+ background-color:#F4F4AF;
+}
+.failed {
+ background-color:#FFCCCC;
+}
+.new {
+ background-color:#C6DEFF;
+}
+.compatible {
+ background-color:#CCFFCC;
+}
+.almost_compatible {
+ background-color:#FFDAA3;
+}
+.incompatible {
+ background-color:#FFCCCC;
+}
+.gray {
+ background-color:#DCDCDC;
+}
+.top_ref {
+ font-size:0.69em;
+}
+.footer {
+ font-size:0.75em;
+}
+</style>
+<script type="text/javascript" language="JavaScript">
+<!--
+function showContent(header, id)
+{
+ e = document.getElementById(id);
+ if(e.style.display == 'none')
+ {
+ e.style.display = 'block';
+ e.style.visibility = 'visible';
+ header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[−]");
+ }
+ else
+ {
+ e.style.display = 'none';
+ e.style.visibility = 'hidden';
+ header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[+]");
+ }
+}
+-->
+</script>
+</head>
+
+<body>
+<div><a name='Top'></a>
+<h1>Binary compatibility report for the <span style='color:Blue;'>libopenjpeg.so</span> object between <span style='color:Red;'>1.1</span> and <span style='color:Red;'>1.2</span> versions on <span style='color:Blue;'>x86_64</span></h1>
+
+<h2>Test Info</h2><hr/>
+<table class='summary'>
+<tr><th>Module Name</th><td>libopenjpeg</td></tr>
+<tr><th>Version #1</th><td>1.1</td></tr>
+<tr><th>Version #2</th><td>1.2</td></tr>
+<tr><th>CPU Type</th><td>x86_64</td></tr>
+<tr><th>GCC Version</th><td>4.9.2</td></tr>
+</table>
+<h2>Test Results</h2><hr/>
+<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>18</a></td></tr>
+<tr><th>Total Source Files</th><td><a href='#Sources' style='color:Blue;'>18</a></td></tr>
+<tr><th>Total Objects</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr>
+<tr><th>Total Symbols / Types</th><td>127 / 177</td></tr>
+<tr><th>Compatibility</th>
+<td class='almost_compatible'>80.7%</td>
+</tr>
+</table>
+<h2>Problem Summary</h2><hr/>
+<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Added' style='color:Blue;'>6</a></td></tr>
+<tr><th>Removed Symbols</th><td>High</td><td class='failed'><a href='#Removed' style='color:Blue;'>1</a></td></tr>
+<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td class='failed'><a href='#Type_Problems_High' style='color:Blue;'>8</a></td></tr>
+<tr><td>Medium</td><td class='failed'><a href='#Type_Problems_Medium' style='color:Blue;'>28</a></td></tr>
+<tr><td>Low</td><td class='warning'><a href='#Type_Problems_Low' style='color:Blue;'>73</a></td></tr>
+<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr>
+<tr><td>Medium</td><td class='failed'><a href='#Symbol_Problems_Medium' style='color:Blue;'>4</a></td></tr>
+<tr><td>Low</td><td>0</td></tr>
+<tr><th>Problems with<br/>Constants</th><td>Low</td><td>0</td></tr>
+</table>
+
+<a name='Added'></a><h2>Added Symbols <span class='new'> 6 </span></h2><hr/>
+<span class='h_name'>j2k.h</span>, <span class='lib_name'>libopenjpeg.so</span><br/>
+<span class="iname">j2k_convert_progression_order <span class='sym_p'>( <span class='nowrap'>OPJ_PROG_ORDER <span class='color_p'>prg_order</span> )</span></span></span><br/>
+<br/>
+<span class='h_name'>jp2.h</span>, <span class='lib_name'>libopenjpeg.so</span><br/>
+<span class="iname">jp2_read_jp2h <span class='sym_p'>( <span class='nowrap'>opj_jp2_t* <span class='color_p'>jp2</span>,</span> <span class='nowrap'>opj_cio_t* <span class='color_p'>cio</span> )</span></span></span><br/>
+<span class="iname">jp2_write_jp2h <span class='sym_p'>( <span class='nowrap'>opj_jp2_t* <span class='color_p'>jp2</span>,</span> <span class='nowrap'>opj_cio_t* <span class='color_p'>cio</span> )</span></span></span><br/>
+<br/>
+<span class='h_name'>pi.h</span>, <span class='lib_name'>libopenjpeg.so</span><br/>
+<span class="iname">pi_create_decode <span class='sym_p'>( opj_image_t* <span class='color_p'>image</span>, <span class='nowrap'>opj_cp_t* <span class='color_p'>cp</span>,</span> <span class='nowrap'>int <span class='color_p'>tileno</span> )</span></span></span><br/>
+<span class="iname">pi_create_encode <span class='sym_p'>( opj_pi_iterator_t* <span class='color_p'>pi</span>, <span class='nowrap'>opj_cp_t* <span class='color_p'>cp</span>,</span> <span class='nowrap'>int <span class='color_p'>tileno</span>,</span> <span class='nowrap'>int <span class='color_p'>pino</span>,</span> <span class='nowrap'>int <span class='color_p'>tpnum</span>,</span> <span class='nowrap'>int <span class='color_p'>tppos</span> )</span></span></span><br/>
+<span class="iname">pi_initialise_encode <span class='sym_p'>( opj_image_t* <span class='color_p'>image</span>, <span class='nowrap'>opj_cp_t* <span class='color_p'>cp</span>,</span> <span class='nowrap'>int <span class='color_p'>tileno</span>,</span> <span class='nowrap'>J2K_T2_MODE <span class='color_p'>t2_mode</span> )</span></span></span><br/>
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Removed'></a><a name='Withdrawn'></a><h2>Removed Symbols <span class='failed'> 1 </span></h2><hr/>
+<span class='h_name'>pi.h</span>, <span class='lib_name'>libopenjpeg.so</span><br/>
+<span class="iname">pi_create <span class='sym_p'>( opj_image_t* <span class='color_p'>image</span>, <span class='nowrap'>opj_cp_t* <span class='color_p'>cp</span>,</span> <span class='nowrap'>int <span class='color_p'>tileno</span> )</span></span></span><br/>
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='High_Risk_Problems'></a><a name='Type_Problems_High'></a>
+<h2>Problems with Data Types, High Severity <span class='failed'> 8 </span></h2><hr/>
+<span class='h_name'>t1.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_1')">
+<span class='ext'>[+]</span> <span class='ttype'>struct</span> opj_t1 <span class='failed'> 8 </span></span>
+<br/>
+<div id="c_1" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Field <b>lut_ctxno_mag</b> has been removed from the middle position of this structural type.</td>
+<td>1) Previous accesses of applications to the removed field will be incorrect.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+<tr>
+<th>2</th>
+<td>Field <b>lut_ctxno_sc</b> has been removed from the middle position of this structural type.</td>
+<td>1) Previous accesses of applications to the removed field will be incorrect.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+<tr>
+<th>3</th>
+<td>Field <b>lut_ctxno_zc</b> has been removed from the middle position of this structural type.</td>
+<td>1) Previous accesses of applications to the removed field will be incorrect.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+<tr>
+<th>4</th>
+<td>Field <b>lut_nmsedec_ref</b> has been removed from the middle position of this structural type.</td>
+<td>1) Previous accesses of applications to the removed field will be incorrect.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+<tr>
+<th>5</th>
+<td>Field <b>lut_nmsedec_ref0</b> has been removed from the middle position of this structural type.</td>
+<td>1) Previous accesses of applications to the removed field will be incorrect.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+<tr>
+<th>6</th>
+<td>Field <b>lut_nmsedec_sig</b> has been removed from the middle position of this structural type.</td>
+<td>1) Previous accesses of applications to the removed field will be incorrect.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+<tr>
+<th>7</th>
+<td>Field <b>lut_nmsedec_sig0</b> has been removed from the middle position of this structural type.</td>
+<td>1) Previous accesses of applications to the removed field will be incorrect.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+<tr>
+<th>8</th>
+<td>Field <b>lut_spb</b> has been removed from the middle position of this structural type.</td>
+<td>1) Previous accesses of applications to the removed field will be incorrect.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_2')">
+[+] affected symbols: 4 (3.1%)</span>
+<div id="c_2" style="display:none;">
+<div class='affected'><span class='iname_a'>t1_create <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Return value (pointer) has base type 'struct opj_t1'.</div>
+<span class='iname_a'>t1_decode_cblks <span class='sym_p'>( <span class='nowrap'>opj_t1_t* <span class='fp'>t1</span>,</span> <span class='nowrap'>opj_tcd_tile_t* <i>tile</i>,</span> <span class='nowrap'>opj_tcp_t* <i>tcp</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 't1' (pointer) has base type 'struct opj_t1'.</div>
+<span class='iname_a'>t1_destroy <span class='sym_p'>( <span class='nowrap'>opj_t1_t* <span class='fp'>t1</span> )</span></span></span><br/>
+<div class='affect'>1st parameter 't1' (pointer) has base type 'struct opj_t1'.</div>
+<span class='iname_a'>t1_encode_cblks <span class='sym_p'>( <span class='nowrap'>opj_t1_t* <span class='fp'>t1</span>,</span> <span class='nowrap'>opj_tcd_tile_t* <i>tile</i>,</span> <span class='nowrap'>opj_tcp_t* <i>tcp</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 't1' (pointer) has base type 'struct opj_t1'.</div>
+</div>
+</div>
+<br/><br/></div>
+
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Medium_Risk_Problems'></a><a name='Type_Problems_Medium'></a>
+<h2>Problems with Data Types, Medium Severity <span class='failed'> 28 </span></h2><hr/>
+<span class='h_name'>j2k.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_3')">
+<span class='ext'>[+]</span> <span class='ttype'>struct</span> opj_cp <span class='failed'> 7 </span></span>
+<br/>
+<div id="c_3" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Field <b>cinema</b> has been added at the middle position of this structural type.</td>
+<td>1) Size of the inclusive type has been changed.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+<tr>
+<th>2</th>
+<td>Field <b>img_size</b> has been added at the middle position of this structural type.</td>
+<td>1) Size of the inclusive type has been changed.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+<tr>
+<th>3</th>
+<td>Field <b>limit_decoding</b> has been added at the middle position of this structural type.</td>
+<td>1) Size of the inclusive type has been changed.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+<tr>
+<th>4</th>
+<td>Field <b>max_comp_size</b> has been added at the middle position of this structural type.</td>
+<td>1) Size of the inclusive type has been changed.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+<tr>
+<th>5</th>
+<td>Field <b>rsiz</b> has been added at the middle position of this structural type.</td>
+<td>1) Size of the inclusive type has been changed.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+<tr>
+<th>6</th>
+<td>Field <b>tp_on</b> has been added at the middle position of this structural type.</td>
+<td>1) Size of the inclusive type has been changed.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+<tr>
+<th>7</th>
+<td>Field <b>tp_pos</b> has been added at the middle position of this structural type.</td>
+<td>1) Size of the inclusive type has been changed.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_4')">
+[+] affected symbols: 36 (28.3%)</span>
+<div id="c_4" style="display:none;">
+<div class='affected'><span class='iname_a'>j2k_create_compress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Field 'retval.cp' in return value (pointer) has base type 'struct opj_cp'.</div>
+<span class='iname_a'>j2k_create_decompress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Field 'retval.cp' in return value (pointer) has base type 'struct opj_cp'.</div>
+<span class='iname_a'>j2k_decode <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp' in 1st parameter 'j2k' (pointer) has base type 'struct opj_cp'.</div>
+<span class='iname_a'>j2k_decode_jpt_stream <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp' in 1st parameter 'j2k' (pointer) has base type 'struct opj_cp'.</div>
+<span class='iname_a'>j2k_destroy_compress <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp' in 1st parameter 'j2k' (pointer) has base type 'struct opj_cp'.</div>
+<span class='iname_a'>j2k_destroy_decompress <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp' in 1st parameter 'j2k' (pointer) has base type 'struct opj_cp'.</div>
+<span class='iname_a'>j2k_encode <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i>,</span> <span class='nowrap'>opj_image_t* <i>image</i>,</span> <span class='nowrap'>char* <i>index</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp' in 1st parameter 'j2k' (pointer) has base type 'struct opj_cp'.</div>
+<span class='iname_a'>j2k_setup_decoder <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_dparameters_t* <i>parameters</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp' in 1st parameter 'j2k' (pointer) has base type 'struct opj_cp'.</div>
+<span class='iname_a'>j2k_setup_encoder <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cparameters_t* <i>parameters</i>,</span> <span class='nowrap'>opj_image_t* <i>image</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp' in 1st parameter 'j2k' (pointer) has base type 'struct opj_cp'.</div>
+<span class='iname_a'>jp2_create_compress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Field 'retval.j2k.cp' in return value (pointer) has base type 'struct opj_cp'.</div>
+ <b>...</b>
+<br/>
+</div>
+</div>
+<br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_5')">
+<span class='ext'>[+]</span> <span class='ttype'>struct</span> opj_j2k <span class='failed'> 3 </span></span>
+<br/>
+<div id="c_5" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Field <b>cur_totnum_tp</b> has been added at the middle position of this structural type.</td>
+<td>1) Size of the inclusive type has been changed.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+<tr>
+<th>2</th>
+<td>Field <b>tlm_start</b> has been added at the middle position of this structural type.</td>
+<td>1) Size of the inclusive type has been changed.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+<tr>
+<th>3</th>
+<td>Field <b>tp_num</b> has been added at the middle position of this structural type.</td>
+<td>1) Size of the inclusive type has been changed.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_6')">
+[+] affected symbols: 17 (13.4%)</span>
+<div id="c_6" style="display:none;">
+<div class='affected'><span class='iname_a'>j2k_create_compress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Return value (pointer) has base type 'struct opj_j2k'.</div>
+<span class='iname_a'>j2k_create_decompress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Return value (pointer) has base type 'struct opj_j2k'.</div>
+<span class='iname_a'>j2k_decode <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'j2k' (pointer) has base type 'struct opj_j2k'.</div>
+<span class='iname_a'>j2k_decode_jpt_stream <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'j2k' (pointer) has base type 'struct opj_j2k'.</div>
+<span class='iname_a'>j2k_destroy_compress <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span> )</span></span></span><br/>
+<div class='affect'>1st parameter 'j2k' (pointer) has base type 'struct opj_j2k'.</div>
+<span class='iname_a'>j2k_destroy_decompress <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span> )</span></span></span><br/>
+<div class='affect'>1st parameter 'j2k' (pointer) has base type 'struct opj_j2k'.</div>
+<span class='iname_a'>j2k_encode <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i>,</span> <span class='nowrap'>opj_image_t* <i>image</i>,</span> <span class='nowrap'>char* <i>index</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'j2k' (pointer) has base type 'struct opj_j2k'.</div>
+<span class='iname_a'>j2k_setup_decoder <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_dparameters_t* <i>parameters</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'j2k' (pointer) has base type 'struct opj_j2k'.</div>
+<span class='iname_a'>j2k_setup_encoder <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cparameters_t* <i>parameters</i>,</span> <span class='nowrap'>opj_image_t* <i>image</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'j2k' (pointer) has base type 'struct opj_j2k'.</div>
+<span class='iname_a'>jp2_create_compress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Field 'retval.j2k' in return value (pointer) has base type 'struct opj_j2k'.</div>
+ <b>...</b>
+<br/>
+</div>
+</div>
+<br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_7')">
+<span class='ext'>[+]</span> <span class='ttype'>struct</span> opj_tcp <span class='failed'> 1 </span></span>
+<br/>
+<div id="c_7" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Size of field <b>pocs</b> has been changed from <b>1024</b> bytes to <b>4736</b> bytes.</td>
+<td>1) Size of the inclusive type has been changed.<br/>2) Previous accesses of applications and library functions to this field and fields at higher positions of the structure definition may be broken.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_8')">
+[+] affected symbols: 38 (29.9%)</span>
+<div id="c_8" style="display:none;">
+<div class='affected'><span class='iname_a'>j2k_create_compress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Field 'retval.cp.tcps' in return value (pointer) has base type 'struct opj_tcp'.</div>
+<span class='iname_a'>j2k_create_decompress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Field 'retval.cp.tcps' in return value (pointer) has base type 'struct opj_tcp'.</div>
+<span class='iname_a'>j2k_decode <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps' in 1st parameter 'j2k' (pointer) has base type 'struct opj_tcp'.</div>
+<span class='iname_a'>j2k_decode_jpt_stream <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps' in 1st parameter 'j2k' (pointer) has base type 'struct opj_tcp'.</div>
+<span class='iname_a'>j2k_destroy_compress <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps' in 1st parameter 'j2k' (pointer) has base type 'struct opj_tcp'.</div>
+<span class='iname_a'>j2k_destroy_decompress <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps' in 1st parameter 'j2k' (pointer) has base type 'struct opj_tcp'.</div>
+<span class='iname_a'>j2k_encode <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i>,</span> <span class='nowrap'>opj_image_t* <i>image</i>,</span> <span class='nowrap'>char* <i>index</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps' in 1st parameter 'j2k' (pointer) has base type 'struct opj_tcp'.</div>
+<span class='iname_a'>j2k_setup_decoder <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_dparameters_t* <i>parameters</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps' in 1st parameter 'j2k' (pointer) has base type 'struct opj_tcp'.</div>
+<span class='iname_a'>j2k_setup_encoder <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cparameters_t* <i>parameters</i>,</span> <span class='nowrap'>opj_image_t* <i>image</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps' in 1st parameter 'j2k' (pointer) has base type 'struct opj_tcp'.</div>
+<span class='iname_a'>jp2_create_compress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Field 'retval.j2k.cp.tcps' in return value (pointer) has base type 'struct opj_tcp'.</div>
+ <b>...</b>
+<br/>
+</div>
+</div>
+<br/><br/></div>
+
+<br/>
+<span class='h_name'>openjpeg.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_9')">
+<span class='ext'>[+]</span> <span class='ttype'>struct</span> opj_cparameters <span class='failed'> 1 </span></span>
+<br/>
+<div id="c_9" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Size of field <b>POC</b> has been changed from <b>1024</b> bytes to <b>4736</b> bytes.</td>
+<td>1) Size of the inclusive type has been changed.<br/>2) Previous accesses of applications and library functions to this field and fields at higher positions of the structure definition may be broken.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_10')">
+[+] affected symbols: 4 (3.1%)</span>
+<div id="c_10" style="display:none;">
+<div class='affected'><span class='iname_a'>j2k_setup_encoder <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <i>j2k</i>,</span> opj_cparameters_t* <span class='fp'>parameters</span>, <span class='nowrap'>opj_image_t* <i>image</i> )</span></span></span><br/>
+<div class='affect'>2nd parameter 'parameters' (pointer) has base type 'struct opj_cparameters'.</div>
+<span class='iname_a'>jp2_setup_encoder <span class='sym_p'>( <span class='nowrap'>opj_jp2_t* <i>jp2</i>,</span> opj_cparameters_t* <span class='fp'>parameters</span>, <span class='nowrap'>opj_image_t* <i>image</i> )</span></span></span><br/>
+<div class='affect'>2nd parameter 'parameters' (pointer) has base type 'struct opj_cparameters'.</div>
+<span class='iname_a'>opj_set_default_encoder_parameters <span class='sym_p'>( <span class='nowrap'>opj_cparameters_t* <span class='fp'>parameters</span> )</span></span></span><br/>
+<div class='affect'>1st parameter 'parameters' (pointer) has base type 'struct opj_cparameters'.</div>
+<span class='iname_a'>opj_setup_encoder <span class='sym_p'>( <span class='nowrap'>opj_cinfo_t* <i>cinfo</i>,</span> opj_cparameters_t* <span class='fp'>parameters</span>, <span class='nowrap'>opj_image_t* <i>image</i> )</span></span></span><br/>
+<div class='affect'>2nd parameter 'parameters' (pointer) has base type 'struct opj_cparameters'.</div>
+</div>
+</div>
+<br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_11')">
+<span class='ext'>[+]</span> <span class='ttype'>struct</span> opj_poc <span class='failed'> 7 </span></span>
+<br/>
+<div id="c_11" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Field <b>layno0</b> has been added at the middle position of this structural type.</td>
+<td>1) Size of the inclusive type has been changed.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+<tr>
+<th>2</th>
+<td>Field <b>precno0</b> has been added at the middle position of this structural type.</td>
+<td>1) Size of the inclusive type has been changed.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+<tr>
+<th>3</th>
+<td>Field <b>precno1</b> has been added at the middle position of this structural type.</td>
+<td>1) Size of the inclusive type has been changed.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+<tr>
+<th>4</th>
+<td>Field <b>prg1</b> has been added at the middle position of this structural type.</td>
+<td>1) Size of the inclusive type has been changed.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+<tr>
+<th>5</th>
+<td>Type of field <b>progorder</b> has been changed from <span class='nowrap'><b>char[4]</b> (<b>4</b> bytes)</span> to <span class='nowrap'><b>char[5]</b> (<b>5</b> bytes)</span>.</td>
+<td>1) This field may be incorrectly initialized or accessed by applications.<br/>2) Size of the inclusive type has been changed.</td>
+</tr>
+<tr>
+<th>6</th>
+<td>The relative position of field <b>progorder</b> has been changed from <b>7</b> to <b>6</b>.</td>
+<td>Applications will access incorrect memory when attempting to access this field.</td>
+</tr>
+<tr>
+<th>7</th>
+<td>The relative position of field <b>tile</b> has been changed from <b>6</b> to <b>7</b>.</td>
+<td>Applications will access incorrect memory when attempting to access this field.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_12')">
+[+] affected symbols: 41 (32.3%)</span>
+<div id="c_12" style="display:none;">
+<div class='affected'><span class='iname_a'>j2k_create_compress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Field 'retval.cp.tcps.pocs' in return value (pointer) has base type 'struct opj_poc'.</div>
+<span class='iname_a'>j2k_create_decompress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Field 'retval.cp.tcps.pocs' in return value (pointer) has base type 'struct opj_poc'.</div>
+<span class='iname_a'>j2k_decode <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps.pocs' in 1st parameter 'j2k' (pointer) has base type 'struct opj_poc'.</div>
+<span class='iname_a'>j2k_decode_jpt_stream <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps.pocs' in 1st parameter 'j2k' (pointer) has base type 'struct opj_poc'.</div>
+<span class='iname_a'>j2k_destroy_compress <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps.pocs' in 1st parameter 'j2k' (pointer) has base type 'struct opj_poc'.</div>
+<span class='iname_a'>j2k_destroy_decompress <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps.pocs' in 1st parameter 'j2k' (pointer) has base type 'struct opj_poc'.</div>
+<span class='iname_a'>j2k_encode <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i>,</span> <span class='nowrap'>opj_image_t* <i>image</i>,</span> <span class='nowrap'>char* <i>index</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps.pocs' in 1st parameter 'j2k' (pointer) has base type 'struct opj_poc'.</div>
+<span class='iname_a'>j2k_setup_decoder <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_dparameters_t* <i>parameters</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps.pocs' in 1st parameter 'j2k' (pointer) has base type 'struct opj_poc'.</div>
+<span class='iname_a'>j2k_setup_encoder <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <i>j2k</i>,</span> opj_cparameters_t* <span class='fp'>parameters</span>, <span class='nowrap'>opj_image_t* <i>image</i> )</span></span></span><br/>
+<div class='affect'>Field 'parameters.POC' in 2nd parameter 'parameters' (pointer) has base type 'struct opj_poc'.</div>
+<span class='iname_a'>jp2_create_compress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Field 'retval.j2k.cp.tcps.pocs' in return value (pointer) has base type 'struct opj_poc'.</div>
+ <b>...</b>
+<br/>
+</div>
+</div>
+<br/><br/></div>
+
+<br/>
+<span class='h_name'>pi.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_13')">
+<span class='ext'>[+]</span> <span class='ttype'>struct</span> opj_pi_iterator <span class='failed'> 2 </span></span>
+<br/>
+<div id="c_13" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Field <b>tp_on</b> has been added at the middle position of this structural type.</td>
+<td>1) Size of the inclusive type has been changed.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+<tr>
+<th>2</th>
+<td>Size of field <b>poc</b> has been changed from <b>32</b> bytes to <b>148</b> bytes.</td>
+<td>1) Size of the inclusive type has been changed.<br/>2) Previous accesses of applications and library functions to this field and fields at higher positions of the structure definition may be broken.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_14')">
+[+] affected symbols: 2 (1.6%)</span>
+<div id="c_14" style="display:none;">
+<div class='affected'><span class='iname_a'>pi_destroy <span class='sym_p'>( opj_pi_iterator_t* <span class='fp'>pi</span>, <span class='nowrap'>opj_cp_t* <i>cp</i>,</span> <span class='nowrap'>int <i>tileno</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'pi' (pointer) has base type 'struct opj_pi_iterator'.</div>
+<span class='iname_a'>pi_next <span class='sym_p'>( <span class='nowrap'>opj_pi_iterator_t* <span class='fp'>pi</span> )</span></span></span><br/>
+<div class='affect'>1st parameter 'pi' (pointer) has base type 'struct opj_pi_iterator'.</div>
+</div>
+</div>
+<br/><br/></div>
+
+<br/>
+<span class='h_name'>t1.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_15')">
+<span class='ext'>[+]</span> <span class='ttype'>struct</span> opj_t1 <span class='failed'> 4 </span></span>
+<br/>
+<div id="c_15" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Type of field <b>data</b> has been changed from <span class='nowrap'><b>int[1024]</b> (<b>4096</b> bytes)</span> to <span class='nowrap'><b>int*</b> (<b>8</b> bytes)</span>.</td>
+<td>This field may be incorrectly initialized or accessed by applications.</td>
+</tr>
+<tr>
+<th>2</th>
+<td>Type of field <b>flags</b> has been changed from <span class='nowrap'><b>int[1026]</b> (<b>4104</b> bytes)</span> to <span class='nowrap'><b>flag_t*</b> (<b>8</b> bytes)</span>.</td>
+<td>1) This field may be incorrectly initialized or accessed by applications.<br/>2) Size of the inclusive type has been changed.</td>
+</tr>
+<tr>
+<th>3</th>
+<td>The pointer level of field <b>data</b> has been increased from <b>0</b> to <b>1</b>.</td>
+<td>The library functions may try to access unallocated memory by the dereferencing of old field value and therefore cause a crash of applications.</td>
+</tr>
+<tr>
+<th>4</th>
+<td>The pointer level of field <b>flags</b> has been increased from <b>0</b> to <b>1</b>.</td>
+<td>The library functions may try to access unallocated memory by the dereferencing of old field value and therefore cause a crash of applications.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_16')">
+[+] affected symbols: 4 (3.1%)</span>
+<div id="c_16" style="display:none;">
+<div class='affected'><span class='iname_a'>t1_create <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Return value (pointer) has base type 'struct opj_t1'.</div>
+<span class='iname_a'>t1_decode_cblks <span class='sym_p'>( <span class='nowrap'>opj_t1_t* <span class='fp'>t1</span>,</span> <span class='nowrap'>opj_tcd_tile_t* <i>tile</i>,</span> <span class='nowrap'>opj_tcp_t* <i>tcp</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 't1' (pointer) has base type 'struct opj_t1'.</div>
+<span class='iname_a'>t1_destroy <span class='sym_p'>( <span class='nowrap'>opj_t1_t* <span class='fp'>t1</span> )</span></span></span><br/>
+<div class='affect'>1st parameter 't1' (pointer) has base type 'struct opj_t1'.</div>
+<span class='iname_a'>t1_encode_cblks <span class='sym_p'>( <span class='nowrap'>opj_t1_t* <span class='fp'>t1</span>,</span> <span class='nowrap'>opj_tcd_tile_t* <i>tile</i>,</span> <span class='nowrap'>opj_tcp_t* <i>tcp</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 't1' (pointer) has base type 'struct opj_t1'.</div>
+</div>
+</div>
+<br/><br/></div>
+
+<br/>
+<span class='h_name'>tcd.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_17')">
+<span class='ext'>[+]</span> <span class='ttype'>struct</span> opj_tcd <span class='failed'> 3 </span></span>
+<br/>
+<div id="c_17" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Field <b>cur_pino</b> has been added at the middle position of this structural type.</td>
+<td>1) Size of the inclusive type has been changed.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+<tr>
+<th>2</th>
+<td>Field <b>cur_tp_num</b> has been added at the middle position of this structural type.</td>
+<td>1) Size of the inclusive type has been changed.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+<tr>
+<th>3</th>
+<td>Field <b>tp_pos</b> has been added at the middle position of this structural type.</td>
+<td>1) Size of the inclusive type has been changed.<br/>2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_18')">
+[+] affected symbols: 14 (11%)</span>
+<div id="c_18" style="display:none;">
+<div class='affected'><span class='iname_a'>tcd_create <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Return value (pointer) has base type 'struct opj_tcd'.</div>
+<span class='iname_a'>tcd_decode_tile <span class='sym_p'>( <span class='nowrap'>opj_tcd_t* <span class='fp'>tcd</span>,</span> <span class='nowrap'>unsigned char* <i>src</i>,</span> <span class='nowrap'>int <i>len</i>,</span> <span class='nowrap'>int <i>tileno</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'tcd' (pointer) has base type 'struct opj_tcd'.</div>
+<span class='iname_a'>tcd_destroy <span class='sym_p'>( <span class='nowrap'>opj_tcd_t* <span class='fp'>tcd</span> )</span></span></span><br/>
+<div class='affect'>1st parameter 'tcd' (pointer) has base type 'struct opj_tcd'.</div>
+<span class='iname_a'>tcd_dump <span class='sym_p'>( <span class='nowrap'>FILE* <i>fd</i>,</span> <span class='nowrap'>opj_tcd_t* <span class='fp'>tcd</span>,</span> <span class='nowrap'>opj_tcd_image_t* <i>img</i> )</span></span></span><br/>
+<div class='affect'>2nd parameter 'tcd' (pointer) has base type 'struct opj_tcd'.</div>
+<span class='iname_a'>tcd_encode_tile <span class='sym_p'>( <span class='nowrap'>opj_tcd_t* <span class='fp'>tcd</span>,</span> <span class='nowrap'>int <i>tileno</i>,</span> <span class='nowrap'>unsigned char* <i>dest</i>,</span> <span class='nowrap'>int <i>len</i>,</span> <span class='nowrap'>opj_image_info_t* <i>image_info</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'tcd' (pointer) has base type 'struct opj_tcd'.</div>
+<span class='iname_a'>tcd_free_decode <span class='sym_p'>( <span class='nowrap'>opj_tcd_t* <span class='fp'>tcd</span> )</span></span></span><br/>
+<div class='affect'>1st parameter 'tcd' (pointer) has base type 'struct opj_tcd'.</div>
+<span class='iname_a'>tcd_free_encode <span class='sym_p'>( <span class='nowrap'>opj_tcd_t* <span class='fp'>tcd</span> )</span></span></span><br/>
+<div class='affect'>1st parameter 'tcd' (pointer) has base type 'struct opj_tcd'.</div>
+<span class='iname_a'>tcd_init_encode <span class='sym_p'>( <span class='nowrap'>opj_tcd_t* <span class='fp'>tcd</span>,</span> <span class='nowrap'>opj_image_t* <i>image</i>,</span> <span class='nowrap'>opj_cp_t* <i>cp</i>,</span> <span class='nowrap'>int <i>curtileno</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'tcd' (pointer) has base type 'struct opj_tcd'.</div>
+<span class='iname_a'>tcd_makelayer <span class='sym_p'>( <span class='nowrap'>opj_tcd_t* <span class='fp'>tcd</span>,</span> <span class='nowrap'>int <i>layno</i>,</span> <span class='nowrap'>double <i>thresh</i>,</span> <span class='nowrap'>int <i>final</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'tcd' (pointer) has base type 'struct opj_tcd'.</div>
+<span class='iname_a'>tcd_makelayer_fixed <span class='sym_p'>( <span class='nowrap'>opj_tcd_t* <span class='fp'>tcd</span>,</span> <span class='nowrap'>int <i>layno</i>,</span> <span class='nowrap'>int <i>final</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'tcd' (pointer) has base type 'struct opj_tcd'.</div>
+ <b>...</b>
+<br/>
+</div>
+</div>
+<br/><br/></div>
+
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Symbol_Problems_Medium'></a><a name='Interface_Problems_Medium'></a>
+<h2>Problems with Symbols, Medium Severity <span class='failed'> 4 </span></h2><hr/>
+<span class='h_name'>t2.h</span>, <span class='lib_name'>libopenjpeg.so</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_19')">
+<span class='ext'>[+]</span> t2_encode_packets <span class='sym_p'>( <span class='nowrap'>opj_t2_t* <span class='color_p'>t2</span>,</span> <span class='nowrap'>int <span class='color_p'>tileno</span>,</span> opj_tcd_tile_t* <span class='color_p'>tile</span>, <span class='nowrap'>int <span class='color_p'>maxlayers</span>,</span> unsigned char* <span class='color_p'>dest</span>, <span class='nowrap'>int <span class='color_p'>len</span>,</span> <span class='nowrap'>opj_image_info_t* <span class='color_p'>image_info</span> )</span></span> <span class='failed'> 4 </span></span>
+<br/>
+<div id="c_19" style="display:none;">
+
+
+<span class='new_sign_lbl'>changed to:</span>
+<br/>
+<span class='new_sign'>t2_encode_packets <span class='sym_p'>( <span class='nowrap'>opj_t2_t* <span class='color_p'>t2</span>,</span> <span class='nowrap'>int <span class='color_p'>tileno</span>,</span> opj_tcd_tile_t* <span class='color_p'>tile</span>, <span class='nowrap'>int <span class='color_p'>maxlayers</span>,</span> unsigned char* <span class='color_p'>dest</span>, <span class='nowrap'>int <span class='color_p'>len</span>,</span> opj_image_info_t* <span class='color_p'>image_info</span>, <span class='nowrap'>int <span class='color_p'>tpnum</span>,</span> <span class='nowrap'>int <span class='color_p'>tppos</span>,</span> <span class='nowrap'>int <span class='color_p'>pino</span>,</span> <span class='nowrap'>J2K_T2_MODE <span class='color_p'>t2_mode</span> )</span></span></span><br/>
+<table class='ptable'>
+<tr>
+<th width='2%'></th>
+<th width='47%'>Change</th>
+<th>Effect</th>
+</tr>
+<tr>
+<th>1</th>
+<td>Parameter <b>pino</b> of type <b>int</b> has been added to the calling stack.</td>
+<td>This parameter will not be initialized by old clients.</td>
+</tr>
+<tr>
+<th>2</th>
+<td>Parameter <b>t2_mode</b> of type <b>J2K_T2_MODE</b> has been added to the calling stack.</td>
+<td>This parameter will not be initialized by old clients.</td>
+</tr>
+<tr>
+<th>3</th>
+<td>Parameter <b>tpnum</b> of type <b>int</b> has been added to the calling stack.</td>
+<td>This parameter will not be initialized by old clients.</td>
+</tr>
+<tr>
+<th>4</th>
+<td>Parameter <b>tppos</b> of type <b>int</b> has been added to the calling stack.</td>
+<td>This parameter will not be initialized by old clients.</td>
+</tr>
+</table>
+<br/>
+</div>
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Low_Risk_Problems'></a><a name='Type_Problems_Low'></a>
+<h2>Problems with Data Types, Low Severity <span class='warning'> 73 </span></h2><hr/>
+<span class='h_name'>j2k.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_20')">
+<span class='ext'>[+]</span> <span class='ttype'>struct</span> opj_cp <span class='warning'> 2 </span></span>
+<br/>
+<div id="c_20" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Size of this type has been changed from <b>120</b> bytes to <b>152</b> bytes.</td>
+<td>The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.</td>
+</tr>
+<tr>
+<th>2</th>
+<td>Field <b>tp_flag</b> has been added to this type.</td>
+<td>This field will not be initialized by old clients.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_21')">
+[+] affected symbols: 36 (28.3%)</span>
+<div id="c_21" style="display:none;">
+<div class='affected'><span class='iname_a'>j2k_create_compress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Field 'retval.cp' in return value (pointer) has base type 'struct opj_cp'.</div>
+<span class='iname_a'>j2k_create_decompress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Field 'retval.cp' in return value (pointer) has base type 'struct opj_cp'.</div>
+<span class='iname_a'>j2k_decode <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp' in 1st parameter 'j2k' (pointer) has base type 'struct opj_cp'.</div>
+<span class='iname_a'>j2k_decode_jpt_stream <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp' in 1st parameter 'j2k' (pointer) has base type 'struct opj_cp'.</div>
+<span class='iname_a'>j2k_destroy_compress <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp' in 1st parameter 'j2k' (pointer) has base type 'struct opj_cp'.</div>
+<span class='iname_a'>j2k_destroy_decompress <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp' in 1st parameter 'j2k' (pointer) has base type 'struct opj_cp'.</div>
+<span class='iname_a'>j2k_encode <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i>,</span> <span class='nowrap'>opj_image_t* <i>image</i>,</span> <span class='nowrap'>char* <i>index</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp' in 1st parameter 'j2k' (pointer) has base type 'struct opj_cp'.</div>
+<span class='iname_a'>j2k_setup_decoder <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_dparameters_t* <i>parameters</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp' in 1st parameter 'j2k' (pointer) has base type 'struct opj_cp'.</div>
+<span class='iname_a'>j2k_setup_encoder <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cparameters_t* <i>parameters</i>,</span> <span class='nowrap'>opj_image_t* <i>image</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp' in 1st parameter 'j2k' (pointer) has base type 'struct opj_cp'.</div>
+<span class='iname_a'>jp2_create_compress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Field 'retval.j2k.cp' in return value (pointer) has base type 'struct opj_cp'.</div>
+ <b>...</b>
+<br/>
+</div>
+</div>
+<br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_22')">
+<span class='ext'>[+]</span> <span class='ttype'>struct</span> opj_j2k <span class='warning'> 3 </span></span>
+<br/>
+<div id="c_22" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Size of this type has been changed from <b>96</b> bytes to <b>120</b> bytes.</td>
+<td>The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.</td>
+</tr>
+<tr>
+<th>2</th>
+<td>Field <b>cur_tp_num</b> has been added to this type.</td>
+<td>This field will not be initialized by old clients.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>3</th>
+<td>Field <b>totnum_tp</b> has been added to this type.</td>
+<td>This field will not be initialized by old clients.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_23')">
+[+] affected symbols: 17 (13.4%)</span>
+<div id="c_23" style="display:none;">
+<div class='affected'><span class='iname_a'>j2k_create_compress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Return value (pointer) has base type 'struct opj_j2k'.</div>
+<span class='iname_a'>j2k_create_decompress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Return value (pointer) has base type 'struct opj_j2k'.</div>
+<span class='iname_a'>j2k_decode <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'j2k' (pointer) has base type 'struct opj_j2k'.</div>
+<span class='iname_a'>j2k_decode_jpt_stream <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'j2k' (pointer) has base type 'struct opj_j2k'.</div>
+<span class='iname_a'>j2k_destroy_compress <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span> )</span></span></span><br/>
+<div class='affect'>1st parameter 'j2k' (pointer) has base type 'struct opj_j2k'.</div>
+<span class='iname_a'>j2k_destroy_decompress <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span> )</span></span></span><br/>
+<div class='affect'>1st parameter 'j2k' (pointer) has base type 'struct opj_j2k'.</div>
+<span class='iname_a'>j2k_encode <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i>,</span> <span class='nowrap'>opj_image_t* <i>image</i>,</span> <span class='nowrap'>char* <i>index</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'j2k' (pointer) has base type 'struct opj_j2k'.</div>
+<span class='iname_a'>j2k_setup_decoder <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_dparameters_t* <i>parameters</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'j2k' (pointer) has base type 'struct opj_j2k'.</div>
+<span class='iname_a'>j2k_setup_encoder <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cparameters_t* <i>parameters</i>,</span> <span class='nowrap'>opj_image_t* <i>image</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'j2k' (pointer) has base type 'struct opj_j2k'.</div>
+<span class='iname_a'>jp2_create_compress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Field 'retval.j2k' in return value (pointer) has base type 'struct opj_j2k'.</div>
+ <b>...</b>
+<br/>
+</div>
+</div>
+<br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_24')">
+<span class='ext'>[+]</span> <span class='ttype'>struct</span> opj_tcp <span class='warning'> 1 </span></span>
+<br/>
+<div id="c_24" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Size of this type has been changed from <b>1896</b> bytes to <b>5608</b> bytes.</td>
+<td>The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_25')">
+[+] affected symbols: 38 (29.9%)</span>
+<div id="c_25" style="display:none;">
+<div class='affected'><span class='iname_a'>j2k_create_compress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Field 'retval.cp.tcps' in return value (pointer) has base type 'struct opj_tcp'.</div>
+<span class='iname_a'>j2k_create_decompress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Field 'retval.cp.tcps' in return value (pointer) has base type 'struct opj_tcp'.</div>
+<span class='iname_a'>j2k_decode <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps' in 1st parameter 'j2k' (pointer) has base type 'struct opj_tcp'.</div>
+<span class='iname_a'>j2k_decode_jpt_stream <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps' in 1st parameter 'j2k' (pointer) has base type 'struct opj_tcp'.</div>
+<span class='iname_a'>j2k_destroy_compress <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps' in 1st parameter 'j2k' (pointer) has base type 'struct opj_tcp'.</div>
+<span class='iname_a'>j2k_destroy_decompress <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps' in 1st parameter 'j2k' (pointer) has base type 'struct opj_tcp'.</div>
+<span class='iname_a'>j2k_encode <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i>,</span> <span class='nowrap'>opj_image_t* <i>image</i>,</span> <span class='nowrap'>char* <i>index</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps' in 1st parameter 'j2k' (pointer) has base type 'struct opj_tcp'.</div>
+<span class='iname_a'>j2k_setup_decoder <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_dparameters_t* <i>parameters</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps' in 1st parameter 'j2k' (pointer) has base type 'struct opj_tcp'.</div>
+<span class='iname_a'>j2k_setup_encoder <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cparameters_t* <i>parameters</i>,</span> <span class='nowrap'>opj_image_t* <i>image</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps' in 1st parameter 'j2k' (pointer) has base type 'struct opj_tcp'.</div>
+<span class='iname_a'>jp2_create_compress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Field 'retval.j2k.cp.tcps' in return value (pointer) has base type 'struct opj_tcp'.</div>
+ <b>...</b>
+<br/>
+</div>
+</div>
+<br/><br/></div>
+
+<br/>
+<span class='h_name'>openjpeg.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_26')">
+<span class='ext'>[+]</span> <span class='ttype'>struct</span> opj_cinfo <span class='warning'> 2 </span></span>
+<br/>
+<div id="c_26" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Field <b>mj2_handle</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>2</th>
+<td>Size of this type has been changed from <b>40</b> bytes to <b>48</b> bytes.</td>
+<td>The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_27')">
+[+] affected symbols: 4 (3.1%)</span>
+<div id="c_27" style="display:none;">
+<div class='affected'><span class='iname_a'>opj_create_compress <span class='sym_p'>( <span class='nowrap'>OPJ_CODEC_FORMAT <i>format</i> )</span></span></span><br/>
+<div class='affect'>Return value (pointer) has base type 'struct opj_cinfo'.</div>
+<span class='iname_a'>opj_destroy_compress <span class='sym_p'>( <span class='nowrap'>opj_cinfo_t* <span class='fp'>cinfo</span> )</span></span></span><br/>
+<div class='affect'>1st parameter 'cinfo' (pointer) has base type 'struct opj_cinfo'.</div>
+<span class='iname_a'>opj_encode <span class='sym_p'>( <span class='nowrap'>opj_cinfo_t* <span class='fp'>cinfo</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i>,</span> <span class='nowrap'>opj_image_t* <i>image</i>,</span> <span class='nowrap'>char* <i>index</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'cinfo' (pointer) has base type 'struct opj_cinfo'.</div>
+<span class='iname_a'>opj_setup_encoder <span class='sym_p'>( <span class='nowrap'>opj_cinfo_t* <span class='fp'>cinfo</span>,</span> <span class='nowrap'>opj_cparameters_t* <i>parameters</i>,</span> <span class='nowrap'>opj_image_t* <i>image</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'cinfo' (pointer) has base type 'struct opj_cinfo'.</div>
+</div>
+</div>
+<br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_28')">
+<span class='ext'>[+]</span> <span class='ttype'>struct</span> opj_common_struct <span class='warning'> 2 </span></span>
+<br/>
+<div id="c_28" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Field <b>mj2_handle</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>2</th>
+<td>Size of this type has been changed from <b>40</b> bytes to <b>48</b> bytes.</td>
+<td>The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_29')">
+[+] affected symbols: 53 (41.7%)</span>
+<div id="c_29" style="display:none;">
+<div class='affected'><span class='iname_a'>cio_getbp <span class='sym_p'>( <span class='nowrap'>opj_cio_t* <span class='fp'>cio</span> )</span></span></span><br/>
+<div class='affect'>Field 'cio.cinfo' in 1st parameter 'cio' (pointer) has base type 'struct opj_common_struct'.</div>
+<span class='iname_a'>cio_numbytesleft <span class='sym_p'>( <span class='nowrap'>opj_cio_t* <span class='fp'>cio</span> )</span></span></span><br/>
+<div class='affect'>Field 'cio.cinfo' in 1st parameter 'cio' (pointer) has base type 'struct opj_common_struct'.</div>
+<span class='iname_a'>cio_read <span class='sym_p'>( <span class='nowrap'>opj_cio_t* <span class='fp'>cio</span>,</span> <span class='nowrap'>int <i>n</i> )</span></span></span><br/>
+<div class='affect'>Field 'cio.cinfo' in 1st parameter 'cio' (pointer) has base type 'struct opj_common_struct'.</div>
+<span class='iname_a'>cio_seek <span class='sym_p'>( <span class='nowrap'>opj_cio_t* <span class='fp'>cio</span>,</span> <span class='nowrap'>int <i>pos</i> )</span></span></span><br/>
+<div class='affect'>Field 'cio.cinfo' in 1st parameter 'cio' (pointer) has base type 'struct opj_common_struct'.</div>
+<span class='iname_a'>cio_skip <span class='sym_p'>( <span class='nowrap'>opj_cio_t* <span class='fp'>cio</span>,</span> <span class='nowrap'>int <i>n</i> )</span></span></span><br/>
+<div class='affect'>Field 'cio.cinfo' in 1st parameter 'cio' (pointer) has base type 'struct opj_common_struct'.</div>
+<span class='iname_a'>cio_tell <span class='sym_p'>( <span class='nowrap'>opj_cio_t* <span class='fp'>cio</span> )</span></span></span><br/>
+<div class='affect'>Field 'cio.cinfo' in 1st parameter 'cio' (pointer) has base type 'struct opj_common_struct'.</div>
+<span class='iname_a'>cio_write <span class='sym_p'>( <span class='nowrap'>opj_cio_t* <span class='fp'>cio</span>,</span> <span class='nowrap'>unsigned int <i>v</i>,</span> <span class='nowrap'>int <i>n</i> )</span></span></span><br/>
+<div class='affect'>Field 'cio.cinfo' in 1st parameter 'cio' (pointer) has base type 'struct opj_common_struct'.</div>
+<span class='iname_a'>j2k_create_compress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <span class='fp'>cinfo</span> )</span></span></span><br/>
+<div class='affect'>1st parameter 'cinfo' (pointer) has base type 'struct opj_common_struct'.</div>
+<span class='iname_a'>j2k_create_decompress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <span class='fp'>cinfo</span> )</span></span></span><br/>
+<div class='affect'>1st parameter 'cinfo' (pointer) has base type 'struct opj_common_struct'.</div>
+<span class='iname_a'>j2k_decode <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <i>j2k</i>,</span> <span class='nowrap'>opj_cio_t* <span class='fp'>cio</span> )</span></span></span><br/>
+<div class='affect'>Field 'cio.cinfo' in 2nd parameter 'cio' (pointer) has base type 'struct opj_common_struct'.</div>
+ <b>...</b>
+<br/>
+</div>
+</div>
+<br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_30')">
+<span class='ext'>[+]</span> <span class='ttype'>struct</span> opj_cparameters <span class='warning'> 20 </span></span>
+<br/>
+<div id="c_30" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Field <b>cp_cinema</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>2</th>
+<td>Field <b>cp_rsiz</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>3</th>
+<td>Field <b>jpwl_epc_on</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>4</th>
+<td>Field <b>jpwl_hprot_MH</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>5</th>
+<td>Field <b>jpwl_hprot_TPH</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>6</th>
+<td>Field <b>jpwl_hprot_TPH_tileno</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>7</th>
+<td>Field <b>jpwl_pprot</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>8</th>
+<td>Field <b>jpwl_pprot_packno</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>9</th>
+<td>Field <b>jpwl_pprot_tileno</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>10</th>
+<td>Field <b>jpwl_sens_MH</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>11</th>
+<td>Field <b>jpwl_sens_TPH</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>12</th>
+<td>Field <b>jpwl_sens_TPH_tileno</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>13</th>
+<td>Field <b>jpwl_sens_addr</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>14</th>
+<td>Field <b>jpwl_sens_range</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>15</th>
+<td>Field <b>jpwl_sens_size</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>16</th>
+<td>Field <b>max_comp_size</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>17</th>
+<td>Field <b>tp_flag</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>18</th>
+<td>Field <b>tp_on</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>19</th>
+<td>Size of this type has been changed from <b>14504</b> bytes to <b>18704</b> bytes.</td>
+<td>The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.</td>
+</tr>
+<tr>
+<th>20</th>
+<td>Field <b>tcp_mct</b> has been added to this type.</td>
+<td>This field will not be initialized by old clients.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_31')">
+[+] affected symbols: 4 (3.1%)</span>
+<div id="c_31" style="display:none;">
+<div class='affected'><span class='iname_a'>j2k_setup_encoder <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <i>j2k</i>,</span> opj_cparameters_t* <span class='fp'>parameters</span>, <span class='nowrap'>opj_image_t* <i>image</i> )</span></span></span><br/>
+<div class='affect'>2nd parameter 'parameters' (pointer) has base type 'struct opj_cparameters'.</div>
+<span class='iname_a'>jp2_setup_encoder <span class='sym_p'>( <span class='nowrap'>opj_jp2_t* <i>jp2</i>,</span> opj_cparameters_t* <span class='fp'>parameters</span>, <span class='nowrap'>opj_image_t* <i>image</i> )</span></span></span><br/>
+<div class='affect'>2nd parameter 'parameters' (pointer) has base type 'struct opj_cparameters'.</div>
+<span class='iname_a'>opj_set_default_encoder_parameters <span class='sym_p'>( <span class='nowrap'>opj_cparameters_t* <span class='fp'>parameters</span> )</span></span></span><br/>
+<div class='affect'>1st parameter 'parameters' (pointer) has base type 'struct opj_cparameters'.</div>
+<span class='iname_a'>opj_setup_encoder <span class='sym_p'>( <span class='nowrap'>opj_cinfo_t* <i>cinfo</i>,</span> opj_cparameters_t* <span class='fp'>parameters</span>, <span class='nowrap'>opj_image_t* <i>image</i> )</span></span></span><br/>
+<div class='affect'>2nd parameter 'parameters' (pointer) has base type 'struct opj_cparameters'.</div>
+</div>
+</div>
+<br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_32')">
+<span class='ext'>[+]</span> <span class='ttype'>struct</span> opj_dinfo <span class='warning'> 2 </span></span>
+<br/>
+<div id="c_32" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Field <b>mj2_handle</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>2</th>
+<td>Size of this type has been changed from <b>40</b> bytes to <b>48</b> bytes.</td>
+<td>The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_33')">
+[+] affected symbols: 4 (3.1%)</span>
+<div id="c_33" style="display:none;">
+<div class='affected'><span class='iname_a'>opj_create_decompress <span class='sym_p'>( <span class='nowrap'>OPJ_CODEC_FORMAT <i>format</i> )</span></span></span><br/>
+<div class='affect'>Return value (pointer) has base type 'struct opj_dinfo'.</div>
+<span class='iname_a'>opj_decode <span class='sym_p'>( <span class='nowrap'>opj_dinfo_t* <span class='fp'>dinfo</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'dinfo' (pointer) has base type 'struct opj_dinfo'.</div>
+<span class='iname_a'>opj_destroy_decompress <span class='sym_p'>( <span class='nowrap'>opj_dinfo_t* <span class='fp'>dinfo</span> )</span></span></span><br/>
+<div class='affect'>1st parameter 'dinfo' (pointer) has base type 'struct opj_dinfo'.</div>
+<span class='iname_a'>opj_setup_decoder <span class='sym_p'>( <span class='nowrap'>opj_dinfo_t* <span class='fp'>dinfo</span>,</span> <span class='nowrap'>opj_dparameters_t* <i>parameters</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'dinfo' (pointer) has base type 'struct opj_dinfo'.</div>
+</div>
+</div>
+<br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_34')">
+<span class='ext'>[+]</span> <span class='ttype'>struct</span> opj_dparameters <span class='warning'> 5 </span></span>
+<br/>
+<div id="c_34" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Field <b>cp_limit_decoding</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>2</th>
+<td>Field <b>jpwl_correct</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>3</th>
+<td>Field <b>jpwl_exp_comps</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>4</th>
+<td>Field <b>jpwl_max_tiles</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>5</th>
+<td>Size of this type has been changed from <b>8208</b> bytes to <b>8224</b> bytes.</td>
+<td>The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_35')">
+[+] affected symbols: 4 (3.1%)</span>
+<div id="c_35" style="display:none;">
+<div class='affected'><span class='iname_a'>j2k_setup_decoder <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <i>j2k</i>,</span> <span class='nowrap'>opj_dparameters_t* <span class='fp'>parameters</span> )</span></span></span><br/>
+<div class='affect'>2nd parameter 'parameters' (pointer) has base type 'struct opj_dparameters'.</div>
+<span class='iname_a'>jp2_setup_decoder <span class='sym_p'>( <span class='nowrap'>opj_jp2_t* <i>jp2</i>,</span> <span class='nowrap'>opj_dparameters_t* <span class='fp'>parameters</span> )</span></span></span><br/>
+<div class='affect'>2nd parameter 'parameters' (pointer) has base type 'struct opj_dparameters'.</div>
+<span class='iname_a'>opj_set_default_decoder_parameters <span class='sym_p'>( <span class='nowrap'>opj_dparameters_t* <span class='fp'>parameters</span> )</span></span></span><br/>
+<div class='affect'>1st parameter 'parameters' (pointer) has base type 'struct opj_dparameters'.</div>
+<span class='iname_a'>opj_setup_decoder <span class='sym_p'>( <span class='nowrap'>opj_dinfo_t* <i>dinfo</i>,</span> <span class='nowrap'>opj_dparameters_t* <span class='fp'>parameters</span> )</span></span></span><br/>
+<div class='affect'>2nd parameter 'parameters' (pointer) has base type 'struct opj_dparameters'.</div>
+</div>
+</div>
+<br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_36')">
+<span class='ext'>[+]</span> <span class='ttype'>struct</span> opj_poc <span class='warning'> 25 </span></span>
+<br/>
+<div id="c_36" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Field <b>compE</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>2</th>
+<td>Field <b>compS</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>3</th>
+<td>Field <b>comp_t</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>4</th>
+<td>Field <b>dx</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>5</th>
+<td>Field <b>dy</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>6</th>
+<td>Field <b>layE</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>7</th>
+<td>Field <b>layS</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>8</th>
+<td>Field <b>lay_t</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>9</th>
+<td>Field <b>prcE</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>10</th>
+<td>Field <b>prcS</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>11</th>
+<td>Field <b>prc_t</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>12</th>
+<td>Field <b>resE</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>13</th>
+<td>Field <b>resS</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>14</th>
+<td>Field <b>res_t</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>15</th>
+<td>Field <b>tx0</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>16</th>
+<td>Field <b>tx0_t</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>17</th>
+<td>Field <b>tx1</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>18</th>
+<td>Field <b>txE</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>19</th>
+<td>Field <b>txS</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>20</th>
+<td>Field <b>ty0</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>21</th>
+<td>Field <b>ty0_t</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>22</th>
+<td>Field <b>ty1</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>23</th>
+<td>Field <b>tyE</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>24</th>
+<td>Field <b>tyS</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>25</th>
+<td>Size of this type has been changed from <b>32</b> bytes to <b>148</b> bytes.</td>
+<td>The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_37')">
+[+] affected symbols: 41 (32.3%)</span>
+<div id="c_37" style="display:none;">
+<div class='affected'><span class='iname_a'>j2k_create_compress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Field 'retval.cp.tcps.pocs' in return value (pointer) has base type 'struct opj_poc'.</div>
+<span class='iname_a'>j2k_create_decompress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Field 'retval.cp.tcps.pocs' in return value (pointer) has base type 'struct opj_poc'.</div>
+<span class='iname_a'>j2k_decode <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps.pocs' in 1st parameter 'j2k' (pointer) has base type 'struct opj_poc'.</div>
+<span class='iname_a'>j2k_decode_jpt_stream <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps.pocs' in 1st parameter 'j2k' (pointer) has base type 'struct opj_poc'.</div>
+<span class='iname_a'>j2k_destroy_compress <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps.pocs' in 1st parameter 'j2k' (pointer) has base type 'struct opj_poc'.</div>
+<span class='iname_a'>j2k_destroy_decompress <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps.pocs' in 1st parameter 'j2k' (pointer) has base type 'struct opj_poc'.</div>
+<span class='iname_a'>j2k_encode <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_cio_t* <i>cio</i>,</span> <span class='nowrap'>opj_image_t* <i>image</i>,</span> <span class='nowrap'>char* <i>index</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps.pocs' in 1st parameter 'j2k' (pointer) has base type 'struct opj_poc'.</div>
+<span class='iname_a'>j2k_setup_decoder <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <span class='fp'>j2k</span>,</span> <span class='nowrap'>opj_dparameters_t* <i>parameters</i> )</span></span></span><br/>
+<div class='affect'>Field 'j2k.cp.tcps.pocs' in 1st parameter 'j2k' (pointer) has base type 'struct opj_poc'.</div>
+<span class='iname_a'>j2k_setup_encoder <span class='sym_p'>( <span class='nowrap'>opj_j2k_t* <i>j2k</i>,</span> opj_cparameters_t* <span class='fp'>parameters</span>, <span class='nowrap'>opj_image_t* <i>image</i> )</span></span></span><br/>
+<div class='affect'>Field 'parameters.POC' in 2nd parameter 'parameters' (pointer) has base type 'struct opj_poc'.</div>
+<span class='iname_a'>jp2_create_compress <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Field 'retval.j2k.cp.tcps.pocs' in return value (pointer) has base type 'struct opj_poc'.</div>
+ <b>...</b>
+<br/>
+</div>
+</div>
+<br/><br/></div>
+
+<br/>
+<span class='h_name'>pi.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_38')">
+<span class='ext'>[+]</span> <span class='ttype'>struct</span> opj_pi_iterator <span class='warning'> 1 </span></span>
+<br/>
+<div id="c_38" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Size of this type has been changed from <b>120</b> bytes to <b>248</b> bytes.</td>
+<td>The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_39')">
+[+] affected symbols: 2 (1.6%)</span>
+<div id="c_39" style="display:none;">
+<div class='affected'><span class='iname_a'>pi_destroy <span class='sym_p'>( opj_pi_iterator_t* <span class='fp'>pi</span>, <span class='nowrap'>opj_cp_t* <i>cp</i>,</span> <span class='nowrap'>int <i>tileno</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'pi' (pointer) has base type 'struct opj_pi_iterator'.</div>
+<span class='iname_a'>pi_next <span class='sym_p'>( <span class='nowrap'>opj_pi_iterator_t* <span class='fp'>pi</span> )</span></span></span><br/>
+<div class='affect'>1st parameter 'pi' (pointer) has base type 'struct opj_pi_iterator'.</div>
+</div>
+</div>
+<br/><br/></div>
+
+<br/>
+<span class='h_name'>t1.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_40')">
+<span class='ext'>[+]</span> <span class='ttype'>struct</span> opj_t1 <span class='warning'> 6 </span></span>
+<br/>
+<div id="c_40" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Field <b>datasize</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>2</th>
+<td>Field <b>flags_stride</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>3</th>
+<td>Field <b>flagssize</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>4</th>
+<td>Field <b>h</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>5</th>
+<td>Field <b>w</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>6</th>
+<td>Size of this type has been changed from <b>8429608</b> bytes to <b>64</b> bytes.</td>
+<td>The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_41')">
+[+] affected symbols: 4 (3.1%)</span>
+<div id="c_41" style="display:none;">
+<div class='affected'><span class='iname_a'>t1_create <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Return value (pointer) has base type 'struct opj_t1'.</div>
+<span class='iname_a'>t1_decode_cblks <span class='sym_p'>( <span class='nowrap'>opj_t1_t* <span class='fp'>t1</span>,</span> <span class='nowrap'>opj_tcd_tile_t* <i>tile</i>,</span> <span class='nowrap'>opj_tcp_t* <i>tcp</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 't1' (pointer) has base type 'struct opj_t1'.</div>
+<span class='iname_a'>t1_destroy <span class='sym_p'>( <span class='nowrap'>opj_t1_t* <span class='fp'>t1</span> )</span></span></span><br/>
+<div class='affect'>1st parameter 't1' (pointer) has base type 'struct opj_t1'.</div>
+<span class='iname_a'>t1_encode_cblks <span class='sym_p'>( <span class='nowrap'>opj_t1_t* <span class='fp'>t1</span>,</span> <span class='nowrap'>opj_tcd_tile_t* <i>tile</i>,</span> <span class='nowrap'>opj_tcp_t* <i>tcp</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 't1' (pointer) has base type 'struct opj_t1'.</div>
+</div>
+</div>
+<br/><br/></div>
+
+<br/>
+<span class='h_name'>tcd.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_42')">
+<span class='ext'>[+]</span> <span class='ttype'>struct</span> opj_tcd <span class='warning'> 4 </span></span>
+<br/>
+<div id="c_42" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr>
+<th>1</th>
+<td>Field <b>encoding_time</b> has been added to this type.</td>
+<td>1) This field will not be initialized by old clients.<br/>2) Size of the inclusive type has been changed.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>2</th>
+<td>Size of this type has been changed from <b>56</b> bytes to <b>88</b> bytes.</td>
+<td>The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications.</td>
+</tr>
+<tr>
+<th>3</th>
+<td>Field <b>cur_totnum_tp</b> has been added to this type.</td>
+<td>This field will not be initialized by old clients.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+<tr>
+<th>4</th>
+<td>Field <b>tp_num</b> has been added to this type.</td>
+<td>This field will not be initialized by old clients.<br/><b>NOTE</b>: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications.</td>
+</tr>
+</table>
+<span class="sect_aff" onclick="javascript:showContent(this, 'c_43')">
+[+] affected symbols: 14 (11%)</span>
+<div id="c_43" style="display:none;">
+<div class='affected'><span class='iname_a'>tcd_create <span class='sym_p'>( <span class='nowrap'>opj_common_ptr <i>cinfo</i> )</span></span></span><br/>
+<div class='affect'>Return value (pointer) has base type 'struct opj_tcd'.</div>
+<span class='iname_a'>tcd_decode_tile <span class='sym_p'>( <span class='nowrap'>opj_tcd_t* <span class='fp'>tcd</span>,</span> <span class='nowrap'>unsigned char* <i>src</i>,</span> <span class='nowrap'>int <i>len</i>,</span> <span class='nowrap'>int <i>tileno</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'tcd' (pointer) has base type 'struct opj_tcd'.</div>
+<span class='iname_a'>tcd_destroy <span class='sym_p'>( <span class='nowrap'>opj_tcd_t* <span class='fp'>tcd</span> )</span></span></span><br/>
+<div class='affect'>1st parameter 'tcd' (pointer) has base type 'struct opj_tcd'.</div>
+<span class='iname_a'>tcd_dump <span class='sym_p'>( <span class='nowrap'>FILE* <i>fd</i>,</span> <span class='nowrap'>opj_tcd_t* <span class='fp'>tcd</span>,</span> <span class='nowrap'>opj_tcd_image_t* <i>img</i> )</span></span></span><br/>
+<div class='affect'>2nd parameter 'tcd' (pointer) has base type 'struct opj_tcd'.</div>
+<span class='iname_a'>tcd_encode_tile <span class='sym_p'>( <span class='nowrap'>opj_tcd_t* <span class='fp'>tcd</span>,</span> <span class='nowrap'>int <i>tileno</i>,</span> <span class='nowrap'>unsigned char* <i>dest</i>,</span> <span class='nowrap'>int <i>len</i>,</span> <span class='nowrap'>opj_image_info_t* <i>image_info</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'tcd' (pointer) has base type 'struct opj_tcd'.</div>
+<span class='iname_a'>tcd_free_decode <span class='sym_p'>( <span class='nowrap'>opj_tcd_t* <span class='fp'>tcd</span> )</span></span></span><br/>
+<div class='affect'>1st parameter 'tcd' (pointer) has base type 'struct opj_tcd'.</div>
+<span class='iname_a'>tcd_free_encode <span class='sym_p'>( <span class='nowrap'>opj_tcd_t* <span class='fp'>tcd</span> )</span></span></span><br/>
+<div class='affect'>1st parameter 'tcd' (pointer) has base type 'struct opj_tcd'.</div>
+<span class='iname_a'>tcd_init_encode <span class='sym_p'>( <span class='nowrap'>opj_tcd_t* <span class='fp'>tcd</span>,</span> <span class='nowrap'>opj_image_t* <i>image</i>,</span> <span class='nowrap'>opj_cp_t* <i>cp</i>,</span> <span class='nowrap'>int <i>curtileno</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'tcd' (pointer) has base type 'struct opj_tcd'.</div>
+<span class='iname_a'>tcd_makelayer <span class='sym_p'>( <span class='nowrap'>opj_tcd_t* <span class='fp'>tcd</span>,</span> <span class='nowrap'>int <i>layno</i>,</span> <span class='nowrap'>double <i>thresh</i>,</span> <span class='nowrap'>int <i>final</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'tcd' (pointer) has base type 'struct opj_tcd'.</div>
+<span class='iname_a'>tcd_makelayer_fixed <span class='sym_p'>( <span class='nowrap'>opj_tcd_t* <span class='fp'>tcd</span>,</span> <span class='nowrap'>int <i>layno</i>,</span> <span class='nowrap'>int <i>final</i> )</span></span></span><br/>
+<div class='affect'>1st parameter 'tcd' (pointer) has base type 'struct opj_tcd'.</div>
+ <b>...</b>
+<br/>
+</div>
+</div>
+<br/><br/></div>
+
+<br/>
+<a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Headers'></a><h2>Header Files <span class='gray'> 18 </span></h2><hr/>
+<div class='h_list'>
+bio.h<br/>
+cio.h<br/>
+dwt.h<br/>
+event.h<br/>
+image.h<br/>
+j2k.h<br/>
+j2k_lib.h<br/>
+jp2.h<br/>
+jpt.h<br/>
+mct.h<br/>
+mqc.h<br/>
+openjpeg.h<br/>
+pi.h<br/>
+raw.h<br/>
+t1.h<br/>
+t2.h<br/>
+tcd.h<br/>
+tgt.h<br/>
+</div>
+<br/><a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Sources'></a><h2>Source Files <span class='gray'> 18 </span></h2><hr/>
+<div class='h_list'>
+bio.c<br/>
+cio.c<br/>
+dwt.c<br/>
+event.c<br/>
+image.c<br/>
+j2k.c<br/>
+j2k_lib.c<br/>
+jp2.c<br/>
+jpt.c<br/>
+mct.c<br/>
+mqc.c<br/>
+openjpeg.c<br/>
+pi.c<br/>
+raw.c<br/>
+t1.c<br/>
+t2.c<br/>
+tcd.c<br/>
+tgt.c<br/>
+</div>
+<br/><a class='top_ref' href='#Top'>to the top</a><br/>
+<a name='Libs'></a><h2>Objects <span class='gray'> 1 </span></h2><hr/>
+<div class='lib_list'>
+libopenjpeg.so<br/>
+</div>
+<br/><a class='top_ref' href='#Top'>to the top</a><br/>
+</div>
+<br/><br/><br/>
+<hr/>
+<div class='footer' align='right'><i>Generated by <a href='http://lvc.github.io/abi-compliance-checker/'>ABI Compliance Checker</a> 1.99.21  </i>
+</div>
+<br/>
+
+</body></html>
--- /dev/null
+{
+ "Affected": "19.3",
+ "Added": 6,
+ "Removed": 1,
+ "TotalProblems": 113,
+ "Object1": "lib/libopenjpeg.so",
+ "Object2": "lib/libopenjpeg.so"
+}
\ No newline at end of file
-<!-- verdict:compatible;affected:0;added:0;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:0;tool_version:1.99.15 -->
+<!-- verdict:compatible;affected:0;added:0;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:0;tool_version:1.99.21 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <meta name="keywords" content="libopenjp2, binary compatibility, API, report" />
- <meta name="description" content="Binary compatibility report for the libopenjp2 object between 2.1 and current versions on x86_64" />
- <title>
- libopenjp2: 2.1 to current binary compatibility report
- </title>
- <style type="text/css">
- body {
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="keywords" content="libopenjp2, binary compatibility, API, report" />
+<meta name="description" content="Binary compatibility report for the libopenjp2 object between 2.1 and current versions on x86_64" />
+<title>libopenjp2: 2.1 to current binary compatibility report</title>
+<style type="text/css">
+body {
font-family:Arial, sans-serif;
background-color:White;
color:Black;
span:hover.section {
color:#336699;
}
-span.section_affected {
+span.sect_aff {
cursor:pointer;
margin-left:7px;
padding-left:15px;
font-size:0.875em;
color:#cc3300;
}
-span.section_info {
+span.sect_info {
cursor:pointer;
margin-left:7px;
padding-left:15px;
font-size:0.875em;
color:Black;
}
-span.extendable {
+span.ext {
font-weight:100;
}
span.h_name {
border:1px solid gray;
padding: 3px;
font-size:0.875em;
+ text-align:left;
+ vertical-align:top;
}
table.vtable {
border-collapse:collapse;
font-style:italic;
color:Brown;
}
-span.param {
+span.p {
font-style:italic;
}
-span.focus_p {
+span.fp {
font-style:italic;
- /* color:Red; */
- background-color:#FFCCCC;
+ background-color:#DCDCDC;
}
span.ttype {
font-weight:100;
white-space:nowrap;
font-weight:bold;
}
-td.passed {
+.passed {
background-color:#CCFFCC;
}
-td.warning {
+.warning {
background-color:#F4F4AF;
}
-td.failed {
+.failed {
background-color:#FFCCCC;
}
-td.new {
+.new {
background-color:#C6DEFF;
}
+.compatible {
+ background-color:#CCFFCC;
+}
+.almost_compatible {
+ background-color:#FFDAA3;
+}
+.incompatible {
+ background-color:#FFCCCC;
+}
+.gray {
+ background-color:#DCDCDC;
+}
.top_ref {
font-size:0.69em;
}
.footer {
font-size:0.75em;
}
-
- </style>
- <script type="text/javascript" language="JavaScript">
- <!--
- function showContent(header, id)
+</style>
+<script type="text/javascript" language="JavaScript">
+<!--
+function showContent(header, id)
{
e = document.getElementById(id);
if(e.style.display == 'none')
header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[+]");
}
}
- -->
- </script>
- </head>
+-->
+</script>
+</head>
+
<body>
<div><a name='Top'></a>
<h1>Binary compatibility report for the <span style='color:Blue;'>libopenjp2.so</span> object between <span style='color:Red;'>2.1</span> and <span style='color:Red;'>current</span> versions on <span style='color:Blue;'>x86_64</span></h1>
<tr><th>Total Source Files</th><td><a href='#Sources' style='color:Blue;'>3</a></td></tr>
<tr><th>Total Objects</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr>
<tr><th>Total Symbols / Types</th><td>43 / 110</td></tr>
-<tr><th>Verdict</th><td><span style='color:Green;'><b>Compatible</b></span></td></tr>
+<tr><th>Compatibility</th>
+<td class='compatible'>100%</td>
+</tr>
</table>
<h2>Problem Summary</h2><hr/>
<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td>0</td></tr>
<tr><th>Problems with<br/>Constants</th><td>Low</td><td>0</td></tr>
</table>
-<a name='Headers'></a><h2>Header Files (1)</h2><hr/>
+<a name='Headers'></a><h2>Header Files <span class='gray'> 1 </span></h2><hr/>
<div class='h_list'>
openjpeg.h<br/>
</div>
<br/><a class='top_ref' href='#Top'>to the top</a><br/>
-<a name='Sources'></a><h2>Source Files (3)</h2><hr/>
+<a name='Sources'></a><h2>Source Files <span class='gray'> 3 </span></h2><hr/>
<div class='h_list'>
cio.c<br/>
image.c<br/>
openjpeg.c<br/>
</div>
<br/><a class='top_ref' href='#Top'>to the top</a><br/>
-<a name='Libs'></a><h2>Objects (1)</h2><hr/>
+<a name='Libs'></a><h2>Objects <span class='gray'> 1 </span></h2><hr/>
<div class='lib_list'>
libopenjp2.so.2.1.0<br/>
</div>
<br/><a class='top_ref' href='#Top'>to the top</a><br/>
</div>
<br/><br/><br/>
-<hr/><div class='footer' align='right'><i>Generated on Sun Jun 19 23:35:50 2016 by <a href='http://lvc.github.io/abi-compliance-checker/'>ABI Compliance Checker</a> 1.99.15  </i></div><br/>
+<hr/>
+<div class='footer' align='right'><i>Generated by <a href='http://lvc.github.io/abi-compliance-checker/'>ABI Compliance Checker</a> 1.99.21  </i>
+</div>
+<br/>
</body></html>
-<!-- verdict:compatible;affected:0;added:0;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:0;tool_version:1.99.15 -->
+<!-- verdict:compatible;affected:0;added:0;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:0;tool_version:1.99.21 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <meta name="keywords" content="openjpeg, source compatibility, API, report" />
- <meta name="description" content="Source compatibility report for the openjpeg object between 2.1 and current versions" />
- <title>
- openjpeg: 2.1 to current source compatibility report
- </title>
- <style type="text/css">
- body {
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="keywords" content="openjpeg, source compatibility, API, report" />
+<meta name="description" content="Source compatibility report for the openjpeg object between 2.1 and current versions" />
+<title>openjpeg: 2.1 to current source compatibility report</title>
+<style type="text/css">
+body {
font-family:Arial, sans-serif;
background-color:White;
color:Black;
span:hover.section {
color:#336699;
}
-span.section_affected {
+span.sect_aff {
cursor:pointer;
margin-left:7px;
padding-left:15px;
font-size:0.875em;
color:#cc3300;
}
-span.section_info {
+span.sect_info {
cursor:pointer;
margin-left:7px;
padding-left:15px;
font-size:0.875em;
color:Black;
}
-span.extendable {
+span.ext {
font-weight:100;
}
span.h_name {
border:1px solid gray;
padding: 3px;
font-size:0.875em;
+ text-align:left;
+ vertical-align:top;
}
table.vtable {
border-collapse:collapse;
font-style:italic;
color:Brown;
}
-span.param {
+span.p {
font-style:italic;
}
-span.focus_p {
+span.fp {
font-style:italic;
- /* color:Red; */
- background-color:#FFCCCC;
+ background-color:#DCDCDC;
}
span.ttype {
font-weight:100;
white-space:nowrap;
font-weight:bold;
}
-td.passed {
+.passed {
background-color:#CCFFCC;
}
-td.warning {
+.warning {
background-color:#F4F4AF;
}
-td.failed {
+.failed {
background-color:#FFCCCC;
}
-td.new {
+.new {
background-color:#C6DEFF;
}
+.compatible {
+ background-color:#CCFFCC;
+}
+.almost_compatible {
+ background-color:#FFDAA3;
+}
+.incompatible {
+ background-color:#FFCCCC;
+}
+.gray {
+ background-color:#DCDCDC;
+}
.top_ref {
font-size:0.69em;
}
.footer {
font-size:0.75em;
}
-
- </style>
- <script type="text/javascript" language="JavaScript">
- <!--
- function showContent(header, id)
+</style>
+<script type="text/javascript" language="JavaScript">
+<!--
+function showContent(header, id)
{
e = document.getElementById(id);
if(e.style.display == 'none')
header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[+]");
}
}
- -->
- </script>
- </head>
+-->
+</script>
+</head>
+
<body>
<div><a name='Top'></a>
<h1>Source compatibility report for the <span style='color:Blue;'>libopenjp2.so</span> object between <span style='color:Red;'>2.1</span> and <span style='color:Red;'>current</span> versions</h1>
<tr><th>Total Source Files</th><td><a href='#Sources' style='color:Blue;'>3</a></td></tr>
<tr><th>Total Objects</th><td><a href='#Libs' style='color:Blue;'>1</a></td></tr>
<tr><th>Total Symbols / Types</th><td>43 / 110</td></tr>
-<tr><th>Verdict</th><td><span style='color:Green;'><b>Compatible</b></span></td></tr>
+<tr><th>Compatibility</th>
+<td class='compatible'>100%</td>
+</tr>
</table>
<h2>Problem Summary</h2><hr/>
<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td>0</td></tr>
<tr><th>Problems with<br/>Constants</th><td>Low</td><td>0</td></tr>
</table>
-<a name='Headers'></a><h2>Header Files (1)</h2><hr/>
+<a name='Headers'></a><h2>Header Files <span class='gray'> 1 </span></h2><hr/>
<div class='h_list'>
openjpeg.h<br/>
</div>
<br/><a class='top_ref' href='#Top'>to the top</a><br/>
-<a name='Sources'></a><h2>Source Files (3)</h2><hr/>
+<a name='Sources'></a><h2>Source Files <span class='gray'> 3 </span></h2><hr/>
<div class='h_list'>
cio.c<br/>
image.c<br/>
openjpeg.c<br/>
</div>
<br/><a class='top_ref' href='#Top'>to the top</a><br/>
-<a name='Libs'></a><h2>Objects (1)</h2><hr/>
+<a name='Libs'></a><h2>Objects <span class='gray'> 1 </span></h2><hr/>
<div class='lib_list'>
libopenjp2.so.2.1.0<br/>
</div>
<br/><a class='top_ref' href='#Top'>to the top</a><br/>
</div>
<br/><br/><br/>
-<hr/><div class='footer' align='right'><i>Generated on Sun Jun 19 23:35:53 2016 by <a href='http://lvc.github.io/abi-compliance-checker/'>ABI Compliance Checker</a> 1.99.15  </i></div><br/>
+<hr/>
+<div class='footer' align='right'><i>Generated by <a href='http://lvc.github.io/abi-compliance-checker/'>ABI Compliance Checker</a> 1.99.21  </i>
+</div>
+<br/>
</body></html>
table.summary {
font-family:"DejaVu Sans Mono", "Monaco", monospace;
font-size:0.94em;
-}
-
-table.summary {
border-collapse:collapse;
+ table-layout:fixed;
}
+
table.summary tr, table.summary td, table.summary th
{
border:1px solid #777777;
table.summary td {
padding-top:20px;
padding-bottom:20px;
+ white-space:nowrap;
}
a.home {
table.summary td.object {
text-align:left;
}
-.sl {
- max-width:95px;
+table.summary td.sl {
+ max-width:100px;
+ white-space:normal;
+ word-wrap:break-word;
+}
+
+table.summary td.comment {
+ text-align:center;
+ max-width:50px;
+ white-space:normal;
word-wrap:break-word;
}
$VAR1 = {
'Changelog' => {
+ '1.0' => 'Off',
+ '1.1' => 'ChangeLog',
'1.2' => 'ChangeLog',
'1.3' => 'ChangeLog',
'1.4' => 'CHANGES',
'2.1' => 'NEWS'
},
'Installed' => {
+ '1.1' => 'installed/openjpeg/1.1',
'1.2' => 'installed/openjpeg/1.2',
'1.4' => 'installed/openjpeg/1.4',
'1.5' => 'installed/openjpeg/1.5',
'current' => 'installed/openjpeg/current'
},
'Source' => {
+ '1.0' => 'src/openjpeg/1.0/version.1.0.tar.gz',
+ '1.1' => 'src/openjpeg/1.1/version.1.1.tar.gz',
'1.2' => 'src/openjpeg/1.2/version.1.2.tar.gz',
'1.3' => 'src/openjpeg/1.3/version.1.3.tar.gz',
'1.4' => 'src/openjpeg/1.4/version.1.4.tar.gz',
$VAR1 = {
'ABIDump' => {
+ '1.1' => {
+ 'b53e6' => {
+ 'Lang' => 'C',
+ 'Object' => 'lib/libopenjpeg.so',
+ 'Path' => 'abi_dump/openjpeg/1.1/b53e6/ABI.dump',
+ 'TotalSymbols' => '127',
+ 'TotalSymbolsFiltered' => '127',
+ 'Version' => '1.7'
+ }
+ },
'1.2' => {
'b53e6' => {
'Lang' => 'C',
'321e8' => {
'Lang' => 'C',
'Object' => 'lib/libopenjp2.so.2.1.0',
- 'Path' => 'abi_dump/openjpeg/2.1/321e8/ABI.dump'
+ 'Path' => 'abi_dump/openjpeg/2.1/321e8/ABI.dump',
+ 'TotalSymbols' => '43',
+ 'TotalSymbolsFiltered' => '43'
}
},
'current' => {
'6ff8d' => {
'Lang' => 'C',
'Object' => 'lib/libopenjp2.so.2.1.1',
- 'Path' => 'abi_dump/openjpeg/current/6ff8d/ABI.dump'
+ 'Path' => 'abi_dump/openjpeg/current/6ff8d/ABI.dump',
+ 'TotalSymbols' => '43',
+ 'Version' => '1.7'
}
}
},
'ABIReport' => {
+ '1.1' => {
+ '1.2' => {
+ 'Added' => 6,
+ 'BC' => '80.7',
+ 'ChangedSoname' => 0,
+ 'ObjectsAdded' => 0,
+ 'ObjectsAddedSymbols' => 0,
+ 'ObjectsRemoved' => 0,
+ 'ObjectsRemovedSymbols' => 0,
+ 'Path' => 'objects_report/openjpeg/1.1/1.2/report.html',
+ 'Removed' => 1,
+ 'TotalObjects' => 1,
+ 'TotalProblems' => 113
+ }
+ },
'1.2' => {},
'1.3' => {},
'1.4' => {
'BC' => 100,
'ChangedSoname' => 0,
'ObjectsAdded' => 0,
+ 'ObjectsAddedSymbols' => 0,
'ObjectsRemoved' => 0,
+ 'ObjectsRemovedSymbols' => 0,
'Path' => 'objects_report/openjpeg/2.1/current/report.html',
'Removed' => 0,
'TotalObjects' => 1,
}
},
'ABIReport_D' => {
+ '1.1' => {
+ '1.2' => {
+ '2b8a9' => {
+ 'Added' => 6,
+ 'Affected' => '19.3',
+ 'Object1' => 'lib/libopenjpeg.so',
+ 'Object2' => 'lib/libopenjpeg.so',
+ 'Path' => 'compat_report/openjpeg/1.1/1.2/2b8a9/abi_compat_report.html',
+ 'Removed' => 1,
+ 'TotalProblems' => 113
+ }
+ }
+ },
'1.4' => {
'1.5' => {
'851c7' => {
'ABIView' => {},
'ABIView_D' => {},
'Changelog' => {
+ '1.1' => 'changelog/openjpeg/1.1/log.html',
'1.2' => 'changelog/openjpeg/1.2/log.html',
'1.3' => 'changelog/openjpeg/1.3/log.html',
'1.4' => 'changelog/openjpeg/1.4/log.html',
'current' => 'changelog/openjpeg/current/log.html'
},
'Date' => {
+ '1.1' => '2007-01-31 16:09',
'1.2' => '2007-06-04 16:01',
'1.3' => '2011-07-03 20:56',
'1.4' => '2011-07-03 20:56',
'current' => '2016-05-15 01:36:31'
},
'HeadersDiff' => {
+ '1.1' => {
+ '1.2' => {
+ 'Path' => 'headers_diff/openjpeg/1.1/1.2/diff.html',
+ 'Total' => 9
+ }
+ },
'1.2' => {},
'1.3' => {},
'1.4' => {
'Maintainer' => 'Antonin Descampe',
'MaintainerUrl' => 'http://www.openjpeg.org/',
'PackageDiff' => {},
- 'ScmUpdateTime' => '1466371824',
+ 'ScmUpdateTime' => '1466516046',
'Soname' => {
+ '1.1' => {
+ 'lib/libopenjpeg.so' => 'libopenjpeg.so'
+ },
'1.2' => {
'lib/libopenjpeg.so' => 'libopenjpeg.so'
},
}
},
'Sover' => {
+ '1.1' => 'None',
'1.2' => 'None',
'1.4' => '1.4',
'1.5' => '1',
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta name="keywords" content="OpenJPEG, header, diff" />
+ <meta name="description" content="Diff for header files between 1.1 and 1.2 versions of openjpeg" />
+ <link rel="stylesheet" type="text/css" href="../../../../css/common.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../css/headers_diff.css" />
+
+
+ <title>
+ OpenJPEG: headers diff between 1.1 and 1.2 versions
+ </title>
+
+ </head>
+
+<body>
+<table width='100%' cellpadding='0' cellspacing='0'><tr><td><table cellpadding='0' cellspacing='0'><tr><td align='center'><h1 class='tool'><a title='Home: ABI tracker for OpenJPEG' href='../../../../timeline/openjpeg/index.html' class='tool'>ABI<br/>Tracker</a></h1></td><td width='30px;'></td><td><h1>(OpenJPEG)</h1></td></tr></table><hr/>
+<br/>
+<br/>
+<h1>Headers diff: <span class='version'>1.1</span> vs <span class='version'>1.2</span></h1><br/><br/>
+ <table class='diff_tbl' border="0" cellpadding="0" cellspacing="0">
+ <tr bgcolor="orange"><th></th><th> fix.h (1.1) </th><th> </th><th> fix.h (1.2) </th><th></th></tr>
+ <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
+ <tr bgcolor="gray" ><td></td><th><a name="part-l1" /><small>skipping to change at</small><em> line 57</em></th><th> </th><th><a name="part-r1" /><small>skipping to change at</small><em> line 57</em></th><td></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/** @defgroup FIX FIX - Implementation of operations of specific multiplica
+tion */</td><td> </td><td class="right">/** @defgroup FIX FIX - Implementation of operations of specific multiplica
+tion */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/*@{*/</td><td> </td><td class="right">/*@{*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">Multiply two fixed-precision rational numbers.</td><td> </td><td class="right">Multiply two fixed-precision rational numbers.</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param a</td><td> </td><td class="right">@param a</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param b</td><td> </td><td class="right">@param b</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@return Returns a * b</td><td> </td><td class="right">@return Returns a * b</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">static INLINE int fix_mul(int a, int b) {</td><td> </td><td class="right">static INLINE int fix_mul(int a, int b) {</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0001" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"> int64 temp = (int64) a * (int64) b <span class="delete">>> 12;</span></td><td> </td><td class="rblock"> int64 temp = (int64) a * (int64) b <span class="insert">;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"> return (int) <span class="delete">((temp >> 1) +</span> (temp <span class="delete">& 1))</span> ;</td><td> </td><td class="rblock"><span class="insert"> temp += temp & 4096;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> return (int) (temp <span class="insert">>> 13)</span> ;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">}</td><td> </td><td class="right">}</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/*@}*/</td><td> </td><td class="right">/*@}*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#endif /* __FIX_H */</td><td> </td><td class="right">#endif /* __FIX_H */</td><td class="lineno" valign="top"></td></tr>
+
+ <tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr>
+ <tr bgcolor="gray"><th colspan="5" align="center"><a name="end"> End of changes. 1 change blocks. </a></th></tr>
+ <tr class="stats"><td></td><th><i>2 lines changed or deleted</i></th><th><i> </i></th><th><i>3 lines changed or added</i></th><td></td></tr>
+ <tr><td colspan="5" align="center" class="small"></td></tr>
+ </table>
+ <br/><br/>
+
+ <table class='diff_tbl' border="0" cellpadding="0" cellspacing="0">
+ <tr bgcolor="orange"><th></th><th> j2k.h (1.1) </th><th> </th><th> j2k.h (1.2) </th><th></th></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/*</td><td> </td><td class="right">/*</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, U
+niversite catholique de Louvain (UCL), Belgium</td><td> </td><td class="right"> * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, U
+niversite catholique de Louvain (UCL), Belgium</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * Copyright (c) 2002-2007, Professor Benoit Macq</td><td> </td><td class="right"> * Copyright (c) 2002-2007, Professor Benoit Macq</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * Copyright (c) 2001-2003, David Janssens</td><td> </td><td class="right"> * Copyright (c) 2001-2003, David Janssens</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * Copyright (c) 2002-2003, Yannick Verschueren</td><td> </td><td class="right"> * Copyright (c) 2002-2003, Yannick Verschueren</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe</td><td> </td><td class="right"> * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * Copyright (c) 2005, Herve Drolon, FreeImage Team</td><td> </td><td class="right"> * Copyright (c) 2005, Herve Drolon, FreeImage Team</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0001" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * Copyright (c) 2006-2007, Parvatha Elangovan</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * All rights reserved.</td><td> </td><td class="right"> * All rights reserved.</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> *</td><td> </td><td class="right"> *</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * Redistribution and use in source and binary forms, with or without</td><td> </td><td class="right"> * Redistribution and use in source and binary forms, with or without</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * modification, are permitted provided that the following conditions</td><td> </td><td class="right"> * modification, are permitted provided that the following conditions</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * are met:</td><td> </td><td class="right"> * are met:</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * 1. Redistributions of source code must retain the above copyright</td><td> </td><td class="right"> * 1. Redistributions of source code must retain the above copyright</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * notice, this list of conditions and the following disclaimer.</td><td> </td><td class="right"> * notice, this list of conditions and the following disclaimer.</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * 2. Redistributions in binary form must reproduce the above copyright</td><td> </td><td class="right"> * 2. Redistributions in binary form must reproduce the above copyright</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * notice, this list of conditions and the following disclaimer in the</td><td> </td><td class="right"> * notice, this list of conditions and the following disclaimer in the</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * documentation and/or other materials provided with the distribution.</td><td> </td><td class="right"> * documentation and/or other materials provided with the distribution.</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
+ <tr bgcolor="gray" ><td></td><th><a name="part-l2" /><small>skipping to change at</small><em> line 107</em></th><th> </th><th><a name="part-r2" /><small>skipping to change at</small><em> line 108</em></th><td></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> J2K_STATE_MH = 0x0004, /**< the decoding process is in the main
+header */</td><td> </td><td class="right"> J2K_STATE_MH = 0x0004, /**< the decoding process is in the main
+header */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> J2K_STATE_TPHSOT = 0x0008, /**< the decoding process is in a tile pa
+rt header and expects a SOT marker */</td><td> </td><td class="right"> J2K_STATE_TPHSOT = 0x0008, /**< the decoding process is in a tile pa
+rt header and expects a SOT marker */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> J2K_STATE_TPH = 0x0010, /**< the decoding process is in a tile pa
+rt header */</td><td> </td><td class="right"> J2K_STATE_TPH = 0x0010, /**< the decoding process is in a tile pa
+rt header */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> J2K_STATE_MT = 0x0020, /**< the EOC marker has just been read */</td><td> </td><td class="right"> J2K_STATE_MT = 0x0020, /**< the EOC marker has just been read */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> J2K_STATE_NEOC = 0x0040 /**< the decoding process must not expect
+ a EOC marker because the codestream is truncated */</td><td> </td><td class="right"> J2K_STATE_NEOC = 0x0040 /**< the decoding process must not expect
+ a EOC marker because the codestream is truncated */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">} J2K_STATUS;</td><td> </td><td class="right">} J2K_STATUS;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/* -----------------------------------------------------------------------
+*/</td><td> </td><td class="right">/* -----------------------------------------------------------------------
+*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0002" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">T2 encoding mode</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">typedef enum T2_MODE {</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> THRESH_CALC = 0, /** Function called in Rate allocation proce</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">ss*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> FINAL_PASS = 1 /** Function called in Tier 2 process*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">}J2K_T2_MODE;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">/**</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">Quantization stepsize</td><td> </td><td class="right">Quantization stepsize</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">typedef struct opj_stepsize {</td><td> </td><td class="right">typedef struct opj_stepsize {</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** exponent */</td><td> </td><td class="right"> /** exponent */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int expn;</td><td> </td><td class="right"> int expn;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** mantissa */</td><td> </td><td class="right"> /** mantissa */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int mant;</td><td> </td><td class="right"> int mant;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">} opj_stepsize_t;</td><td> </td><td class="right">} opj_stepsize_t;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
+ <tr bgcolor="gray" ><td></td><th><a name="part-l3" /><small>skipping to change at</small><em> line 190</em></th><th> </th><th><a name="part-r3" /><small>skipping to change at</small><em> line 199</em></th><td></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** add fixed_quality */</td><td> </td><td class="right"> /** add fixed_quality */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> float distoratio[100];</td><td> </td><td class="right"> float distoratio[100];</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** tile-component coding parameters */</td><td> </td><td class="right"> /** tile-component coding parameters */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> opj_tccp_t *tccps;</td><td> </td><td class="right"> opj_tccp_t *tccps;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">} opj_tcp_t;</td><td> </td><td class="right">} opj_tcp_t;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">Coding parameters</td><td> </td><td class="right">Coding parameters</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">typedef struct opj_cp {</td><td> </td><td class="right">typedef struct opj_cp {</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0003" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> <span class="insert">/** Digital cinema profile*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> OPJ_CINEMA_MODE cinema;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** Maximum rate for each component. If == 0, component size limitat</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">ion is not considered */</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> int max_comp_size;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** Size of the image in bits*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> int img_size;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** Rsiz*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> OPJ_RSIZ_CAPABILITIES rsiz;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** Enabling Tile part generation*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> char tp_on;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** Flag determining tile part generation*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> char tp_flag;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** Position of tile part flag in progression order*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> int tp_pos;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** allocation by rate/distortion */</td><td> </td><td class="right"> /** allocation by rate/distortion */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int disto_alloc;</td><td> </td><td class="right"> int disto_alloc;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** allocation by fixed layer */</td><td> </td><td class="right"> /** allocation by fixed layer */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int fixed_alloc;</td><td> </td><td class="right"> int fixed_alloc;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** add fixed_quality */</td><td> </td><td class="right"> /** add fixed_quality */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int fixed_quality;</td><td> </td><td class="right"> int fixed_quality;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** if != 0, then original dimension divided by 2^(reduce); if == 0
+or not used, image is decoded to the full resolution */</td><td> </td><td class="right"> /** if != 0, then original dimension divided by 2^(reduce); if == 0
+or not used, image is decoded to the full resolution */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int reduce;</td><td> </td><td class="right"> int reduce;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** if != 0, then only the first "layer" layers are decoded; if == 0
+ or not used, all the quality layers are decoded */</td><td> </td><td class="right"> /** if != 0, then only the first "layer" layers are decoded; if == 0
+ or not used, all the quality layers are decoded */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int layer;</td><td> </td><td class="right"> int layer;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0004" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> <span class="insert">/** if == NO_LIMITATION, decode entire codestream; if == LIMIT_TO_MA</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">IN_HEADER then only decode the main header */</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> OPJ_LIMIT_DECODING limit_decoding;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** 0 = no index || 1 = index */</td><td> </td><td class="right"> /** 0 = no index || 1 = index */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int index_on;</td><td> </td><td class="right"> int index_on;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** XTOsiz */</td><td> </td><td class="right"> /** XTOsiz */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int tx0;</td><td> </td><td class="right"> int tx0;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** YTOsiz */</td><td> </td><td class="right"> /** YTOsiz */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int ty0;</td><td> </td><td class="right"> int ty0;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** XTsiz */</td><td> </td><td class="right"> /** XTsiz */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int tdx;</td><td> </td><td class="right"> int tdx;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** YTsiz */</td><td> </td><td class="right"> /** YTsiz */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int tdy;</td><td> </td><td class="right"> int tdy;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
+ <tr bgcolor="gray" ><td></td><th><a name="part-l4" /><small>skipping to change at</small><em> line 379</em></th><th> </th><th><a name="part-r4" /><small>skipping to change at</small><em> line 404</em></th><td></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">JPEG-2000 codestream reader/writer</td><td> </td><td class="right">JPEG-2000 codestream reader/writer</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">typedef struct opj_j2k {</td><td> </td><td class="right">typedef struct opj_j2k {</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** codec context */</td><td> </td><td class="right"> /** codec context */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> opj_common_ptr cinfo;</td><td> </td><td class="right"> opj_common_ptr cinfo;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** locate in which part of the codestream the decoder is (main head
+er, tile header, end) */</td><td> </td><td class="right"> /** locate in which part of the codestream the decoder is (main head
+er, tile header, end) */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int state;</td><td> </td><td class="right"> int state;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** number of the tile curently concern by coding/decoding */</td><td> </td><td class="right"> /** number of the tile curently concern by coding/decoding */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int curtileno;</td><td> </td><td class="right"> int curtileno;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0005" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> <span class="insert">/** Tile part number*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> int tp_num;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** Tilepart number currently coding*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> int cur_tp_num;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** Total number of tileparts of the current tile*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> int *cur_totnum_tp;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /**</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> locate the start position of the TLM marker</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> after encoding the tilepart, a jump (in j2k_write_sod) is done to th</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">e TLM marker to store the value of its length.</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> */</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> int tlm_start;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** Total num of tile parts in whole image = num tiles* num tilepart</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">s in each tile*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** used in TLMmarker*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> int totnum_tp;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /**</td><td> </td><td class="right"> /**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> locate the position of the end of the tile in the codestream,</td><td> </td><td class="right"> locate the position of the end of the tile in the codestream,</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> used to detect a truncated codestream (in j2k_read_sod)</td><td> </td><td class="right"> used to detect a truncated codestream (in j2k_read_sod)</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> */</td><td> </td><td class="right"> */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> unsigned char *eot;</td><td> </td><td class="right"> unsigned char *eot;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /**</td><td> </td><td class="right"> /**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> locate the start position of the SOT marker of the current coded til
+e:</td><td> </td><td class="right"> locate the start position of the SOT marker of the current coded til
+e:</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> after encoding the tile, a jump (in j2k_write_sod) is done to the SO
+T marker to store the value of its length.</td><td> </td><td class="right"> after encoding the tile, a jump (in j2k_write_sod) is done to the SO
+T marker to store the value of its length.</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> */</td><td> </td><td class="right"> */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int sot_start;</td><td> </td><td class="right"> int sot_start;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
+ <tr bgcolor="gray" ><td></td><th><a name="part-l5" /><small>skipping to change at</small><em> line 469</em></th><th> </th><th><a name="part-r5" /><small>skipping to change at</small><em> line 508</em></th><td></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">void j2k_destroy_compress(opj_j2k_t *j2k);</td><td> </td><td class="right">void j2k_destroy_compress(opj_j2k_t *j2k);</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">Setup the encoder parameters using the current image and using user paramet
+ers.</td><td> </td><td class="right">Setup the encoder parameters using the current image and using user paramet
+ers.</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">Coding parameters are returned in j2k->cp.</td><td> </td><td class="right">Coding parameters are returned in j2k->cp.</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param j2k J2K compressor handle</td><td> </td><td class="right">@param j2k J2K compressor handle</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param parameters compression parameters</td><td> </td><td class="right">@param parameters compression parameters</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param image input filled image</td><td> </td><td class="right">@param image input filled image</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">void j2k_setup_encoder(opj_j2k_t *j2k, opj_cparameters_t *parameters, opj_i
+mage_t *image);</td><td> </td><td class="right">void j2k_setup_encoder(opj_j2k_t *j2k, opj_cparameters_t *parameters, opj_i
+mage_t *image);</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0006" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">Converts an enum type progression order to string type</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">char *j2k_convert_progression_order(OPJ_PROG_ORDER prg_order);</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">/**</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">Encode an image into a JPEG-2000 codestream</td><td> </td><td class="right">Encode an image into a JPEG-2000 codestream</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param j2k J2K compressor handle</td><td> </td><td class="right">@param j2k J2K compressor handle</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param cio Output buffer stream</td><td> </td><td class="right">@param cio Output buffer stream</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param image Image to encode</td><td> </td><td class="right">@param image Image to encode</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param index Name of the index file if required, NULL otherwise</td><td> </td><td class="right">@param index Name of the index file if required, NULL otherwise</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@return Returns true if successful, returns false otherwise</td><td> </td><td class="right">@return Returns true if successful, returns false otherwise</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">bool j2k_encode(opj_j2k_t *j2k, opj_cio_t *cio, opj_image_t *image, char *i
+ndex);</td><td> </td><td class="right">bool j2k_encode(opj_j2k_t *j2k, opj_cio_t *cio, opj_image_t *image, char *i
+ndex);</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/* -----------------------------------------------------------------------
+*/</td><td> </td><td class="right">/* -----------------------------------------------------------------------
+*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/*@}*/</td><td> </td><td class="right">/*@}*/</td><td class="lineno" valign="top"></td></tr>
+
+ <tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr>
+ <tr bgcolor="gray"><th colspan="5" align="center"><a name="end"> End of changes. 6 change blocks. </a></th></tr>
+ <tr class="stats"><td></td><th><i>0 lines changed or deleted</i></th><th><i> </i></th><th><i>48 lines changed or added</i></th><td></td></tr>
+ <tr><td colspan="5" align="center" class="small"></td></tr>
+ </table>
+ <br/><br/>
+
+ <table class='diff_tbl' border="0" cellpadding="0" cellspacing="0">
+ <tr bgcolor="orange"><th></th><th> jp2.h (1.1) </th><th> </th><th> jp2.h (1.2) </th><th></th></tr>
+ <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
+ <tr bgcolor="gray" ><td></td><th><a name="part-l1" /><small>skipping to change at</small><em> line 105</em></th><th> </th><th><a name="part-r1" /><small>skipping to change at</small><em> line 105</em></th><td></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">typedef struct opj_jp2_box {</td><td> </td><td class="right">typedef struct opj_jp2_box {</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int length;</td><td> </td><td class="right"> int length;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int type;</td><td> </td><td class="right"> int type;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int init_pos;</td><td> </td><td class="right"> int init_pos;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">} opj_jp2_box_t;</td><td> </td><td class="right">} opj_jp2_box_t;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/** @name Exported functions */</td><td> </td><td class="right">/** @name Exported functions */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/*@{*/</td><td> </td><td class="right">/*@{*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/* -----------------------------------------------------------------------
+*/</td><td> </td><td class="right">/* -----------------------------------------------------------------------
+*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0001" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">Write the JP2H box - JP2 Header box (used in MJ2)</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">@param jp2 JP2 handle</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">@param cio Output buffer stream</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">void jp2_write_jp2h(opj_jp2_t *jp2, opj_cio_t *cio);</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">/**</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">Read the JP2H box - JP2 Header box (used in MJ2)</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">@param jp2 JP2 handle</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">@param cio Input buffer stream</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">@return Returns true if successful, returns false otherwise</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">bool jp2_read_jp2h(opj_jp2_t *jp2, opj_cio_t *cio);</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">/**</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">Creates a JP2 decompression structure</td><td> </td><td class="right">Creates a JP2 decompression structure</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param cinfo Codec context info</td><td> </td><td class="right">@param cinfo Codec context info</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@return Returns a handle to a JP2 decompressor if successful, returns NULL
+otherwise</td><td> </td><td class="right">@return Returns a handle to a JP2 decompressor if successful, returns NULL
+otherwise</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">opj_jp2_t* jp2_create_decompress(opj_common_ptr cinfo);</td><td> </td><td class="right">opj_jp2_t* jp2_create_decompress(opj_common_ptr cinfo);</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">Destroy a JP2 decompressor handle</td><td> </td><td class="right">Destroy a JP2 decompressor handle</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param jp2 JP2 decompressor handle to destroy</td><td> </td><td class="right">@param jp2 JP2 decompressor handle to destroy</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">void jp2_destroy_decompress(opj_jp2_t *jp2);</td><td> </td><td class="right">void jp2_destroy_decompress(opj_jp2_t *jp2);</td><td class="lineno" valign="top"></td></tr>
+
+ <tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr>
+ <tr bgcolor="gray"><th colspan="5" align="center"><a name="end"> End of changes. 1 change blocks. </a></th></tr>
+ <tr class="stats"><td></td><th><i>0 lines changed or deleted</i></th><th><i> </i></th><th><i>13 lines changed or added</i></th><td></td></tr>
+ <tr><td colspan="5" align="center" class="small"></td></tr>
+ </table>
+ <br/><br/>
+
+ <table class='diff_tbl' border="0" cellpadding="0" cellspacing="0">
+ <tr bgcolor="orange"><th></th><th> openjpeg.h (1.1) </th><th> </th><th> openjpeg.h (1.2) </th><th></th></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /*</td><td> </td><td class="right"> /*</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, U
+niversite catholique de Louvain (UCL), Belgium</td><td> </td><td class="right"> * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, U
+niversite catholique de Louvain (UCL), Belgium</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * Copyright (c) 2002-2007, Professor Benoit Macq</td><td> </td><td class="right"> * Copyright (c) 2002-2007, Professor Benoit Macq</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * Copyright (c) 2001-2003, David Janssens</td><td> </td><td class="right"> * Copyright (c) 2001-2003, David Janssens</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * Copyright (c) 2002-2003, Yannick Verschueren</td><td> </td><td class="right"> * Copyright (c) 2002-2003, Yannick Verschueren</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe</td><td> </td><td class="right"> * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * Copyright (c) 2005, Herve Drolon, FreeImage Team</td><td> </td><td class="right"> * Copyright (c) 2005, Herve Drolon, FreeImage Team</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0001" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> * Copyright (c) 2006-2007, Parvatha Elangovan</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * All rights reserved.</td><td> </td><td class="right"> * All rights reserved.</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> *</td><td> </td><td class="right"> *</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * Redistribution and use in source and binary forms, with or without</td><td> </td><td class="right"> * Redistribution and use in source and binary forms, with or without</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * modification, are permitted provided that the following conditions</td><td> </td><td class="right"> * modification, are permitted provided that the following conditions</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * are met:</td><td> </td><td class="right"> * are met:</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * 1. Redistributions of source code must retain the above copyright</td><td> </td><td class="right"> * 1. Redistributions of source code must retain the above copyright</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * notice, this list of conditions and the following disclaimer.</td><td> </td><td class="right"> * notice, this list of conditions and the following disclaimer.</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * 2. Redistributions in binary form must reproduce the above copyright</td><td> </td><td class="right"> * 2. Redistributions in binary form must reproduce the above copyright</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * notice, this list of conditions and the following disclaimer in the</td><td> </td><td class="right"> * notice, this list of conditions and the following disclaimer in the</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * documentation and/or other materials provided with the distribution.</td><td> </td><td class="right"> * documentation and/or other materials provided with the distribution.</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
+ <tr bgcolor="gray" ><td></td><th><a name="part-l2" /><small>skipping to change at</small><em> line 34</em></th><th> </th><th><a name="part-r2" /><small>skipping to change at</small><em> line 35</em></th><td></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</td><td> </td><td class="right"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</td><td> </td><td class="right"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</td><td> </td><td class="right"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</td><td> </td><td class="right"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF T
+HE</td><td> </td><td class="right"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF T
+HE</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * POSSIBILITY OF SUCH DAMAGE.</td><td> </td><td class="right"> * POSSIBILITY OF SUCH DAMAGE.</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> */</td><td> </td><td class="right"> */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#ifndef OPENJPEG_H</td><td> </td><td class="right">#ifndef OPENJPEG_H</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define OPENJPEG_H</td><td> </td><td class="right">#define OPENJPEG_H</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0002" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock">#define OPENJPEG_VERSION "1.<span class="delete">1</span>.0"</td><td> </td><td class="rblock">#define OPENJPEG_VERSION "1.<span class="insert">2</span>.0"</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/*</td><td> </td><td class="right">/*</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">==========================================================</td><td> </td><td class="right">==========================================================</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> Compiler directives</td><td> </td><td class="right"> Compiler directives</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">==========================================================</td><td> </td><td class="right">==========================================================</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#if defined(OPJ_STATIC) || !(defined(WIN32) || defined(__WIN32__))</td><td> </td><td class="right">#if defined(OPJ_STATIC) || !(defined(WIN32) || defined(__WIN32__))</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define OPJ_API</td><td> </td><td class="right">#define OPJ_API</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define OPJ_CALLCONV</td><td> </td><td class="right">#define OPJ_CALLCONV</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
+ <tr bgcolor="gray" ><td></td><th><a name="part-l3" /><small>skipping to change at</small><em> line 99</em></th><th> </th><th><a name="part-r3" /><small>skipping to change at</small><em> line 100</em></th><td></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> Useful constant definitions</td><td> </td><td class="right"> Useful constant definitions</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">==========================================================</td><td> </td><td class="right">==========================================================</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define OPJ_PATH_LEN 4096 /**< Maximum allowed size for filenames */</td><td> </td><td class="right">#define OPJ_PATH_LEN 4096 /**< Maximum allowed size for filenames */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define J2K_MAXRLVLS 33 /**< Number
+of maximum resolution level authorized */</td><td> </td><td class="right">#define J2K_MAXRLVLS 33 /**< Number
+of maximum resolution level authorized */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define J2K_MAXBANDS (3*J2K_MAXRLVLS-2) /**< Number of maximum sub-b
+and linked to number of resolution level */</td><td> </td><td class="right">#define J2K_MAXBANDS (3*J2K_MAXRLVLS-2) /**< Number of maximum sub-b
+and linked to number of resolution level */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/* UniPG>> */</td><td> </td><td class="right">/* UniPG>> */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0003" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">#ifdef USE_JPWL</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define JPWL_MAX_NO_TILESPECS 16 /**< Maximum number of tile parts expecte
+d by JPWL: increase at your will */</td><td> </td><td class="right">#define JPWL_MAX_NO_TILESPECS 16 /**< Maximum number of tile parts expecte
+d by JPWL: increase at your will */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define JPWL_MAX_NO_PACKSPECS 16 /**< Maximum number of packet parts expec
+ted by JPWL: increase at your will */</td><td> </td><td class="right">#define JPWL_MAX_NO_PACKSPECS 16 /**< Maximum number of packet parts expec
+ted by JPWL: increase at your will */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define JPWL_MAX_NO_MARKERS 512 /**< Maximum number of JPWL markers: inc
+rease at your will */</td><td> </td><td class="right">#define JPWL_MAX_NO_MARKERS 512 /**< Maximum number of JPWL markers: inc
+rease at your will */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define JPWL_PRIVATEINDEX_NAME "jpwl_index_privatefilename" /**< index file
+ name used when JPWL is on */</td><td> </td><td class="right">#define JPWL_PRIVATEINDEX_NAME "jpwl_index_privatefilename" /**< index file
+ name used when JPWL is on */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define JPWL_EXPECTED_COMPONENTS 3 /**< Expect this number of components, s
+o you'll find better the first EPB */</td><td> </td><td class="right">#define JPWL_EXPECTED_COMPONENTS 3 /**< Expect this number of components, s
+o you'll find better the first EPB */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define JPWL_MAXIMUM_TILES 8192 /**< Expect this maximum number of tiles, t
+o avoid some crashes */</td><td> </td><td class="right">#define JPWL_MAXIMUM_TILES 8192 /**< Expect this maximum number of tiles, t
+o avoid some crashes */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define JPWL_MAXIMUM_HAMMING 2 /**< Expect this maximum number of bit error
+s in marker id's */</td><td> </td><td class="right">#define JPWL_MAXIMUM_HAMMING 2 /**< Expect this maximum number of bit error
+s in marker id's */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0004" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">#endif /* USE_JPWL */</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/* <<UniPG */</td><td> </td><td class="right">/* <<UniPG */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/*</td><td> </td><td class="right">/*</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">==========================================================</td><td> </td><td class="right">==========================================================</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> enum definitions</td><td> </td><td class="right"> enum definitions</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">==========================================================</td><td> </td><td class="right">==========================================================</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0005" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">/**</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">Rsiz Capabilities</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">typedef enum RSIZ_CAPABILITIES {</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> STD_RSIZ = 0, /** Standard JPEG2000 profile*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> CINEMA2K = 3, /** Profile name for a 2K image*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> CINEMA4K = 4 /** Profile name for a 4K image*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">} OPJ_RSIZ_CAPABILITIES;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0006" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock">/** Progression order */</td><td> </td><td class="rblock">/**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">Digital cinema operation mode</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">typedef enum CINEMA_MODE {</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> OFF = 0, /** Not Digital Cine</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">ma*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> CINEMA2K_24 = 1, /** 2K Digital Cinema at 24 fps*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> CINEMA2K_48 = 2, /** 2K Digital Cinema at 48 fps*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> CINEMA4K_24 = 3 /** 4K Digital Cinema at 24 fps*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">}OPJ_CINEMA_MODE;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">/**</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">Progression order</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">typedef enum PROG_ORDER {</td><td> </td><td class="right">typedef enum PROG_ORDER {</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> PROG_UNKNOWN = -1, /**< place-holder */</td><td> </td><td class="right"> PROG_UNKNOWN = -1, /**< place-holder */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> LRCP = 0, /**< layer-resolution-component-precinct ord
+er */</td><td> </td><td class="right"> LRCP = 0, /**< layer-resolution-component-precinct ord
+er */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> RLCP = 1, /**< resolution-layer-component-precinct ord
+er */</td><td> </td><td class="right"> RLCP = 1, /**< resolution-layer-component-precinct ord
+er */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> RPCL = 2, /**< resolution-precinct-component-layer ord
+er */</td><td> </td><td class="right"> RPCL = 2, /**< resolution-precinct-component-layer ord
+er */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> PCRL = 3, /**< precinct-component-resolution-layer ord
+er */</td><td> </td><td class="right"> PCRL = 3, /**< precinct-component-resolution-layer ord
+er */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> CPRL = 4 /**< component-precinct-resolution-layer ord
+er */</td><td> </td><td class="right"> CPRL = 4 /**< component-precinct-resolution-layer ord
+er */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">} OPJ_PROG_ORDER;</td><td> </td><td class="right">} OPJ_PROG_ORDER;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
+ <tr bgcolor="gray" ><td></td><th><a name="part-l4" /><small>skipping to change at</small><em> line 146</em></th><th> </th><th><a name="part-r4" /><small>skipping to change at</small><em> line 165</em></th><td></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">Supported codec</td><td> </td><td class="right">Supported codec</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">typedef enum CODEC_FORMAT {</td><td> </td><td class="right">typedef enum CODEC_FORMAT {</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> CODEC_UNKNOWN = -1, /**< place-holder */</td><td> </td><td class="right"> CODEC_UNKNOWN = -1, /**< place-holder */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> CODEC_J2K = 0, /**< JPEG-2000 codestream : read/write */</td><td> </td><td class="right"> CODEC_J2K = 0, /**< JPEG-2000 codestream : read/write */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> CODEC_JPT = 1, /**< JPT-stream (JPEG 2000, JPIP) : read onl
+y */</td><td> </td><td class="right"> CODEC_JPT = 1, /**< JPT-stream (JPEG 2000, JPIP) : read onl
+y */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> CODEC_JP2 = 2 /**< JPEG-2000 file format : read/write */</td><td> </td><td class="right"> CODEC_JP2 = 2 /**< JPEG-2000 file format : read/write */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">} OPJ_CODEC_FORMAT;</td><td> </td><td class="right">} OPJ_CODEC_FORMAT;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0007" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">/**</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">Limit decoding to certain portions of the codestream.</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">typedef enum LIMIT_DECODING {</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> NO_LIMITATION = 0, /**< No limitation</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> for the decoding. The entire codestream will de decoded */</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> LIMIT_TO_MAIN_HEADER = 1, /**< The decoding is limited</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> to the Main Header */</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> DECODE_ALL_BUT_PACKETS = 2 /**< Decode everything except the JP</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">EG 2000 packets */</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">} OPJ_LIMIT_DECODING;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> </td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/*</td><td> </td><td class="right">/*</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">==========================================================</td><td> </td><td class="right">==========================================================</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> event manager typedef definitions</td><td> </td><td class="right"> event manager typedef definitions</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">==========================================================</td><td> </td><td class="right">==========================================================</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">Callback function prototype for events</td><td> </td><td class="right">Callback function prototype for events</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param msg Event message</td><td> </td><td class="right">@param msg Event message</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param client_data</td><td> </td><td class="right">@param client_data</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
+ <tr bgcolor="gray" ><td></td><th><a name="part-l5" /><small>skipping to change at</small><em> line 187</em></th><th> </th><th><a name="part-r5" /><small>skipping to change at</small><em> line 215</em></th><td></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/*</td><td> </td><td class="right">/*</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">==========================================================</td><td> </td><td class="right">==========================================================</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> codec typedef definitions</td><td> </td><td class="right"> codec typedef definitions</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">==========================================================</td><td> </td><td class="right">==========================================================</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">Progression order changes</td><td> </td><td class="right">Progression order changes</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">typedef struct opj_poc {</td><td> </td><td class="right">typedef struct opj_poc {</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0008" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"> int resno0, compno0;</td><td> </td><td class="rblock"> <span class="insert">/** Resolution num start, Component num start, given by POC */</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"> int layno1, resno1, compno1;</td><td> </td><td class="rblock"> int resno0, compno0;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"> OPJ_PROG_ORDER <span class="delete">prg;</span></td><td> </td><td class="rblock"> <span class="insert">/** Layer num end,Resolution num end, Component num end, given by PO</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"> int tile;</td><td> </td><td class="rblock"><span class="insert">C */</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">char progorder[4];</span></td><td> </td><td class="rblock"> int layno1, resno1, compno1;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> <span class="insert">/** Layer num start,Precinct num start, Precinct num end */</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> int layno0, precno0, precno1;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** Progression order enum*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> OPJ_PROG_ORDER <span class="insert">prg1,prg;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** Progression order string*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> char progorder[5];</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** Tile number */</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> int tile;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> <span class="insert">/** Start and end values for Tile width and height*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> int tx0,tx1,ty0,ty1;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** Start value, initialised in pi_initialise_encode*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> int layS, resS, compS, prcS;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** End value, initialised in pi_initialise_encode */</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> int layE, resE, compE, prcE;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** Start and end values of Tile width and height, initialised in pi</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">_initialise_encode*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> int txS,txE,tyS,tyE,dx,dy;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** Temporary values for Tile parts, initialised in pi_create_encode</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> */</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> int lay_t, res_t, comp_t, prc_t,tx0_t,ty0_t;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">} opj_poc_t;</td><td> </td><td class="right">} opj_poc_t;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">Compression parameters</td><td> </td><td class="right">Compression parameters</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">typedef struct opj_cparameters {</td><td> </td><td class="right">typedef struct opj_cparameters {</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** size of tile: tile_size_on = false (not in argument) or = true (
+in argument) */</td><td> </td><td class="right"> /** size of tile: tile_size_on = false (not in argument) or = true (
+in argument) */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> bool tile_size_on;</td><td> </td><td class="right"> bool tile_size_on;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** XTOsiz */</td><td> </td><td class="right"> /** XTOsiz */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int cp_tx0;</td><td> </td><td class="right"> int cp_tx0;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
+ <tr bgcolor="gray" ><td></td><th><a name="part-l6" /><small>skipping to change at</small><em> line 271</em></th><th> </th><th><a name="part-r6" /><small>skipping to change at</small><em> line 316</em></th><td></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** index file name */</td><td> </td><td class="right"> /** index file name */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> char index[OPJ_PATH_LEN];</td><td> </td><td class="right"> char index[OPJ_PATH_LEN];</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** subimage encoding: origin image offset in x direction */</td><td> </td><td class="right"> /** subimage encoding: origin image offset in x direction */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int image_offset_x0;</td><td> </td><td class="right"> int image_offset_x0;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** subimage encoding: origin image offset in y direction */</td><td> </td><td class="right"> /** subimage encoding: origin image offset in y direction */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int image_offset_y0;</td><td> </td><td class="right"> int image_offset_y0;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** subsampling value for dx */</td><td> </td><td class="right"> /** subsampling value for dx */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int subsampling_dx;</td><td> </td><td class="right"> int subsampling_dx;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** subsampling value for dy */</td><td> </td><td class="right"> /** subsampling value for dy */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int subsampling_dy;</td><td> </td><td class="right"> int subsampling_dy;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0009" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"> /** input file format 0: PGX, 1: PxM, 2: BMP */</td><td> </td><td class="rblock"> /** input file format 0: PGX, 1: PxM, 2: BMP <span class="insert">3:TIF</span>*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int decod_format;</td><td> </td><td class="right"> int decod_format;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** output file format 0: J2K, 1: JP2, 2: JPT */</td><td> </td><td class="right"> /** output file format 0: J2K, 1: JP2, 2: JPT */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int cod_format;</td><td> </td><td class="right"> int cod_format;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /*@}*/</td><td> </td><td class="right"> /*@}*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/* UniPG>> */</td><td> </td><td class="right">/* UniPG>> */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0010" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">#ifdef USE_JPWL</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /**@name JPWL encoding parameters */</td><td> </td><td class="right"> /**@name JPWL encoding parameters */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /*@{*/</td><td> </td><td class="right"> /*@{*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** enables writing of EPC in MH, thus activating JPWL */</td><td> </td><td class="right"> /** enables writing of EPC in MH, thus activating JPWL */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> bool jpwl_epc_on;</td><td> </td><td class="right"> bool jpwl_epc_on;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** error protection method for MH (0,1,16,32,37-128) */</td><td> </td><td class="right"> /** error protection method for MH (0,1,16,32,37-128) */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int jpwl_hprot_MH;</td><td> </td><td class="right"> int jpwl_hprot_MH;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** tile number of header protection specification (>=0) */</td><td> </td><td class="right"> /** tile number of header protection specification (>=0) */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int jpwl_hprot_TPH_tileno[JPWL_MAX_NO_TILESPECS];</td><td> </td><td class="right"> int jpwl_hprot_TPH_tileno[JPWL_MAX_NO_TILESPECS];</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** error protection methods for TPHs (0,1,16,32,37-128) */</td><td> </td><td class="right"> /** error protection methods for TPHs (0,1,16,32,37-128) */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int jpwl_hprot_TPH[JPWL_MAX_NO_TILESPECS];</td><td> </td><td class="right"> int jpwl_hprot_TPH[JPWL_MAX_NO_TILESPECS];</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
+ <tr bgcolor="gray" ><td></td><th><a name="part-l7" /><small>skipping to change at</small><em> line 308</em></th><th> </th><th><a name="part-r7" /><small>skipping to change at</small><em> line 352</em></th><td></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int jpwl_sens_addr;</td><td> </td><td class="right"> int jpwl_sens_addr;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** sensitivity range (0-3) */</td><td> </td><td class="right"> /** sensitivity range (0-3) */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int jpwl_sens_range;</td><td> </td><td class="right"> int jpwl_sens_range;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** sensitivity method for MH (-1=no,0-7) */</td><td> </td><td class="right"> /** sensitivity method for MH (-1=no,0-7) */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int jpwl_sens_MH;</td><td> </td><td class="right"> int jpwl_sens_MH;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** tile number of sensitivity specification (>=0) */</td><td> </td><td class="right"> /** tile number of sensitivity specification (>=0) */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int jpwl_sens_TPH_tileno[JPWL_MAX_NO_TILESPECS];</td><td> </td><td class="right"> int jpwl_sens_TPH_tileno[JPWL_MAX_NO_TILESPECS];</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** sensitivity methods for TPHs (-1=no,0-7) */</td><td> </td><td class="right"> /** sensitivity methods for TPHs (-1=no,0-7) */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int jpwl_sens_TPH[JPWL_MAX_NO_TILESPECS];</td><td> </td><td class="right"> int jpwl_sens_TPH[JPWL_MAX_NO_TILESPECS];</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /*@}*/</td><td> </td><td class="right"> /*@}*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0011" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">#endif /* USE_JPWL */</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/* <<UniPG */</td><td> </td><td class="right">/* <<UniPG */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0012" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> <span class="insert">/** Digital Cinema compliance 0-not compliant, 1-compliant*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> OPJ_CINEMA_MODE cp_cinema;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** Maximum rate for each component. If == 0, component size limitat</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">ion is not considered */</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> int max_comp_size;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** Profile name*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> OPJ_RSIZ_CAPABILITIES cp_rsiz;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** Tile part generation*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> char tp_on;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** Flag for Tile part generation*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> char tp_flag;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** MCT (multiple component transform) */</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> char tcp_mct;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">} opj_cparameters_t;</td><td> </td><td class="right">} opj_cparameters_t;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">Decompression parameters</td><td> </td><td class="right">Decompression parameters</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">typedef struct opj_dparameters {</td><td> </td><td class="right">typedef struct opj_dparameters {</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /**</td><td> </td><td class="right"> /**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> Set the number of highest resolution levels to be discarded.</td><td> </td><td class="right"> Set the number of highest resolution levels to be discarded.</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> The image resolution is effectively divided by 2 to the power of the
+ number of discarded levels.</td><td> </td><td class="right"> The image resolution is effectively divided by 2 to the power of the
+ number of discarded levels.</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> The reduce factor is limited by the smallest total number of decompo
+sition levels among tiles.</td><td> </td><td class="right"> The reduce factor is limited by the smallest total number of decompo
+sition levels among tiles.</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
+ <tr bgcolor="gray" ><td></td><th><a name="part-l8" /><small>skipping to change at</small><em> line 346</em></th><th> </th><th><a name="part-r8" /><small>skipping to change at</small><em> line 401</em></th><td></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> char infile[OPJ_PATH_LEN];</td><td> </td><td class="right"> char infile[OPJ_PATH_LEN];</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** output file name */</td><td> </td><td class="right"> /** output file name */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> char outfile[OPJ_PATH_LEN];</td><td> </td><td class="right"> char outfile[OPJ_PATH_LEN];</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** input file format 0: J2K, 1: JP2, 2: JPT */</td><td> </td><td class="right"> /** input file format 0: J2K, 1: JP2, 2: JPT */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int decod_format;</td><td> </td><td class="right"> int decod_format;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** output file format 0: PGX, 1: PxM, 2: BMP */</td><td> </td><td class="right"> /** output file format 0: PGX, 1: PxM, 2: BMP */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int cod_format;</td><td> </td><td class="right"> int cod_format;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /*@}*/</td><td> </td><td class="right"> /*@}*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/* UniPG>> */</td><td> </td><td class="right">/* UniPG>> */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0013" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">#ifdef USE_JPWL</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /**@name JPWL decoding parameters */</td><td> </td><td class="right"> /**@name JPWL decoding parameters */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /*@{*/</td><td> </td><td class="right"> /*@{*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** activates the JPWL correction capabilities */</td><td> </td><td class="right"> /** activates the JPWL correction capabilities */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> bool jpwl_correct;</td><td> </td><td class="right"> bool jpwl_correct;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** expected number of components */</td><td> </td><td class="right"> /** expected number of components */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0014" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">bool</span> jpwl_exp_comps;</td><td> </td><td class="rblock"> <span class="insert">int</span> jpwl_exp_comps;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** maximum number of tiles */</td><td> </td><td class="right"> /** maximum number of tiles */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0015" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"> <span class="delete">bool</span> jpwl_max_tiles;</td><td> </td><td class="rblock"> <span class="insert">int</span> jpwl_max_tiles;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /*@}*/</td><td> </td><td class="right"> /*@}*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0016" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">#endif /* USE_JPWL */</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/* <<UniPG */</td><td> </td><td class="right">/* <<UniPG */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0017" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> </td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> <span class="insert">/**</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> Specify whether the decoding should be done on the entire codestream</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">, or be limited to the main header</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> Limiting the decoding to the main header makes it possible to extrac</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">t the characteristics of the codestream</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> if == NO_LIMITATION, the entire codestream is decoded;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> if == LIMIT_TO_MAIN_HEADER, only the main header is decoded;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> */</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> OPJ_LIMIT_DECODING cp_limit_decoding;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> </td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">} opj_dparameters_t;</td><td> </td><td class="right">} opj_dparameters_t;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/** Common fields between JPEG-2000 compression and decompression master st
+ructs. */</td><td> </td><td class="right">/** Common fields between JPEG-2000 compression and decompression master st
+ructs. */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define opj_common_fields \</td><td> </td><td class="right">#define opj_common_fields \</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> opj_event_mgr_t *event_mgr; /**< pointer to the event manager */
+\</td><td> </td><td class="right"> opj_event_mgr_t *event_mgr; /**< pointer to the event manager */
+\</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> void * client_data; /**< Available for use by ap
+plication */\</td><td> </td><td class="right"> void * client_data; /**< Available for use by ap
+plication */\</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> bool is_decompressor; /**< So common code can tell which i
+s which */\</td><td> </td><td class="right"> bool is_decompressor; /**< So common code can tell which i
+s which */\</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> OPJ_CODEC_FORMAT codec_format; /**< selected codec */\</td><td> </td><td class="right"> OPJ_CODEC_FORMAT codec_format; /**< selected codec */\</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> void *j2k_handle; /**< pointer to the J2K code
+c */\</td><td> </td><td class="right"> void *j2k_handle; /**< pointer to the J2K code
+c */\</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0018" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"> void <span class="delete">*jp2_handle</span> /**< pointer to the JP2 code</td><td> </td><td class="rblock"> void <span class="insert">*jp2_handle;</span> /**< pointer to the JP2 <span class="insert">code</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock">c */</td><td> </td><td class="rblock"><span class="insert">c */\</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> void *mj2_handle /**< pointer to the MJ2</span> code</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">c */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/* Routines that are to be used by both halves of the library are declared</td><td> </td><td class="right">/* Routines that are to be used by both halves of the library are declared</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * to receive a pointer to this structure. There are no actual instances o
+f</td><td> </td><td class="right"> * to receive a pointer to this structure. There are no actual instances o
+f</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * opj_common_struct_t, only of opj_cinfo_t and opj_dinfo_t.</td><td> </td><td class="right"> * opj_common_struct_t, only of opj_cinfo_t and opj_dinfo_t.</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> */</td><td> </td><td class="right"> */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">typedef struct opj_common_struct {</td><td> </td><td class="right">typedef struct opj_common_struct {</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> opj_common_fields; /* Fields common to both master struct types
+ */</td><td> </td><td class="right"> opj_common_fields; /* Fields common to both master struct types
+ */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /* Additional fields follow in an actual opj_cinfo_t or</td><td> </td><td class="right"> /* Additional fields follow in an actual opj_cinfo_t or</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * opj_dinfo_t. All three structs must agree on these</td><td> </td><td class="right"> * opj_dinfo_t. All three structs must agree on these</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> * initial fields! (This would be a lot cleaner in C++.)</td><td> </td><td class="right"> * initial fields! (This would be a lot cleaner in C++.)</td><td class="lineno" valign="top"></td></tr>
+
+ <tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr>
+ <tr bgcolor="gray"><th colspan="5" align="center"><a name="end"> End of changes. 18 change blocks. </a></th></tr>
+ <tr class="stats"><td></td><th><i>18 lines changed or deleted</i></th><th><i> </i></th><th><i>92 lines changed or added</i></th><td></td></tr>
+ <tr><td colspan="5" align="center" class="small"></td></tr>
+ </table>
+ <br/><br/>
+
+ <table class='diff_tbl' border="0" cellpadding="0" cellspacing="0">
+ <tr bgcolor="orange"><th></th><th> opj_includes.h (1.1) </th><th> </th><th> opj_includes.h (1.2) </th><th></th></tr>
+ <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
+ <tr bgcolor="gray" ><td></td><th><a name="part-l1" /><small>skipping to change at</small><em> line 87</em></th><th> </th><th><a name="part-r1" /><small>skipping to change at</small><em> line 87</em></th><td></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#include "image.h"</td><td> </td><td class="right">#include "image.h"</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#include "j2k.h"</td><td> </td><td class="right">#include "j2k.h"</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#include "jp2.h"</td><td> </td><td class="right">#include "jp2.h"</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#include "jpt.h"</td><td> </td><td class="right">#include "jpt.h"</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#include "mqc.h"</td><td> </td><td class="right">#include "mqc.h"</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#include "raw.h"</td><td> </td><td class="right">#include "raw.h"</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#include "bio.h"</td><td> </td><td class="right">#include "bio.h"</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#include "tgt.h"</td><td> </td><td class="right">#include "tgt.h"</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0001" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">#include "pi.h"</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#include "tcd.h"</td><td> </td><td class="right">#include "tcd.h"</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#include "t1.h"</td><td> </td><td class="right">#include "t1.h"</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#include "dwt.h"</td><td> </td><td class="right">#include "dwt.h"</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0002" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">#include "pi.h"</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#include "t2.h"</td><td> </td><td class="right">#include "t2.h"</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#include "mct.h"</td><td> </td><td class="right">#include "mct.h"</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#include "int.h"</td><td> </td><td class="right">#include "int.h"</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#include "fix.h"</td><td> </td><td class="right">#include "fix.h"</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/* JPWL>> */</td><td> </td><td class="right">/* JPWL>> */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#ifdef USE_JPWL</td><td> </td><td class="right">#ifdef USE_JPWL</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#include "../jpwl/jpwl.h"</td><td> </td><td class="right">#include "../jpwl/jpwl.h"</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#endif /* USE_JPWL */</td><td> </td><td class="right">#endif /* USE_JPWL */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/* <<JPWL */</td><td> </td><td class="right">/* <<JPWL */</td><td class="lineno" valign="top"></td></tr>
+
+ <tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr>
+ <tr bgcolor="gray"><th colspan="5" align="center"><a name="end"> End of changes. 2 change blocks. </a></th></tr>
+ <tr class="stats"><td></td><th><i>1 lines changed or deleted</i></th><th><i> </i></th><th><i>1 lines changed or added</i></th><td></td></tr>
+ <tr><td colspan="5" align="center" class="small"></td></tr>
+ </table>
+ <br/><br/>
+
+ <table class='diff_tbl' border="0" cellpadding="0" cellspacing="0">
+ <tr bgcolor="orange"><th></th><th> pi.h (1.1) </th><th> </th><th> pi.h (1.2) </th><th></th></tr>
+ <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
+ <tr bgcolor="gray" ><td></td><th><a name="part-l1" /><small>skipping to change at</small><em> line 68</em></th><th> </th><th><a name="part-r1" /><small>skipping to change at</small><em> line 68</em></th><td></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int dx, dy;</td><td> </td><td class="right"> int dx, dy;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** number of resolution levels */</td><td> </td><td class="right"> /** number of resolution levels */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int numresolutions;</td><td> </td><td class="right"> int numresolutions;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> opj_pi_resolution_t *resolutions;</td><td> </td><td class="right"> opj_pi_resolution_t *resolutions;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">} opj_pi_comp_t;</td><td> </td><td class="right">} opj_pi_comp_t;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">Packet iterator</td><td> </td><td class="right">Packet iterator</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">typedef struct opj_pi_iterator {</td><td> </td><td class="right">typedef struct opj_pi_iterator {</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0001" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> <span class="insert">/** Enabling Tile part generation*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> char tp_on;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** precise if the packet has been already used (usefull for progres
+sion order change) */</td><td> </td><td class="right"> /** precise if the packet has been already used (usefull for progres
+sion order change) */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> short int *include;</td><td> </td><td class="right"> short int *include;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** layer step used to localize the packet in the include vector */</td><td> </td><td class="right"> /** layer step used to localize the packet in the include vector */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int step_l;</td><td> </td><td class="right"> int step_l;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** resolution step used to localize the packet in the include vecto
+r */</td><td> </td><td class="right"> /** resolution step used to localize the packet in the include vecto
+r */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int step_r;</td><td> </td><td class="right"> int step_r;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** component step used to localize the packet in the include vector
+ */</td><td> </td><td class="right"> /** component step used to localize the packet in the include vector
+ */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int step_c;</td><td> </td><td class="right"> int step_c;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** precinct step used to localize the packet in the include vector
+*/</td><td> </td><td class="right"> /** precinct step used to localize the packet in the include vector
+*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int step_p;</td><td> </td><td class="right"> int step_p;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
+ <tr bgcolor="gray" ><td></td><th><a name="part-l2" /><small>skipping to change at</small><em> line 90</em></th><th> </th><th><a name="part-r2" /><small>skipping to change at</small><em> line 92</em></th><td></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** resolution that identify the packet */</td><td> </td><td class="right"> /** resolution that identify the packet */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int resno;</td><td> </td><td class="right"> int resno;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** precinct that identify the packet */</td><td> </td><td class="right"> /** precinct that identify the packet */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int precno;</td><td> </td><td class="right"> int precno;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** layer that identify the packet */</td><td> </td><td class="right"> /** layer that identify the packet */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int layno;</td><td> </td><td class="right"> int layno;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** 0 if the first packet */</td><td> </td><td class="right"> /** 0 if the first packet */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int first;</td><td> </td><td class="right"> int first;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** progression order change information */</td><td> </td><td class="right"> /** progression order change information */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> opj_poc_t poc;</td><td> </td><td class="right"> opj_poc_t poc;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0002" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"> /** */</td><td> </td><td class="rblock"> /** <span class="insert">number of components in the image </span>*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int numcomps;</td><td> </td><td class="right"> int numcomps;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0003" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"> /** */</td><td> </td><td class="rblock"> /** <span class="insert">Components</span>*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> opj_pi_comp_t *comps;</td><td> </td><td class="right"> opj_pi_comp_t *comps;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int tx0, ty0, tx1, ty1;</td><td> </td><td class="right"> int tx0, ty0, tx1, ty1;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int x, y, dx, dy;</td><td> </td><td class="right"> int x, y, dx, dy;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">} opj_pi_iterator_t;</td><td> </td><td class="right">} opj_pi_iterator_t;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/** @name Exported functions */</td><td> </td><td class="right">/** @name Exported functions */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/*@{*/</td><td> </td><td class="right">/*@{*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/* -----------------------------------------------------------------------
+*/</td><td> </td><td class="right">/* -----------------------------------------------------------------------
+*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0004" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock">Create a packet iterator</td><td> </td><td class="rblock">Create a packet iterator<span class="insert"> for Encoder</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param image Raw image for which the packets will be listed</td><td> </td><td class="right">@param image Raw image for which the packets will be listed</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param cp Coding parameters</td><td> </td><td class="right">@param cp Coding parameters</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param tileno Number that identifies the tile for which to list the packets</td><td> </td><td class="right">@param tileno Number that identifies the tile for which to list the packets</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0005" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">@param t2_mode If == 0 In Threshold calculation ,If == 1 Final pass</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@return Returns a packet iterator that points to the first packet of the ti
+le</td><td> </td><td class="right">@return Returns a packet iterator that points to the first packet of the ti
+le</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@see pi_destroy</td><td> </td><td class="right">@see pi_destroy</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0006" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock">opj_pi_iterator_t <span class="delete">*pi_create(opj_image_t</span> * image, opj_cp_t * cp, int <span class="delete">tileno</span></td><td> </td><td class="rblock">opj_pi_iterator_t <span class="insert">*pi_initialise_encode(opj_image_t *image, opj_cp_t *cp, i</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">);</span></td><td> </td><td class="rblock"><span class="insert">nt tileno,J2K_T2_MODE t2_mode);</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">/**</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">Modify the packet iterator for enabling tile part generation</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">@param pi Handle to the packet iterator generated in pi_initialise_encode</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">@param cp Coding parameters</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">@param tileno Number that identifies the tile for which to list the packets</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">@param tpnum Tile part number of the current tile</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">@param tppos The position of the tile part flag in the progression order</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">void pi_create_encode( opj_pi_iterator_t *pi, opj_cp_t *cp,int tileno, int </span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">pino,int tpnum, int tppos);</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">/**</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">Create a packet iterator for Decoder</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">@param image Raw image for which the packets will be listed</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">@param cp Coding parameters</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">@param tileno Number that identifies the tile for which to list the packets</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">@return Returns a packet iterator that points to the first packet of the ti</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">le</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">@see pi_destroy</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">opj_pi_iterator_t *pi_create_decode(opj_image_t</span> * image, opj_cp_t * cp, int</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> <span class="insert">tileno);</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">Destroy a packet iterator</td><td> </td><td class="right">Destroy a packet iterator</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param pi Previously created packet iterator</td><td> </td><td class="right">@param pi Previously created packet iterator</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param cp Coding parameters</td><td> </td><td class="right">@param cp Coding parameters</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param tileno Number that identifies the tile for which the packets were li
+sted</td><td> </td><td class="right">@param tileno Number that identifies the tile for which the packets were li
+sted</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@see pi_create</td><td> </td><td class="right">@see pi_create</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">void pi_destroy(opj_pi_iterator_t *pi, opj_cp_t *cp, int tileno);</td><td> </td><td class="right">void pi_destroy(opj_pi_iterator_t *pi, opj_cp_t *cp, int tileno);</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+
+ <tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr>
+ <tr bgcolor="gray"><th colspan="5" align="center"><a name="end"> End of changes. 6 change blocks. </a></th></tr>
+ <tr class="stats"><td></td><th><i>5 lines changed or deleted</i></th><th><i> </i></th><th><i>29 lines changed or added</i></th><td></td></tr>
+ <tr><td colspan="5" align="center" class="small"></td></tr>
+ </table>
+ <br/><br/>
+
+ <table class='diff_tbl' border="0" cellpadding="0" cellspacing="0">
+ <tr bgcolor="orange"><th></th><th> t1.h (1.1) </th><th> </th><th> t1.h (1.2) </th><th></th></tr>
+ <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
+ <tr bgcolor="gray" ><td></td><th><a name="part-l1" /><small>skipping to change at</small><em> line 47</em></th><th> </th><th><a name="part-r1" /><small>skipping to change at</small><em> line 47</em></th><td></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">The functions in T1.C have for goal to realize the tier-1 coding operation.
+ The functions</td><td> </td><td class="right">The functions in T1.C have for goal to realize the tier-1 coding operation.
+ The functions</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">in T1.C are used by some function in TCD.C.</td><td> </td><td class="right">in T1.C are used by some function in TCD.C.</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/** @defgroup T1 T1 - Implementation of the tier-1 coding */</td><td> </td><td class="right">/** @defgroup T1 T1 - Implementation of the tier-1 coding */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/*@{*/</td><td> </td><td class="right">/*@{*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/* -----------------------------------------------------------------------
+*/</td><td> </td><td class="right">/* -----------------------------------------------------------------------
+*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define T1_NMSEDEC_BITS 7</td><td> </td><td class="right">#define T1_NMSEDEC_BITS 7</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0001" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">#define T1_MAXCBLKW 1024 /**< Maximum size of code-block (width) */</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">#define T1_MAXCBLKH 1024 /**< Maximum size of code-block (heigth) */</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"> </td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define T1_SIG_NE 0x0001 /**< Context orientation : North-East direct
+ion */</td><td> </td><td class="right">#define T1_SIG_NE 0x0001 /**< Context orientation : North-East direct
+ion */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define T1_SIG_SE 0x0002 /**< Context orientation : South-East direct
+ion */</td><td> </td><td class="right">#define T1_SIG_SE 0x0002 /**< Context orientation : South-East direct
+ion */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define T1_SIG_SW 0x0004 /**< Context orientation : South-West direct
+ion */</td><td> </td><td class="right">#define T1_SIG_SW 0x0004 /**< Context orientation : South-West direct
+ion */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define T1_SIG_NW 0x0008 /**< Context orientation : North-West direct
+ion */</td><td> </td><td class="right">#define T1_SIG_NW 0x0008 /**< Context orientation : North-West direct
+ion */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define T1_SIG_N 0x0010 /**< Context orientation : North dir
+ection */</td><td> </td><td class="right">#define T1_SIG_N 0x0010 /**< Context orientation : North dir
+ection */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define T1_SIG_E 0x0020 /**< Context orientation : East dire
+ction */</td><td> </td><td class="right">#define T1_SIG_E 0x0020 /**< Context orientation : East dire
+ction */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define T1_SIG_S 0x0040 /**< Context orientation : South dir
+ection */</td><td> </td><td class="right">#define T1_SIG_S 0x0040 /**< Context orientation : South dir
+ection */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define T1_SIG_W 0x0080 /**< Context orientation : West dire
+ction */</td><td> </td><td class="right">#define T1_SIG_W 0x0080 /**< Context orientation : West dire
+ction */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define T1_SIG_OTH (T1_SIG_N|T1_SIG_NE|T1_SIG_E|T1_SIG_SE|T1_SIG_S|T1_SIG_S
+W|T1_SIG_W|T1_SIG_NW)</td><td> </td><td class="right">#define T1_SIG_OTH (T1_SIG_N|T1_SIG_NE|T1_SIG_E|T1_SIG_SE|T1_SIG_S|T1_SIG_S
+W|T1_SIG_W|T1_SIG_NW)</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define T1_SIG_PRIM (T1_SIG_N|T1_SIG_E|T1_SIG_S|T1_SIG_W)</td><td> </td><td class="right">#define T1_SIG_PRIM (T1_SIG_N|T1_SIG_E|T1_SIG_S|T1_SIG_W)</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
+ <tr bgcolor="gray" ><td></td><th><a name="part-l2" /><small>skipping to change at</small><em> line 91</em></th><th> </th><th><a name="part-r2" /><small>skipping to change at</small><em> line 88</em></th><td></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define T1_CTXNO_UNI (T1_CTXNO_AGG+T1_NUMCTXS_AGG)</td><td> </td><td class="right">#define T1_CTXNO_UNI (T1_CTXNO_AGG+T1_NUMCTXS_AGG)</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define T1_NUMCTXS (T1_CTXNO_UNI+T1_NUMCTXS_UNI)</td><td> </td><td class="right">#define T1_NUMCTXS (T1_CTXNO_UNI+T1_NUMCTXS_UNI)</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define T1_NMSEDEC_FRACBITS (T1_NMSEDEC_BITS-1)</td><td> </td><td class="right">#define T1_NMSEDEC_FRACBITS (T1_NMSEDEC_BITS-1)</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define T1_TYPE_MQ 0 /**< Normal coding using entropy coder */</td><td> </td><td class="right">#define T1_TYPE_MQ 0 /**< Normal coding using entropy coder */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">#define T1_TYPE_RAW 1 /**< No encoding the information is store under raw
+format in codestream (mode switch RAW)*/</td><td> </td><td class="right">#define T1_TYPE_RAW 1 /**< No encoding the information is store under raw
+format in codestream (mode switch RAW)*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/* -----------------------------------------------------------------------
+*/</td><td> </td><td class="right">/* -----------------------------------------------------------------------
+*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0002" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">typedef short flag_t;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> </td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">Tier-1 coding (coding of code-block coefficients)</td><td> </td><td class="right">Tier-1 coding (coding of code-block coefficients)</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">typedef struct opj_t1 {</td><td> </td><td class="right">typedef struct opj_t1 {</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** codec context */</td><td> </td><td class="right"> /** codec context */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> opj_common_ptr cinfo;</td><td> </td><td class="right"> opj_common_ptr cinfo;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** MQC component */</td><td> </td><td class="right"> /** MQC component */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> opj_mqc_t *mqc;</td><td> </td><td class="right"> opj_mqc_t *mqc;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** RAW component */</td><td> </td><td class="right"> /** RAW component */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> opj_raw_t *raw;</td><td> </td><td class="right"> opj_raw_t *raw;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0003" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"> int <span class="delete">lut_ctxno_zc[1024];</span></td><td> </td><td class="rblock"> int <span class="insert">*data;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"> int <span class="delete">lut_ctxno_sc[256];</span></td><td> </td><td class="rblock"><span class="insert"> flag_t *flags;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"> int <span class="delete">lut_ctxno_mag[4096];</span></td><td> </td><td class="rblock"> int <span class="insert">w;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"> int <span class="delete">lut_spb[256];</span></td><td> </td><td class="rblock"> int <span class="insert">h;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"> int <span class="delete">lut_nmsedec_sig[1 << T1_NMSEDEC_BITS];</span></td><td> </td><td class="rblock"> int <span class="insert">datasize;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"> int <span class="delete">lut_nmsedec_sig0[1 << T1_NMSEDEC_BITS];</span></td><td> </td><td class="rblock"> int <span class="insert">flagssize;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> int lut_nmsedec_ref[1 << T1_NMSEDEC_BITS];</span></td><td> </td><td class="rblock"> int <span class="insert">flags_stride;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> int lut_nmsedec_ref0[1 << T1_NMSEDEC_BITS];</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> int data[T1_MAXCBLKH][T1_MAXCBLKW];</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"> int flags[T1_MAXCBLKH + 2][T1_MAXCBLKH + 2];</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"> </td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">} opj_t1_t;</td><td> </td><td class="right">} opj_t1_t;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0004" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">#define MACRO_t1_flags(x,y) t1->flags[((x)*(t1->flags_stride))+(y)]</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> </td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/** @name Exported functions */</td><td> </td><td class="right">/** @name Exported functions */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/*@{*/</td><td> </td><td class="right">/*@{*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/* -----------------------------------------------------------------------
+*/</td><td> </td><td class="right">/* -----------------------------------------------------------------------
+*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">Create a new T1 handle</td><td> </td><td class="right">Create a new T1 handle</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">and initialize the look-up tables of the Tier-1 coder/decoder</td><td> </td><td class="right">and initialize the look-up tables of the Tier-1 coder/decoder</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@return Returns a new T1 handle if successful, returns NULL otherwise</td><td> </td><td class="right">@return Returns a new T1 handle if successful, returns NULL otherwise</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@see t1_init_luts</td><td> </td><td class="right">@see t1_init_luts</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">opj_t1_t* t1_create(opj_common_ptr cinfo);</td><td> </td><td class="right">opj_t1_t* t1_create(opj_common_ptr cinfo);</td><td class="lineno" valign="top"></td></tr>
+
+ <tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr>
+ <tr bgcolor="gray"><th colspan="5" align="center"><a name="end"> End of changes. 4 change blocks. </a></th></tr>
+ <tr class="stats"><td></td><th><i>15 lines changed or deleted</i></th><th><i> </i></th><th><i>11 lines changed or added</i></th><td></td></tr>
+ <tr><td colspan="5" align="center" class="small"></td></tr>
+ </table>
+ <br/><br/>
+
+ <table class='diff_tbl' border="0" cellpadding="0" cellspacing="0">
+ <tr bgcolor="orange"><th></th><th> t2.h (1.1) </th><th> </th><th> t2.h (1.2) </th><th></th></tr>
+ <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
+ <tr bgcolor="gray" ><td></td><th><a name="part-l1" /><small>skipping to change at</small><em> line 68</em></th><th> </th><th><a name="part-r1" /><small>skipping to change at</small><em> line 68</em></th><td></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">Encode the packets of a tile to a destination buffer</td><td> </td><td class="right">Encode the packets of a tile to a destination buffer</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param t2 T2 handle</td><td> </td><td class="right">@param t2 T2 handle</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param tileno number of the tile encoded</td><td> </td><td class="right">@param tileno number of the tile encoded</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param tile the tile for which to write the packets</td><td> </td><td class="right">@param tile the tile for which to write the packets</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param maxlayers maximum number of layers</td><td> </td><td class="right">@param maxlayers maximum number of layers</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param dest the destination buffer</td><td> </td><td class="right">@param dest the destination buffer</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param len the length of the destination buffer</td><td> </td><td class="right">@param len the length of the destination buffer</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param image_info structure to create an index file</td><td> </td><td class="right">@param image_info structure to create an index file</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0001" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">@param tpnum Tile part number of the current tile</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">@param tppos The position of the tile part flag in the progression order</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">@param t2_mode If == 0 In Threshold calculation ,If == 1 Final pass</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0002" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock">int t2_encode_packets(opj_t2_t* <span class="delete">t2, int</span> tileno, opj_tcd_tile_t *tile, int <span class="delete">m</span></td><td> </td><td class="rblock">int t2_encode_packets(opj_t2_t* <span class="insert">t2,int</span> tileno, opj_tcd_tile_t *tile, int <span class="insert">ma</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">axlayers,</span> unsigned char *dest, int len, opj_image_info_t <span class="delete">*image_info);</span></td><td> </td><td class="rblock"><span class="insert">xlayers,</span> unsigned char *dest, int len, opj_image_info_t <span class="insert">*image_info,int tpn</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"> </td><td> </td><td class="rblock"><span class="insert">um, int tppos,int pino,J2K_T2_MODE t2_mode);</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">Decode the packets of a tile from a source buffer</td><td> </td><td class="right">Decode the packets of a tile from a source buffer</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param t2 T2 handle</td><td> </td><td class="right">@param t2 T2 handle</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param src the source buffer</td><td> </td><td class="right">@param src the source buffer</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param len length of the source buffer</td><td> </td><td class="right">@param len length of the source buffer</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param tileno number that identifies the tile for which to decode the packe
+ts</td><td> </td><td class="right">@param tileno number that identifies the tile for which to decode the packe
+ts</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">@param tile tile for which to decode the packets</td><td> </td><td class="right">@param tile tile for which to decode the packets</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> */</td><td> </td><td class="right"> */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">int t2_decode_packets(opj_t2_t *t2, unsigned char *src, int len, int tileno
+, opj_tcd_tile_t *tile);</td><td> </td><td class="right">int t2_decode_packets(opj_t2_t *t2, unsigned char *src, int len, int tileno
+, opj_tcd_tile_t *tile);</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+
+ <tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr>
+ <tr bgcolor="gray"><th colspan="5" align="center"><a name="end"> End of changes. 2 change blocks. </a></th></tr>
+ <tr class="stats"><td></td><th><i>3 lines changed or deleted</i></th><th><i> </i></th><th><i>6 lines changed or added</i></th><td></td></tr>
+ <tr><td colspan="5" align="center" class="small"></td></tr>
+ </table>
+ <br/><br/>
+
+ <table class='diff_tbl' border="0" cellpadding="0" cellspacing="0">
+ <tr bgcolor="orange"><th></th><th> tcd.h (1.1) </th><th> </th><th> tcd.h (1.2) </th><th></th></tr>
+ <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
+ <tr bgcolor="gray" ><td></td><th><a name="part-l1" /><small>skipping to change at</small><em> line 161</em></th><th> </th><th><a name="part-r1" /><small>skipping to change at</small><em> line 161</em></th><td></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">typedef struct opj_tcd_image {</td><td> </td><td class="right">typedef struct opj_tcd_image {</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int tw, th; /* number of tiles in width and heigth */</td><td> </td><td class="right"> int tw, th; /* number of tiles in width and heigth */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> opj_tcd_tile_t *tiles; /* Tiles information */</td><td> </td><td class="right"> opj_tcd_tile_t *tiles; /* Tiles information */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">} opj_tcd_image_t;</td><td> </td><td class="right">} opj_tcd_image_t;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">Tile coder/decoder</td><td> </td><td class="right">Tile coder/decoder</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">typedef struct opj_tcd {</td><td> </td><td class="right">typedef struct opj_tcd {</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0001" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> <span class="insert">/** Position of the tilepart flag in Progression order*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> int tp_pos;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** Tile part number*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> int tp_num;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** Current tile part number*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> int cur_tp_num;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** Total number of tileparts of the current tile*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> int cur_totnum_tp;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> /** Current Packet iterator number */</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> int cur_pino;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** codec context */</td><td> </td><td class="right"> /** codec context */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> opj_common_ptr cinfo;</td><td> </td><td class="right"> opj_common_ptr cinfo;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** info on each image tile */</td><td> </td><td class="right"> /** info on each image tile */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> opj_tcd_image_t *tcd_image;</td><td> </td><td class="right"> opj_tcd_image_t *tcd_image;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** image */</td><td> </td><td class="right"> /** image */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> opj_image_t *image;</td><td> </td><td class="right"> opj_image_t *image;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** coding parameters */</td><td> </td><td class="right"> /** coding parameters */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> opj_cp_t *cp;</td><td> </td><td class="right"> opj_cp_t *cp;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** pointer to the current encoded/decoded tile */</td><td> </td><td class="right"> /** pointer to the current encoded/decoded tile */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> opj_tcd_tile_t *tcd_tile;</td><td> </td><td class="right"> opj_tcd_tile_t *tcd_tile;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** coding/decoding parameters common to all tiles */</td><td> </td><td class="right"> /** coding/decoding parameters common to all tiles */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> opj_tcp_t *tcp;</td><td> </td><td class="right"> opj_tcp_t *tcp;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> /** current encoded/decoded tile */</td><td> </td><td class="right"> /** current encoded/decoded tile */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"> int tcd_tileno;</td><td> </td><td class="right"> int tcd_tileno;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td><a name="diff0002" /></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"> <span class="insert">/** Time taken to encode a tile*/</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"> double encoding_time;</span></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">} opj_tcd_t;</td><td> </td><td class="right">} opj_tcd_t;</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/** @name Exported functions */</td><td> </td><td class="right">/** @name Exported functions */</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/*@{*/</td><td> </td><td class="right">/*@{*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/* -----------------------------------------------------------------------
+*/</td><td> </td><td class="right">/* -----------------------------------------------------------------------
+*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">/**</td><td> </td><td class="right">/**</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">Dump the content of a tcd structure</td><td> </td><td class="right">Dump the content of a tcd structure</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">*/</td><td> </td><td class="right">*/</td><td class="lineno" valign="top"></td></tr>
+ <tr><td class="lineno" valign="top"></td><td class="left">void tcd_dump(FILE *fd, opj_tcd_t *tcd, opj_tcd_image_t *img);</td><td> </td><td class="right">void tcd_dump(FILE *fd, opj_tcd_t *tcd, opj_tcd_image_t *img);</td><td class="lineno" valign="top"></td></tr>
+
+ <tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr>
+ <tr bgcolor="gray"><th colspan="5" align="center"><a name="end"> End of changes. 2 change blocks. </a></th></tr>
+ <tr class="stats"><td></td><th><i>0 lines changed or deleted</i></th><th><i> </i></th><th><i>12 lines changed or added</i></th><td></td></tr>
+ <tr><td colspan="5" align="center" class="small"></td></tr>
+ </table>
+ <br/><div style='width:100%;' align='left' class='small'>This html diff was produced by rfcdiff 1.41.The latest version is available from <a href='http://tools.ietf.org/tools/rfcdiff/'>http://tools.ietf.org/tools/rfcdiff/</a></div>
+</td></tr></table>
+</body>
+</html>
--- /dev/null
+{
+ "Total": 9
+}
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
+ * Copyright (c) 2002-2007, Professor Benoit Macq
+ * Copyright (c) 2001-2003, David Janssens
+ * Copyright (c) 2002-2003, Yannick Verschueren
+ * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe
+ * Copyright (c) 2005, Herve Drolon, FreeImage Team
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __BIO_H
+#define __BIO_H
+/**
+@file bio.h
+@brief Implementation of an individual bit input-output (BIO)
+
+The functions in BIO.C have for goal to realize an individual bit input - output.
+*/
+
+/** @defgroup BIO BIO - Individual bit input-output stream */
+/*@{*/
+
+/**
+Individual bit input-output stream (BIO)
+*/
+typedef struct opj_bio {
+ /** pointer to the start of the buffer */
+ unsigned char *start;
+ /** pointer to the end of the buffer */
+ unsigned char *end;
+ /** pointer to the present position in the buffer */
+ unsigned char *bp;
+ /** temporary place where each byte is read or written */
+ unsigned int buf;
+ /** coder : number of bits free to write. decoder : number of bits read */
+ int ct;
+} opj_bio_t;
+
+/** @name Exported functions */
+/*@{*/
+/* ----------------------------------------------------------------------- */
+/**
+Create a new BIO handle
+@return Returns a new BIO handle if successful, returns NULL otherwise
+*/
+opj_bio_t* bio_create();
+/**
+Destroy a previously created BIO handle
+@param bio BIO handle to destroy
+*/
+void bio_destroy(opj_bio_t *bio);
+/**
+Number of bytes written.
+@param bio BIO handle
+@return Returns the number of bytes written
+*/
+int bio_numbytes(opj_bio_t *bio);
+/**
+Init encoder
+@param bio BIO handle
+@param bp Output buffer
+@param len Output buffer length
+*/
+void bio_init_enc(opj_bio_t *bio, unsigned char *bp, int len);
+/**
+Init decoder
+@param bio BIO handle
+@param bp Input buffer
+@param len Input buffer length
+*/
+void bio_init_dec(opj_bio_t *bio, unsigned char *bp, int len);
+/**
+Write bits
+@param bio BIO handle
+@param v Value of bits
+@param n Number of bits to write
+*/
+void bio_write(opj_bio_t *bio, int v, int n);
+/**
+Read bits
+@param bio BIO handle
+@param n Number of bits to read
+@return Returns the corresponding read number
+*/
+int bio_read(opj_bio_t *bio, int n);
+/**
+Flush bits
+@param bio BIO handle
+@return Returns 1 if successful, returns 0 otherwise
+*/
+int bio_flush(opj_bio_t *bio);
+/**
+Passes the ending bits (coming from flushing)
+@param bio BIO handle
+@return Returns 1 if successful, returns 0 otherwise
+*/
+int bio_inalign(opj_bio_t *bio);
+/* ----------------------------------------------------------------------- */
+/*@}*/
+
+/*@}*/
+
+#endif /* __BIO_H */
+
--- /dev/null
+/*
+ * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
+ * Copyright (c) 2002-2007, Professor Benoit Macq
+ * Copyright (c) 2001-2003, David Janssens
+ * Copyright (c) 2002-2003, Yannick Verschueren
+ * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe
+ * Copyright (c) 2005, Herve Drolon, FreeImage Team
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __CIO_H
+#define __CIO_H
+/**
+@file cio.h
+@brief Implementation of a byte input-output process (CIO)
+
+The functions in CIO.C have for goal to realize a byte input / output process.
+*/
+
+/** @defgroup CIO CIO - byte input-output stream */
+/*@{*/
+
+/** @name Exported functions (see also openjpeg.h) */
+/*@{*/
+/* ----------------------------------------------------------------------- */
+/**
+Number of bytes left before the end of the stream
+@param cio CIO handle
+@return Returns the number of bytes before the end of the stream
+*/
+int cio_numbytesleft(opj_cio_t *cio);
+/**
+Get pointer to the current position in the stream
+@param cio CIO handle
+@return Returns a pointer to the current position
+*/
+unsigned char *cio_getbp(opj_cio_t *cio);
+/**
+Write some bytes
+@param cio CIO handle
+@param v Value to write
+@param n Number of bytes to write
+@return Returns the number of bytes written or 0 if an error occured
+*/
+unsigned int cio_write(opj_cio_t *cio, unsigned int v, int n);
+/**
+Read some bytes
+@param cio CIO handle
+@param n Number of bytes to read
+@return Returns the value of the n bytes read
+*/
+unsigned int cio_read(opj_cio_t *cio, int n);
+/**
+Skip some bytes
+@param cio CIO handle
+@param n Number of bytes to skip
+*/
+void cio_skip(opj_cio_t *cio, int n);
+/* ----------------------------------------------------------------------- */
+/*@}*/
+
+/*@}*/
+
+#endif /* __CIO_H */
+
--- /dev/null
+/*
+ * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
+ * Copyright (c) 2002-2007, Professor Benoit Macq
+ * Copyright (c) 2001-2003, David Janssens
+ * Copyright (c) 2002-2003, Yannick Verschueren
+ * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe
+ * Copyright (c) 2005, Herve Drolon, FreeImage Team
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __DWT_H
+#define __DWT_H
+/**
+@file dwt.h
+@brief Implementation of a discrete wavelet transform (DWT)
+
+The functions in DWT.C have for goal to realize forward and inverse discret wavelet
+transform with filter 5-3 (reversible) and filter 9-7 (irreversible). The functions in
+DWT.C are used by some function in TCD.C.
+*/
+
+/** @defgroup DWT DWT - Implementation of a discrete wavelet transform */
+/*@{*/
+
+
+/** @name Exported functions */
+/*@{*/
+/* ----------------------------------------------------------------------- */
+/**
+Forward 5-3 wavelet tranform in 2-D.
+Apply a reversible DWT transform to a component of an image.
+@param tilec Tile component information (current tile)
+*/
+void dwt_encode(opj_tcd_tilecomp_t * tilec);
+/**
+Inverse 5-3 wavelet tranform in 2-D.
+Apply a reversible inverse DWT transform to a component of an image.
+@param tilec Tile component information (current tile)
+@param stop FIXME Number of decoded resolution levels ?
+*/
+void dwt_decode(opj_tcd_tilecomp_t * tilec, int stop);
+/**
+Get the gain of a subband for the reversible 5-3 DWT.
+@param orient Number that identifies the subband (0->LL, 1->HL, 2->LH, 3->HH)
+@return Returns 0 if orient = 0, returns 1 if orient = 1 or 2, returns 2 otherwise
+*/
+int dwt_getgain(int orient);
+/**
+Get the norm of a wavelet function of a subband at a specified level for the reversible 5-3 DWT.
+@param level Level of the wavelet function
+@param orient Band of the wavelet function
+@return Returns the norm of the wavelet function
+*/
+double dwt_getnorm(int level, int orient);
+/**
+Forward 9-7 wavelet transform in 2-D.
+Apply an irreversible DWT transform to a component of an image.
+@param tilec Tile component information (current tile)
+*/
+void dwt_encode_real(opj_tcd_tilecomp_t * tilec);
+/**
+Inverse 9-7 wavelet transform in 2-D.
+Apply an irreversible inverse DWT transform to a component of an image.
+@param tilec Tile component information (current tile)
+@param stop FIXME Number of decoded resolution levels ?
+*/
+void dwt_decode_real(opj_tcd_tilecomp_t * tilec, int stop);
+/**
+Get the gain of a subband for the irreversible 9-7 DWT.
+@param orient Number that identifies the subband (0->LL, 1->HL, 2->LH, 3->HH)
+@return Returns the gain of the 9-7 wavelet transform
+*/
+int dwt_getgain_real(int orient);
+/**
+Get the norm of a wavelet function of a subband at a specified level for the irreversible 9-7 DWT
+@param level Level of the wavelet function
+@param orient Band of the wavelet function
+@return Returns the norm of the 9-7 wavelet
+*/
+double dwt_getnorm_real(int level, int orient);
+/**
+FIXME : comment ???
+@param tccp
+@param prec
+*/
+void dwt_calc_explicit_stepsizes(opj_tccp_t * tccp, int prec);
+/* ----------------------------------------------------------------------- */
+/*@}*/
+
+/*@}*/
+
+#endif /* __DWT_H */
--- /dev/null
+/*
+ * Copyright (c) 2005, Herv� Drolon, FreeImage Team
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef __EVENT_H
+#define __EVENT_H
+/**
+@file event.h
+@brief Implementation of a event callback system
+
+The functions in EVENT.C have for goal to send output messages (errors, warnings, debug) to the user.
+*/
+
+#define EVT_ERROR 1 /**< Error event type */
+#define EVT_WARNING 2 /**< Warning event type */
+#define EVT_INFO 4 /**< Debug event type */
+
+/** @defgroup EVENT EVENT - Implementation of a event callback system */
+/*@{*/
+
+/** @name Exported functions (see also openjpeg.h) */
+/*@{*/
+/* ----------------------------------------------------------------------- */
+/**
+Write formatted data to a string and send the string to a user callback.
+@param cinfo Codec context info
+@param event_type Event type or callback to use to send the message
+@param fmt Format-control string (plus optionnal arguments)
+@return Returns true if successful, returns false otherwise
+*/
+bool opj_event_msg(opj_common_ptr cinfo, int event_type, const char *fmt, ...);
+/* ----------------------------------------------------------------------- */
+/*@}*/
+
+/*@}*/
+
+#endif /* __EVENT_H */
--- /dev/null
+/*
+ * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
+ * Copyright (c) 2002-2007, Professor Benoit Macq
+ * Copyright (c) 2001-2003, David Janssens
+ * Copyright (c) 2002-2003, Yannick Verschueren
+ * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe
+ * Copyright (c) 2005, Herve Drolon, FreeImage Team
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef __FIX_H
+#define __FIX_H
+
+#if defined(_MSC_VER) || defined(__BORLANDC__)
+#define int64 __int64
+#else
+#define int64 long long
+#endif
+
+/**
+@file fix.h
+@brief Implementation of operations of specific multiplication (FIX)
+
+The functions in FIX.H have for goal to realize specific multiplication.
+*/
+
+/** @defgroup FIX FIX - Implementation of operations of specific multiplication */
+/*@{*/
+
+/**
+Multiply two fixed-precision rational numbers.
+@param a
+@param b
+@return Returns a * b
+*/
+static INLINE int fix_mul(int a, int b) {
+ int64 temp = (int64) a * (int64) b >> 12;
+ return (int) ((temp >> 1) + (temp & 1)) ;
+}
+
+/*@}*/
+
+#endif /* __FIX_H */
--- /dev/null
+/*
+ * Copyright (c) 2005, Herv� Drolon, FreeImage Team
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef __IMAGE_H
+#define __IMAGE_H
+/**
+@file image.h
+@brief Implementation of operations on images (IMAGE)
+
+The functions in IMAGE.C have for goal to realize operations on images.
+*/
+
+/** @defgroup IMAGE IMAGE - Implementation of operations on images */
+/*@{*/
+
+/**
+Create an empty image
+@todo this function should be removed
+@return returns an empty image if successful, returns NULL otherwise
+*/
+opj_image_t* opj_image_create0();
+
+/*@}*/
+
+#endif /* __IMAGE_H */
+
--- /dev/null
+/*
+ * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
+ * Copyright (c) 2002-2007, Professor Benoit Macq
+ * Copyright (c) 2001-2003, David Janssens
+ * Copyright (c) 2002-2003, Yannick Verschueren
+ * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe
+ * Copyright (c) 2005, Herve Drolon, FreeImage Team
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef __INT_H
+#define __INT_H
+/**
+@file int.h
+@brief Implementation of operations on integers (INT)
+
+The functions in INT.H have for goal to realize operations on integers.
+*/
+
+/** @defgroup INT INT - Implementation of operations on integers */
+/*@{*/
+
+/** @name Exported functions (see also openjpeg.h) */
+/*@{*/
+/* ----------------------------------------------------------------------- */
+/**
+Get the minimum of two integers
+@return Returns a if a < b else b
+*/
+static INLINE int int_min(int a, int b) {
+ return a < b ? a : b;
+}
+/**
+Get the maximum of two integers
+@return Returns a if a > b else b
+*/
+static INLINE int int_max(int a, int b) {
+ return (a > b) ? a : b;
+}
+/**
+Clamp an integer inside an interval
+@return
+<ul>
+<li>Returns a if (min < a < max)
+<li>Returns max if (a > max)
+<li>Returns min if (a < min)
+</ul>
+*/
+static INLINE int int_clamp(int a, int min, int max) {
+ if (a < min)
+ return min;
+ if (a > max)
+ return max;
+ return a;
+}
+/**
+@return Get absolute value of integer
+*/
+static INLINE int int_abs(int a) {
+ return a < 0 ? -a : a;
+}
+/**
+Divide an integer and round upwards
+@return Returns a divided by b
+*/
+static INLINE int int_ceildiv(int a, int b) {
+ return (a + b - 1) / b;
+}
+/**
+Divide an integer by a power of 2 and round upwards
+@return Returns a divided by 2^b
+*/
+static INLINE int int_ceildivpow2(int a, int b) {
+ return (a + (1 << b) - 1) >> b;
+}
+/**
+Divide an integer by a power of 2 and round downwards
+@return Returns a divided by 2^b
+*/
+static INLINE int int_floordivpow2(int a, int b) {
+ return a >> b;
+}
+/**
+Get logarithm of an integer and round downwards
+@return Returns log2(a)
+*/
+static INLINE int int_floorlog2(int a) {
+ int l;
+ for (l = 0; a > 1; l++) {
+ a >>= 1;
+ }
+ return l;
+}
+/* ----------------------------------------------------------------------- */
+/*@}*/
+
+/*@}*/
+
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
+ * Copyright (c) 2002-2007, Professor Benoit Macq
+ * Copyright (c) 2001-2003, David Janssens
+ * Copyright (c) 2002-2003, Yannick Verschueren
+ * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe
+ * Copyright (c) 2005, Herve Drolon, FreeImage Team
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef __J2K_H
+#define __J2K_H
+/**
+@file j2k.h
+@brief The JPEG-2000 Codestream Reader/Writer (J2K)
+
+The functions in J2K.C have for goal to read/write the several parts of the codestream: markers and data.
+*/
+
+/** @defgroup J2K J2K - JPEG-2000 codestream reader/writer */
+/*@{*/
+
+#define J2K_CP_CSTY_PRT 0x01
+#define J2K_CP_CSTY_SOP 0x02
+#define J2K_CP_CSTY_EPH 0x04
+#define J2K_CCP_CSTY_PRT 0x01
+#define J2K_CCP_CBLKSTY_LAZY 0x01
+#define J2K_CCP_CBLKSTY_RESET 0x02
+#define J2K_CCP_CBLKSTY_TERMALL 0x04
+#define J2K_CCP_CBLKSTY_VSC 0x08
+#define J2K_CCP_CBLKSTY_PTERM 0x10
+#define J2K_CCP_CBLKSTY_SEGSYM 0x20
+#define J2K_CCP_QNTSTY_NOQNT 0
+#define J2K_CCP_QNTSTY_SIQNT 1
+#define J2K_CCP_QNTSTY_SEQNT 2
+
+/* ----------------------------------------------------------------------- */
+
+#define J2K_MS_SOC 0xff4f /**< SOC marker value */
+#define J2K_MS_SOT 0xff90 /**< SOT marker value */
+#define J2K_MS_SOD 0xff93 /**< SOD marker value */
+#define J2K_MS_EOC 0xffd9 /**< EOC marker value */
+#define J2K_MS_SIZ 0xff51 /**< SIZ marker value */
+#define J2K_MS_COD 0xff52 /**< COD marker value */
+#define J2K_MS_COC 0xff53 /**< COC marker value */
+#define J2K_MS_RGN 0xff5e /**< RGN marker value */
+#define J2K_MS_QCD 0xff5c /**< QCD marker value */
+#define J2K_MS_QCC 0xff5d /**< QCC marker value */
+#define J2K_MS_POC 0xff5f /**< POC marker value */
+#define J2K_MS_TLM 0xff55 /**< TLM marker value */
+#define J2K_MS_PLM 0xff57 /**< PLM marker value */
+#define J2K_MS_PLT 0xff58 /**< PLT marker value */
+#define J2K_MS_PPM 0xff60 /**< PPM marker value */
+#define J2K_MS_PPT 0xff61 /**< PPT marker value */
+#define J2K_MS_SOP 0xff91 /**< SOP marker value */
+#define J2K_MS_EPH 0xff92 /**< EPH marker value */
+#define J2K_MS_CRG 0xff63 /**< CRG marker value */
+#define J2K_MS_COM 0xff64 /**< COM marker value */
+/* UniPG>> */
+#ifdef USE_JPWL
+#define J2K_MS_EPC 0xff68 /**< EPC marker value (Part11) */
+#define J2K_MS_EPB 0xff66 /**< EPB marker value (Part11) */
+#define J2K_MS_ESD 0xff67 /**< ESD marker value (Part11) */
+#define J2K_MS_RED 0xff69 /**< RED marker value (Part11) */
+#endif /* USE_JPWL */
+/* <<UniPG */
+
+/* ----------------------------------------------------------------------- */
+
+/**
+Values that specify the status of the decoding process when decoding the main header.
+These values may be combined with a | operator.
+*/
+typedef enum J2K_STATUS {
+ J2K_STATE_MHSOC = 0x0001, /**< a SOC marker is expected */
+ J2K_STATE_MHSIZ = 0x0002, /**< a SIZ marker is expected */
+ J2K_STATE_MH = 0x0004, /**< the decoding process is in the main header */
+ J2K_STATE_TPHSOT = 0x0008, /**< the decoding process is in a tile part header and expects a SOT marker */
+ J2K_STATE_TPH = 0x0010, /**< the decoding process is in a tile part header */
+ J2K_STATE_MT = 0x0020, /**< the EOC marker has just been read */
+ J2K_STATE_NEOC = 0x0040 /**< the decoding process must not expect a EOC marker because the codestream is truncated */
+} J2K_STATUS;
+
+/* ----------------------------------------------------------------------- */
+
+/**
+Quantization stepsize
+*/
+typedef struct opj_stepsize {
+ /** exponent */
+ int expn;
+ /** mantissa */
+ int mant;
+} opj_stepsize_t;
+
+/**
+Tile-component coding parameters
+*/
+typedef struct opj_tccp {
+ /** coding style */
+ int csty;
+ /** number of resolutions */
+ int numresolutions;
+ /** code-blocks width */
+ int cblkw;
+ /** code-blocks height */
+ int cblkh;
+ /** code-block coding style */
+ int cblksty;
+ /** discrete wavelet transform identifier */
+ int qmfbid;
+ /** quantisation style */
+ int qntsty;
+ /** stepsizes used for quantization */
+ opj_stepsize_t stepsizes[J2K_MAXBANDS];
+ /** number of guard bits */
+ int numgbits;
+ /** Region Of Interest shift */
+ int roishift;
+ /** precinct width */
+ int prcw[J2K_MAXRLVLS];
+ /** precinct height */
+ int prch[J2K_MAXRLVLS];
+} opj_tccp_t;
+
+/**
+Tile coding parameters :
+this structure is used to store coding/decoding parameters common to all
+tiles (information like COD, COC in main header)
+*/
+typedef struct opj_tcp {
+ /** 1 : first part-tile of a tile */
+ int first;
+ /** coding style */
+ int csty;
+ /** progression order */
+ OPJ_PROG_ORDER prg;
+ /** number of layers */
+ int numlayers;
+ /** multi-component transform identifier */
+ int mct;
+ /** rates of layers */
+ float rates[100];
+ /** number of progression order changes */
+ int numpocs;
+ /** indicates if a POC marker has been used O:NO, 1:YES */
+ int POC;
+ /** progression order changes */
+ opj_poc_t pocs[32];
+ /** packet header store there for futur use in t2_decode_packet */
+ unsigned char *ppt_data;
+ /** pointer remaining on the first byte of the first header if ppt is used */
+ unsigned char *ppt_data_first;
+ /** If ppt == 1 --> there was a PPT marker for the present tile */
+ int ppt;
+ /** used in case of multiple marker PPT (number of info already stored) */
+ int ppt_store;
+ /** ppmbug1 */
+ int ppt_len;
+ /** add fixed_quality */
+ float distoratio[100];
+ /** tile-component coding parameters */
+ opj_tccp_t *tccps;
+} opj_tcp_t;
+
+/**
+Coding parameters
+*/
+typedef struct opj_cp {
+ /** allocation by rate/distortion */
+ int disto_alloc;
+ /** allocation by fixed layer */
+ int fixed_alloc;
+ /** add fixed_quality */
+ int fixed_quality;
+ /** if != 0, then original dimension divided by 2^(reduce); if == 0 or not used, image is decoded to the full resolution */
+ int reduce;
+ /** if != 0, then only the first "layer" layers are decoded; if == 0 or not used, all the quality layers are decoded */
+ int layer;
+ /** 0 = no index || 1 = index */
+ int index_on;
+ /** XTOsiz */
+ int tx0;
+ /** YTOsiz */
+ int ty0;
+ /** XTsiz */
+ int tdx;
+ /** YTsiz */
+ int tdy;
+ /** comment for coding */
+ char *comment;
+ /** number of tiles in width */
+ int tw;
+ /** number of tiles in heigth */
+ int th;
+ /** ID number of the tiles present in the codestream */
+ int *tileno;
+ /** size of the vector tileno */
+ int tileno_size;
+ /** packet header store there for futur use in t2_decode_packet */
+ unsigned char *ppm_data;
+ /** pointer remaining on the first byte of the first header if ppm is used */
+ unsigned char *ppm_data_first;
+ /** if ppm == 1 --> there was a PPM marker for the present tile */
+ int ppm;
+ /** use in case of multiple marker PPM (number of info already store) */
+ int ppm_store;
+ /** use in case of multiple marker PPM (case on non-finished previous info) */
+ int ppm_previous;
+ /** ppmbug1 */
+ int ppm_len;
+ /** tile coding parameters */
+ opj_tcp_t *tcps;
+ /** fixed layer */
+ int *matrice;
+/* UniPG>> */
+#ifdef USE_JPWL
+ /** enables writing of EPC in MH, thus activating JPWL */
+ bool epc_on;
+ /** enables writing of EPB, in case of activated JPWL */
+ bool epb_on;
+ /** enables writing of ESD, in case of activated JPWL */
+ bool esd_on;
+ /** enables writing of informative techniques of ESD, in case of activated JPWL */
+ bool info_on;
+ /** enables writing of RED, in case of activated JPWL */
+ bool red_on;
+ /** error protection method for MH (0,1,16,32,37-128) */
+ int hprot_MH;
+ /** tile number of header protection specification (>=0) */
+ int hprot_TPH_tileno[JPWL_MAX_NO_TILESPECS];
+ /** error protection methods for TPHs (0,1,16,32,37-128) */
+ int hprot_TPH[JPWL_MAX_NO_TILESPECS];
+ /** tile number of packet protection specification (>=0) */
+ int pprot_tileno[JPWL_MAX_NO_PACKSPECS];
+ /** packet number of packet protection specification (>=0) */
+ int pprot_packno[JPWL_MAX_NO_PACKSPECS];
+ /** error protection methods for packets (0,1,16,32,37-128) */
+ int pprot[JPWL_MAX_NO_PACKSPECS];
+ /** enables writing of ESD, (0/2/4 bytes) */
+ int sens_size;
+ /** sensitivity addressing size (0=auto/2/4 bytes) */
+ int sens_addr;
+ /** sensitivity range (0-3) */
+ int sens_range;
+ /** sensitivity method for MH (-1,0-7) */
+ int sens_MH;
+ /** tile number of sensitivity specification (>=0) */
+ int sens_TPH_tileno[JPWL_MAX_NO_TILESPECS];
+ /** sensitivity methods for TPHs (-1,0-7) */
+ int sens_TPH[JPWL_MAX_NO_TILESPECS];
+ /** enables JPWL correction at the decoder */
+ bool correct;
+ /** expected number of components at the decoder */
+ int exp_comps;
+ /** maximum number of tiles at the decoder */
+ int max_tiles;
+#endif /* USE_JPWL */
+/* <<UniPG */
+} opj_cp_t;
+
+/**
+Information concerning a packet inside tile
+*/
+typedef struct opj_packet_info {
+ /** start position */
+ int start_pos;
+ /** end position */
+ int end_pos;
+ /** ADD for Marcela */
+ double disto;
+} opj_packet_info_t;
+
+/**
+Index structure : information regarding tiles inside image
+*/
+typedef struct opj_tile_info {
+ /** value of thresh for each layer by tile cfr. Marcela */
+ double *thresh;
+ /** number of tile */
+ int num_tile;
+ /** start position */
+ int start_pos;
+ /** end position of the header */
+ int end_header;
+ /** end position */
+ int end_pos;
+ /** precinct number for each resolution level (width) */
+ int pw[33];
+ /** precinct number for each resolution level (height) */
+ int ph[33];
+ /** precinct size (in power of 2), in X for each resolution level */
+ int pdx[33];
+ /** precinct size (in power of 2), in Y for each resolution level */
+ int pdy[33];
+ /** information concerning packets inside tile */
+ opj_packet_info_t *packet;
+ /** add fixed_quality */
+ int nbpix;
+ /** add fixed_quality */
+ double distotile;
+} opj_tile_info_t;
+
+/**
+Index structure
+*/
+typedef struct opj_image_info {
+ /** 0 = no index || 1 = index */
+ int index_on;
+ /** maximum distortion reduction on the whole image (add for Marcela) */
+ double D_max;
+ /** packet number */
+ int num;
+ /** writing the packet in the index with t2_encode_packets */
+ int index_write;
+ /** image width */
+ int image_w;
+ /** image height */
+ int image_h;
+ /** progression order */
+ OPJ_PROG_ORDER prog;
+ /** tile size in x */
+ int tile_x;
+ /** tile size in y */
+ int tile_y;
+ /** */
+ int tile_Ox;
+ /** */
+ int tile_Oy;
+ /** number of tiles in X */
+ int tw;
+ /** number of tiles in Y */
+ int th;
+ /** component numbers */
+ int comp;
+ /** number of layer */
+ int layer;
+ /** number of decomposition */
+ int decomposition;
+ /** main header position */
+ int main_head_end;
+ /** codestream's size */
+ int codestream_size;
+ /** information regarding tiles inside image */
+ opj_tile_info_t *tile;
+} opj_image_info_t;
+
+/**
+JPEG-2000 codestream reader/writer
+*/
+typedef struct opj_j2k {
+ /** codec context */
+ opj_common_ptr cinfo;
+
+ /** locate in which part of the codestream the decoder is (main header, tile header, end) */
+ int state;
+ /** number of the tile curently concern by coding/decoding */
+ int curtileno;
+ /**
+ locate the position of the end of the tile in the codestream,
+ used to detect a truncated codestream (in j2k_read_sod)
+ */
+ unsigned char *eot;
+ /**
+ locate the start position of the SOT marker of the current coded tile:
+ after encoding the tile, a jump (in j2k_write_sod) is done to the SOT marker to store the value of its length.
+ */
+ int sot_start;
+ int sod_start;
+ /**
+ as the J2K-file is written in several parts during encoding,
+ it enables to make the right correction in position return by cio_tell
+ */
+ int pos_correction;
+ /** array used to store the data of each tile */
+ unsigned char **tile_data;
+ /** array used to store the length of each tile */
+ int *tile_len;
+ /**
+ decompression only :
+ store decoding parameters common to all tiles (information like COD, COC in main header)
+ */
+ opj_tcp_t *default_tcp;
+ /** pointer to the encoded / decoded image */
+ opj_image_t *image;
+ /** pointer to the coding parameters */
+ opj_cp_t *cp;
+ /** helper used to write the index file */
+ opj_image_info_t *image_info;
+ /** pointer to the byte i/o stream */
+ opj_cio_t *cio;
+} opj_j2k_t;
+
+/** @name Exported functions */
+/*@{*/
+/* ----------------------------------------------------------------------- */
+/**
+Creates a J2K decompression structure
+@param cinfo Codec context info
+@return Returns a handle to a J2K decompressor if successful, returns NULL otherwise
+*/
+opj_j2k_t* j2k_create_decompress(opj_common_ptr cinfo);
+/**
+Destroy a J2K decompressor handle
+@param j2k J2K decompressor handle to destroy
+*/
+void j2k_destroy_decompress(opj_j2k_t *j2k);
+/**
+Setup the decoder decoding parameters using user parameters.
+Decoding parameters are returned in j2k->cp.
+@param j2k J2K decompressor handle
+@param parameters decompression parameters
+*/
+void j2k_setup_decoder(opj_j2k_t *j2k, opj_dparameters_t *parameters);
+/**
+Decode an image from a JPEG-2000 codestream
+@param j2k J2K decompressor handle
+@param cio Input buffer stream
+@return Returns a decoded image if successful, returns NULL otherwise
+*/
+opj_image_t* j2k_decode(opj_j2k_t *j2k, opj_cio_t *cio);
+/**
+Decode an image form a JPT-stream (JPEG 2000, JPIP)
+@param j2k J2K decompressor handle
+@param cio Input buffer stream
+@return Returns a decoded image if successful, returns NULL otherwise
+*/
+opj_image_t* j2k_decode_jpt_stream(opj_j2k_t *j2k, opj_cio_t *cio);
+/**
+Creates a J2K compression structure
+@param cinfo Codec context info
+@return Returns a handle to a J2K compressor if successful, returns NULL otherwise
+*/
+opj_j2k_t* j2k_create_compress(opj_common_ptr cinfo);
+/**
+Destroy a J2K compressor handle
+@param j2k J2K compressor handle to destroy
+*/
+void j2k_destroy_compress(opj_j2k_t *j2k);
+/**
+Setup the encoder parameters using the current image and using user parameters.
+Coding parameters are returned in j2k->cp.
+@param j2k J2K compressor handle
+@param parameters compression parameters
+@param image input filled image
+*/
+void j2k_setup_encoder(opj_j2k_t *j2k, opj_cparameters_t *parameters, opj_image_t *image);
+/**
+Encode an image into a JPEG-2000 codestream
+@param j2k J2K compressor handle
+@param cio Output buffer stream
+@param image Image to encode
+@param index Name of the index file if required, NULL otherwise
+@return Returns true if successful, returns false otherwise
+*/
+bool j2k_encode(opj_j2k_t *j2k, opj_cio_t *cio, opj_image_t *image, char *index);
+/* ----------------------------------------------------------------------- */
+/*@}*/
+
+/*@}*/
+
+#endif /* __J2K_H */
--- /dev/null
+/*
+ * Copyright (c) 2005, Herv� Drolon, FreeImage Team
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef __J2K_LIB_H
+#define __J2K_LIB_H
+/**
+@file j2k_lib.h
+@brief Internal functions
+
+The functions in J2K_LIB.C are internal utilities mainly used for memory management.
+*/
+
+/** @defgroup MISC MISC - Miscellaneous internal functions */
+/*@{*/
+
+/** @name Exported functions */
+/*@{*/
+/* ----------------------------------------------------------------------- */
+
+/**
+Difference in successive opj_clock() calls tells you the elapsed time
+@return Returns time in seconds
+*/
+double opj_clock();
+
+/**
+Allocate a memory block with elements initialized to 0
+@param size Bytes to allocate
+@return Returns a void pointer to the allocated space, or NULL if there is insufficient memory available
+*/
+void* opj_malloc( size_t size );
+
+/**
+Reallocate memory blocks.
+@param memblock Pointer to previously allocated memory block
+@param size New size in bytes
+@return Returns a void pointer to the reallocated (and possibly moved) memory block
+*/
+void* opj_realloc( void *memblock, size_t size );
+
+/**
+Deallocates or frees a memory block.
+@param memblock Previously allocated memory block to be freed
+*/
+void opj_free( void *memblock );
+
+/* ----------------------------------------------------------------------- */
+/*@}*/
+
+/*@}*/
+
+#endif /* __J2K_LIB_H */
+
--- /dev/null
+/*
+ * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
+ * Copyright (c) 2002-2007, Professor Benoit Macq
+ * Copyright (c) 2002-2003, Yannick Verschueren
+ * Copyright (c) 2005, Herve Drolon, FreeImage Team
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef __JP2_H
+#define __JP2_H
+/**
+@file jp2.h
+@brief The JPEG-2000 file format Reader/Writer (JP2)
+
+*/
+
+/** @defgroup JP2 JP2 - JPEG-2000 file format reader/writer */
+/*@{*/
+
+#define JPIP_JPIP 0x6a706970
+
+#define JP2_JP 0x6a502020 /**< JPEG 2000 signature box */
+#define JP2_FTYP 0x66747970 /**< File type box */
+#define JP2_JP2H 0x6a703268 /**< JP2 header box */
+#define JP2_IHDR 0x69686472 /**< Image header box */
+#define JP2_COLR 0x636f6c72 /**< Colour specification box */
+#define JP2_JP2C 0x6a703263 /**< Contiguous codestream box */
+#define JP2_URL 0x75726c20 /**< URL box */
+#define JP2_DBTL 0x6474626c /**< ??? */
+#define JP2_BPCC 0x62706363 /**< Bits per component box */
+#define JP2_JP2 0x6a703220 /**< File type fields */
+
+/* ----------------------------------------------------------------------- */
+
+/**
+JP2 component
+*/
+typedef struct opj_jp2_comps {
+ int depth;
+ int sgnd;
+ int bpcc;
+} opj_jp2_comps_t;
+
+/**
+JPEG-2000 file format reader/writer
+*/
+typedef struct opj_jp2 {
+ /** codec context */
+ opj_common_ptr cinfo;
+ /** handle to the J2K codec */
+ opj_j2k_t *j2k;
+ unsigned int w;
+ unsigned int h;
+ unsigned int numcomps;
+ unsigned int bpc;
+ unsigned int C;
+ unsigned int UnkC;
+ unsigned int IPR;
+ unsigned int meth;
+ unsigned int approx;
+ unsigned int enumcs;
+ unsigned int precedence;
+ unsigned int brand;
+ unsigned int minversion;
+ unsigned int numcl;
+ unsigned int *cl;
+ opj_jp2_comps_t *comps;
+ unsigned int j2k_codestream_offset;
+ unsigned int j2k_codestream_length;
+} opj_jp2_t;
+
+/**
+JP2 Box
+*/
+typedef struct opj_jp2_box {
+ int length;
+ int type;
+ int init_pos;
+} opj_jp2_box_t;
+
+/** @name Exported functions */
+/*@{*/
+/* ----------------------------------------------------------------------- */
+/**
+Creates a JP2 decompression structure
+@param cinfo Codec context info
+@return Returns a handle to a JP2 decompressor if successful, returns NULL otherwise
+*/
+opj_jp2_t* jp2_create_decompress(opj_common_ptr cinfo);
+/**
+Destroy a JP2 decompressor handle
+@param jp2 JP2 decompressor handle to destroy
+*/
+void jp2_destroy_decompress(opj_jp2_t *jp2);
+/**
+Setup the decoder decoding parameters using user parameters.
+Decoding parameters are returned in jp2->j2k->cp.
+@param jp2 JP2 decompressor handle
+@param parameters decompression parameters
+*/
+void jp2_setup_decoder(opj_jp2_t *jp2, opj_dparameters_t *parameters);
+/**
+Decode an image from a JPEG-2000 file stream
+@param jp2 JP2 decompressor handle
+@param cio Input buffer stream
+@return Returns a decoded image if successful, returns NULL otherwise
+*/
+opj_image_t* jp2_decode(opj_jp2_t *jp2, opj_cio_t *cio);
+/**
+Creates a JP2 compression structure
+@param cinfo Codec context info
+@return Returns a handle to a JP2 compressor if successful, returns NULL otherwise
+*/
+opj_jp2_t* jp2_create_compress(opj_common_ptr cinfo);
+/**
+Destroy a JP2 compressor handle
+@param jp2 JP2 compressor handle to destroy
+*/
+void jp2_destroy_compress(opj_jp2_t *jp2);
+/**
+Setup the encoder parameters using the current image and using user parameters.
+Coding parameters are returned in jp2->j2k->cp.
+@param jp2 JP2 compressor handle
+@param parameters compression parameters
+@param image input filled image
+*/
+void jp2_setup_encoder(opj_jp2_t *jp2, opj_cparameters_t *parameters, opj_image_t *image);
+/**
+Encode an image into a JPEG-2000 file stream
+@param jp2 JP2 compressor handle
+@param cio Output buffer stream
+@param image Image to encode
+@param index Name of the index file if required, NULL otherwise
+@return Returns true if successful, returns false otherwise
+*/
+bool jp2_encode(opj_jp2_t *jp2, opj_cio_t *cio, opj_image_t *image, char *index);
+/* ----------------------------------------------------------------------- */
+/*@}*/
+
+/*@}*/
+
+#endif /* __JP2_H */
+
--- /dev/null
+/*
+ * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
+ * Copyright (c) 2002-2007, Professor Benoit Macq
+ * Copyright (c) 2002-2003, Yannick Verschueren
+ * Copyright (c) 2005, Herve Drolon, FreeImage Team
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __JPT_H
+#define __JPT_H
+/**
+@file jpt.h
+@brief JPT-stream reader (JPEG 2000, JPIP)
+
+JPT-stream functions are implemented in J2K.C.
+*/
+
+/**
+Message Header JPT stream structure
+*/
+typedef struct opj_jpt_msg_header {
+ /** In-class Identifier */
+ unsigned int Id;
+ /** Last byte information */
+ unsigned int last_byte;
+ /** Class Identifier */
+ unsigned int Class_Id;
+ /** CSn : index identifier */
+ unsigned int CSn_Id;
+ /** Message offset */
+ unsigned int Msg_offset;
+ /** Message length */
+ unsigned int Msg_length;
+ /** Auxiliary for JPP case */
+ unsigned int Layer_nb;
+} opj_jpt_msg_header_t;
+
+/* ----------------------------------------------------------------------- */
+
+/**
+Initialize the value of the message header structure
+@param header Message header structure
+*/
+void jpt_init_msg_header(opj_jpt_msg_header_t * header);
+
+/**
+Read the message header for a JPP/JPT - stream
+@param cinfo Codec context info
+@param cio CIO handle
+@param header Message header structure
+*/
+void jpt_read_msg_header(opj_common_ptr cinfo, opj_cio_t *cio, opj_jpt_msg_header_t *header);
+
+#endif
--- /dev/null
+/*
+ * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
+ * Copyright (c) 2002-2007, Professor Benoit Macq
+ * Copyright (c) 2001-2003, David Janssens
+ * Copyright (c) 2002-2003, Yannick Verschueren
+ * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe
+ * Copyright (c) 2005, Herve Drolon, FreeImage Team
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __MCT_H
+#define __MCT_H
+/**
+@file mct.h
+@brief Implementation of a multi-component transforms (MCT)
+
+The functions in MCT.C have for goal to realize reversible and irreversible multicomponent
+transform. The functions in MCT.C are used by some function in TCD.C.
+*/
+
+/** @defgroup MCT MCT - Implementation of a multi-component transform */
+/*@{*/
+
+/** @name Exported functions */
+/*@{*/
+/* ----------------------------------------------------------------------- */
+/**
+Apply a reversible multi-component transform to an image
+@param c0 Samples for red component
+@param c1 Samples for green component
+@param c2 Samples blue component
+@param n Number of samples for each component
+*/
+void mct_encode(int *c0, int *c1, int *c2, int n);
+/**
+Apply a reversible multi-component inverse transform to an image
+@param c0 Samples for luminance component
+@param c1 Samples for red chrominance component
+@param c2 Samples for blue chrominance component
+@param n Number of samples for each component
+*/
+void mct_decode(int *c0, int *c1, int *c2, int n);
+/**
+Get norm of the basis function used for the reversible multi-component transform
+@param compno Number of the component (0->Y, 1->U, 2->V)
+@return
+*/
+double mct_getnorm(int compno);
+
+/**
+Apply an irreversible multi-component transform to an image
+@param c0 Samples for red component
+@param c1 Samples for green component
+@param c2 Samples blue component
+@param n Number of samples for each component
+*/
+void mct_encode_real(int *c0, int *c1, int *c2, int n);
+/**
+Apply an irreversible multi-component inverse transform to an image
+@param c0 Samples for luminance component
+@param c1 Samples for red chrominance component
+@param c2 Samples for blue chrominance component
+@param n Number of samples for each component
+*/
+void mct_decode_real(int *c0, int *c1, int *c2, int n);
+/**
+Get norm of the basis function used for the irreversible multi-component transform
+@param compno Number of the component (0->Y, 1->U, 2->V)
+@return
+*/
+double mct_getnorm_real(int compno);
+/* ----------------------------------------------------------------------- */
+/*@}*/
+
+/*@}*/
+
+#endif /* __MCT_H */
--- /dev/null
+/*
+ * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
+ * Copyright (c) 2002-2007, Professor Benoit Macq
+ * Copyright (c) 2001-2003, David Janssens
+ * Copyright (c) 2002-2003, Yannick Verschueren
+ * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe
+ * Copyright (c) 2005, Herve Drolon, FreeImage Team
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __MQC_H
+#define __MQC_H
+/**
+@file mqc.h
+@brief Implementation of an MQ-Coder (MQC)
+
+The functions in MQC.C have for goal to realize the MQ-coder operations. The functions
+in MQC.C are used by some function in T1.C.
+*/
+
+/** @defgroup MQC MQC - Implementation of an MQ-Coder */
+/*@{*/
+
+/**
+This struct defines the state of a context.
+*/
+typedef struct opj_mqc_state {
+ /** the probability of the Least Probable Symbol (0.75->0x8000, 1.5->0xffff) */
+ unsigned int qeval;
+ /** the Most Probable Symbol (0 or 1) */
+ int mps;
+ /** next state if the next encoded symbol is the MPS */
+ struct opj_mqc_state *nmps;
+ /** next state if the next encoded symbol is the LPS */
+ struct opj_mqc_state *nlps;
+} opj_mqc_state_t;
+
+#define MQC_NUMCTXS 32
+
+/**
+MQ coder
+*/
+typedef struct opj_mqc {
+ unsigned int c;
+ unsigned int a;
+ unsigned int ct;
+ unsigned char *bp;
+ unsigned char *start;
+ unsigned char *end;
+ opj_mqc_state_t *ctxs[MQC_NUMCTXS];
+ opj_mqc_state_t **curctx;
+} opj_mqc_t;
+
+/** @name Exported functions */
+/*@{*/
+/* ----------------------------------------------------------------------- */
+/**
+Create a new MQC handle
+@return Returns a new MQC handle if successful, returns NULL otherwise
+*/
+opj_mqc_t* mqc_create();
+/**
+Destroy a previously created MQC handle
+@param mqc MQC handle to destroy
+*/
+void mqc_destroy(opj_mqc_t *mqc);
+/**
+Return the number of bytes written/read since initialisation
+@param mqc MQC handle
+@return Returns the number of bytes already encoded
+*/
+int mqc_numbytes(opj_mqc_t *mqc);
+/**
+Reset the states of all the context of the coder/decoder
+(each context is set to a state where 0 and 1 are more or less equiprobable)
+@param mqc MQC handle
+*/
+void mqc_resetstates(opj_mqc_t *mqc);
+/**
+Set the state of a particular context
+@param mqc MQC handle
+@param ctxno Number that identifies the context
+@param msb The MSB of the new state of the context
+@param prob Number that identifies the probability of the symbols for the new state of the context
+*/
+void mqc_setstate(opj_mqc_t *mqc, int ctxno, int msb, int prob);
+/**
+Initialize the encoder
+@param mqc MQC handle
+@param bp Pointer to the start of the buffer where the bytes will be written
+*/
+void mqc_init_enc(opj_mqc_t *mqc, unsigned char *bp);
+/**
+Set the current context used for coding/decoding
+@param mqc MQC handle
+@param ctxno Number that identifies the context
+*/
+void mqc_setcurctx(opj_mqc_t *mqc, int ctxno);
+/**
+Encode a symbol using the MQ-coder
+@param mqc MQC handle
+@param d The symbol to be encoded (0 or 1)
+*/
+void mqc_encode(opj_mqc_t *mqc, int d);
+/**
+Flush the encoder, so that all remaining data is written
+@param mqc MQC handle
+*/
+void mqc_flush(opj_mqc_t *mqc);
+/**
+BYPASS mode switch, initialization operation.
+JPEG 2000 p 505.
+<h2>Not fully implemented and tested !!</h2>
+@param mqc MQC handle
+*/
+void mqc_bypass_init_enc(opj_mqc_t *mqc);
+/**
+BYPASS mode switch, coding operation.
+JPEG 2000 p 505.
+<h2>Not fully implemented and tested !!</h2>
+@param mqc MQC handle
+@param d The symbol to be encoded (0 or 1)
+*/
+void mqc_bypass_enc(opj_mqc_t *mqc, int d);
+/**
+BYPASS mode switch, flush operation
+<h2>Not fully implemented and tested !!</h2>
+@param mqc MQC handle
+@return Returns 1 (always)
+*/
+int mqc_bypass_flush_enc(opj_mqc_t *mqc);
+/**
+RESET mode switch
+@param mqc MQC handle
+*/
+void mqc_reset_enc(opj_mqc_t *mqc);
+/**
+RESTART mode switch (TERMALL)
+@param mqc MQC handle
+@return Returns 1 (always)
+*/
+int mqc_restart_enc(opj_mqc_t *mqc);
+/**
+RESTART mode switch (TERMALL) reinitialisation
+@param mqc MQC handle
+*/
+void mqc_restart_init_enc(opj_mqc_t *mqc);
+/**
+ERTERM mode switch (PTERM)
+@param mqc MQC handle
+*/
+void mqc_erterm_enc(opj_mqc_t *mqc);
+/**
+SEGMARK mode switch (SEGSYM)
+@param mqc MQC handle
+*/
+void mqc_segmark_enc(opj_mqc_t *mqc);
+/**
+Initialize the decoder
+@param mqc MQC handle
+@param bp Pointer to the start of the buffer from which the bytes will be read
+@param len Length of the input buffer
+*/
+void mqc_init_dec(opj_mqc_t *mqc, unsigned char *bp, int len);
+/**
+Decode a symbol
+@param mqc MQC handle
+@return Returns the decoded symbol (0 or 1)
+*/
+int mqc_decode(opj_mqc_t *mqc);
+/* ----------------------------------------------------------------------- */
+/*@}*/
+
+/*@}*/
+
+#endif /* __MQC_H */
--- /dev/null
+ /*
+ * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
+ * Copyright (c) 2002-2007, Professor Benoit Macq
+ * Copyright (c) 2001-2003, David Janssens
+ * Copyright (c) 2002-2003, Yannick Verschueren
+ * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe
+ * Copyright (c) 2005, Herve Drolon, FreeImage Team
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef OPENJPEG_H
+#define OPENJPEG_H
+
+#define OPENJPEG_VERSION "1.1.0"
+
+/*
+==========================================================
+ Compiler directives
+==========================================================
+*/
+
+#if defined(OPJ_STATIC) || !(defined(WIN32) || defined(__WIN32__))
+#define OPJ_API
+#define OPJ_CALLCONV
+#else
+#define OPJ_CALLCONV __stdcall
+/*
+The following ifdef block is the standard way of creating macros which make exporting
+from a DLL simpler. All files within this DLL are compiled with the OPJ_EXPORTS
+symbol defined on the command line. this symbol should not be defined on any project
+that uses this DLL. This way any other project whose source files include this file see
+OPJ_API functions as being imported from a DLL, wheras this DLL sees symbols
+defined with this macro as being exported.
+*/
+#ifdef OPJ_EXPORTS
+#define OPJ_API __declspec(dllexport)
+#else
+#define OPJ_API __declspec(dllimport)
+#endif /* OPJ_EXPORTS */
+#endif /* !OPJ_STATIC || !WIN32 */
+
+#ifndef __cplusplus
+#if defined(HAVE_STDBOOL_H)
+/*
+The C language implementation does correctly provide the standard header
+file "stdbool.h".
+ */
+#include <stdbool.h>
+#else
+/*
+The C language implementation does not provide the standard header file
+"stdbool.h" as required by ISO/IEC 9899:1999. Try to compensate for this
+braindamage below.
+*/
+#if !defined(bool)
+#define bool int
+#endif
+#if !defined(true)
+#define true 1
+#endif
+#if !defined(false)
+#define false 0
+#endif
+#endif
+#endif /* __cplusplus */
+
+/*
+==========================================================
+ Useful constant definitions
+==========================================================
+*/
+
+#define OPJ_PATH_LEN 4096 /**< Maximum allowed size for filenames */
+
+#define J2K_MAXRLVLS 33 /**< Number of maximum resolution level authorized */
+#define J2K_MAXBANDS (3*J2K_MAXRLVLS-2) /**< Number of maximum sub-band linked to number of resolution level */
+
+/* UniPG>> */
+#ifdef USE_JPWL
+#define JPWL_MAX_NO_TILESPECS 16 /**< Maximum number of tile parts expected by JPWL: increase at your will */
+#define JPWL_MAX_NO_PACKSPECS 16 /**< Maximum number of packet parts expected by JPWL: increase at your will */
+#define JPWL_MAX_NO_MARKERS 512 /**< Maximum number of JPWL markers: increase at your will */
+#define JPWL_PRIVATEINDEX_NAME "jpwl_index_privatefilename" /**< index file name used when JPWL is on */
+#define JPWL_EXPECTED_COMPONENTS 3 /**< Expect this number of components, so you'll find better the first EPB */
+#define JPWL_MAXIMUM_TILES 8192 /**< Expect this maximum number of tiles, to avoid some crashes */
+#define JPWL_MAXIMUM_HAMMING 2 /**< Expect this maximum number of bit errors in marker id's */
+#endif /* USE_JPWL */
+/* <<UniPG */
+
+/*
+==========================================================
+ enum definitions
+==========================================================
+*/
+
+/** Progression order */
+typedef enum PROG_ORDER {
+ PROG_UNKNOWN = -1, /**< place-holder */
+ LRCP = 0, /**< layer-resolution-component-precinct order */
+ RLCP = 1, /**< resolution-layer-component-precinct order */
+ RPCL = 2, /**< resolution-precinct-component-layer order */
+ PCRL = 3, /**< precinct-component-resolution-layer order */
+ CPRL = 4 /**< component-precinct-resolution-layer order */
+} OPJ_PROG_ORDER;
+
+/**
+Supported image color spaces
+*/
+typedef enum COLOR_SPACE {
+ CLRSPC_UNKNOWN = -1, /**< place-holder */
+ CLRSPC_SRGB = 1, /**< sRGB */
+ CLRSPC_GRAY = 2, /**< grayscale */
+ CLRSPC_SYCC = 3 /**< YUV */
+} OPJ_COLOR_SPACE;
+
+/**
+Supported codec
+*/
+typedef enum CODEC_FORMAT {
+ CODEC_UNKNOWN = -1, /**< place-holder */
+ CODEC_J2K = 0, /**< JPEG-2000 codestream : read/write */
+ CODEC_JPT = 1, /**< JPT-stream (JPEG 2000, JPIP) : read only */
+ CODEC_JP2 = 2 /**< JPEG-2000 file format : read/write */
+} OPJ_CODEC_FORMAT;
+
+/*
+==========================================================
+ event manager typedef definitions
+==========================================================
+*/
+
+/**
+Callback function prototype for events
+@param msg Event message
+@param client_data
+*/
+typedef void (*opj_msg_callback) (const char *msg, void *client_data);
+
+/**
+Message handler object
+used for
+<ul>
+<li>Error messages
+<li>Warning messages
+<li>Debugging messages
+</ul>
+*/
+typedef struct opj_event_mgr {
+ /** Error message callback if available, NULL otherwise */
+ opj_msg_callback error_handler;
+ /** Warning message callback if available, NULL otherwise */
+ opj_msg_callback warning_handler;
+ /** Debug message callback if available, NULL otherwise */
+ opj_msg_callback info_handler;
+} opj_event_mgr_t;
+
+
+/*
+==========================================================
+ codec typedef definitions
+==========================================================
+*/
+
+/**
+Progression order changes
+*/
+typedef struct opj_poc {
+ int resno0, compno0;
+ int layno1, resno1, compno1;
+ OPJ_PROG_ORDER prg;
+ int tile;
+ char progorder[4];
+} opj_poc_t;
+
+/**
+Compression parameters
+*/
+typedef struct opj_cparameters {
+ /** size of tile: tile_size_on = false (not in argument) or = true (in argument) */
+ bool tile_size_on;
+ /** XTOsiz */
+ int cp_tx0;
+ /** YTOsiz */
+ int cp_ty0;
+ /** XTsiz */
+ int cp_tdx;
+ /** YTsiz */
+ int cp_tdy;
+ /** allocation by rate/distortion */
+ int cp_disto_alloc;
+ /** allocation by fixed layer */
+ int cp_fixed_alloc;
+ /** add fixed_quality */
+ int cp_fixed_quality;
+ /** fixed layer */
+ int *cp_matrice;
+ /** comment for coding */
+ char *cp_comment;
+ /** csty : coding style */
+ int csty;
+ /** progression order (default LRCP) */
+ OPJ_PROG_ORDER prog_order;
+ /** progression order changes */
+ opj_poc_t POC[32];
+ /** number of progression order changes (POC), default to 0 */
+ int numpocs;
+ /** number of layers */
+ int tcp_numlayers;
+ /** rates of layers */
+ float tcp_rates[100];
+ /** different psnr for successive layers */
+ float tcp_distoratio[100];
+ /** number of resolutions */
+ int numresolution;
+ /** initial code block width, default to 64 */
+ int cblockw_init;
+ /** initial code block height, default to 64 */
+ int cblockh_init;
+ /** mode switch (cblk_style) */
+ int mode;
+ /** 1 : use the irreversible DWT 9-7, 0 : use lossless compression (default) */
+ int irreversible;
+ /** region of interest: affected component in [0..3], -1 means no ROI */
+ int roi_compno;
+ /** region of interest: upshift value */
+ int roi_shift;
+ /* number of precinct size specifications */
+ int res_spec;
+ /** initial precinct width */
+ int prcw_init[J2K_MAXRLVLS];
+ /** initial precinct height */
+ int prch_init[J2K_MAXRLVLS];
+
+ /**@name command line encoder parameters (not used inside the library) */
+ /*@{*/
+ /** input file name */
+ char infile[OPJ_PATH_LEN];
+ /** output file name */
+ char outfile[OPJ_PATH_LEN];
+ /** creation of an index file, default to 0 (false) */
+ int index_on;
+ /** index file name */
+ char index[OPJ_PATH_LEN];
+ /** subimage encoding: origin image offset in x direction */
+ int image_offset_x0;
+ /** subimage encoding: origin image offset in y direction */
+ int image_offset_y0;
+ /** subsampling value for dx */
+ int subsampling_dx;
+ /** subsampling value for dy */
+ int subsampling_dy;
+ /** input file format 0: PGX, 1: PxM, 2: BMP */
+ int decod_format;
+ /** output file format 0: J2K, 1: JP2, 2: JPT */
+ int cod_format;
+ /*@}*/
+
+/* UniPG>> */
+#ifdef USE_JPWL
+ /**@name JPWL encoding parameters */
+ /*@{*/
+ /** enables writing of EPC in MH, thus activating JPWL */
+ bool jpwl_epc_on;
+ /** error protection method for MH (0,1,16,32,37-128) */
+ int jpwl_hprot_MH;
+ /** tile number of header protection specification (>=0) */
+ int jpwl_hprot_TPH_tileno[JPWL_MAX_NO_TILESPECS];
+ /** error protection methods for TPHs (0,1,16,32,37-128) */
+ int jpwl_hprot_TPH[JPWL_MAX_NO_TILESPECS];
+ /** tile number of packet protection specification (>=0) */
+ int jpwl_pprot_tileno[JPWL_MAX_NO_PACKSPECS];
+ /** packet number of packet protection specification (>=0) */
+ int jpwl_pprot_packno[JPWL_MAX_NO_PACKSPECS];
+ /** error protection methods for packets (0,1,16,32,37-128) */
+ int jpwl_pprot[JPWL_MAX_NO_PACKSPECS];
+ /** enables writing of ESD, (0=no/1/2 bytes) */
+ int jpwl_sens_size;
+ /** sensitivity addressing size (0=auto/2/4 bytes) */
+ int jpwl_sens_addr;
+ /** sensitivity range (0-3) */
+ int jpwl_sens_range;
+ /** sensitivity method for MH (-1=no,0-7) */
+ int jpwl_sens_MH;
+ /** tile number of sensitivity specification (>=0) */
+ int jpwl_sens_TPH_tileno[JPWL_MAX_NO_TILESPECS];
+ /** sensitivity methods for TPHs (-1=no,0-7) */
+ int jpwl_sens_TPH[JPWL_MAX_NO_TILESPECS];
+ /*@}*/
+#endif /* USE_JPWL */
+/* <<UniPG */
+
+} opj_cparameters_t;
+
+/**
+Decompression parameters
+*/
+typedef struct opj_dparameters {
+ /**
+ Set the number of highest resolution levels to be discarded.
+ The image resolution is effectively divided by 2 to the power of the number of discarded levels.
+ The reduce factor is limited by the smallest total number of decomposition levels among tiles.
+ if != 0, then original dimension divided by 2^(reduce);
+ if == 0 or not used, image is decoded to the full resolution
+ */
+ int cp_reduce;
+ /**
+ Set the maximum number of quality layers to decode.
+ If there are less quality layers than the specified number, all the quality layers are decoded.
+ if != 0, then only the first "layer" layers are decoded;
+ if == 0 or not used, all the quality layers are decoded
+ */
+ int cp_layer;
+
+ /**@name command line encoder parameters (not used inside the library) */
+ /*@{*/
+ /** input file name */
+ char infile[OPJ_PATH_LEN];
+ /** output file name */
+ char outfile[OPJ_PATH_LEN];
+ /** input file format 0: J2K, 1: JP2, 2: JPT */
+ int decod_format;
+ /** output file format 0: PGX, 1: PxM, 2: BMP */
+ int cod_format;
+ /*@}*/
+
+/* UniPG>> */
+#ifdef USE_JPWL
+ /**@name JPWL decoding parameters */
+ /*@{*/
+ /** activates the JPWL correction capabilities */
+ bool jpwl_correct;
+ /** expected number of components */
+ bool jpwl_exp_comps;
+ /** maximum number of tiles */
+ bool jpwl_max_tiles;
+ /*@}*/
+#endif /* USE_JPWL */
+/* <<UniPG */
+} opj_dparameters_t;
+
+/** Common fields between JPEG-2000 compression and decompression master structs. */
+
+#define opj_common_fields \
+ opj_event_mgr_t *event_mgr; /**< pointer to the event manager */\
+ void * client_data; /**< Available for use by application */\
+ bool is_decompressor; /**< So common code can tell which is which */\
+ OPJ_CODEC_FORMAT codec_format; /**< selected codec */\
+ void *j2k_handle; /**< pointer to the J2K codec */\
+ void *jp2_handle /**< pointer to the JP2 codec */
+
+/* Routines that are to be used by both halves of the library are declared
+ * to receive a pointer to this structure. There are no actual instances of
+ * opj_common_struct_t, only of opj_cinfo_t and opj_dinfo_t.
+ */
+typedef struct opj_common_struct {
+ opj_common_fields; /* Fields common to both master struct types */
+ /* Additional fields follow in an actual opj_cinfo_t or
+ * opj_dinfo_t. All three structs must agree on these
+ * initial fields! (This would be a lot cleaner in C++.)
+ */
+} opj_common_struct_t;
+
+typedef opj_common_struct_t * opj_common_ptr;
+
+/**
+Compression context info
+*/
+typedef struct opj_cinfo {
+ /** Fields shared with opj_dinfo_t */
+ opj_common_fields;
+ /* other specific fields go here */
+} opj_cinfo_t;
+
+/**
+Decompression context info
+*/
+typedef struct opj_dinfo {
+ /** Fields shared with opj_cinfo_t */
+ opj_common_fields;
+ /* other specific fields go here */
+} opj_dinfo_t;
+
+/*
+==========================================================
+ I/O stream typedef definitions
+==========================================================
+*/
+
+/*
+ * Stream open flags.
+ */
+/** The stream was opened for reading. */
+#define OPJ_STREAM_READ 0x0001
+/** The stream was opened for writing. */
+#define OPJ_STREAM_WRITE 0x0002
+
+/**
+Byte input-output stream (CIO)
+*/
+typedef struct opj_cio {
+ /** codec context */
+ opj_common_ptr cinfo;
+
+ /** open mode (read/write) either OPJ_STREAM_READ or OPJ_STREAM_WRITE */
+ int openmode;
+ /** pointer to the start of the buffer */
+ unsigned char *buffer;
+ /** buffer size in bytes */
+ int length;
+
+ /** pointer to the start of the stream */
+ unsigned char *start;
+ /** pointer to the end of the stream */
+ unsigned char *end;
+ /** pointer to the current position */
+ unsigned char *bp;
+} opj_cio_t;
+
+/*
+==========================================================
+ image typedef definitions
+==========================================================
+*/
+
+/**
+Defines a single image component
+*/
+typedef struct opj_image_comp {
+ /** XRsiz: horizontal separation of a sample of ith component with respect to the reference grid */
+ int dx;
+ /** YRsiz: vertical separation of a sample of ith component with respect to the reference grid */
+ int dy;
+ /** data width */
+ int w;
+ /** data height */
+ int h;
+ /** x component offset compared to the whole image */
+ int x0;
+ /** y component offset compared to the whole image */
+ int y0;
+ /** precision */
+ int prec;
+ /** image depth in bits */
+ int bpp;
+ /** signed (1) / unsigned (0) */
+ int sgnd;
+ /** number of decoded resolution */
+ int resno_decoded;
+ /** number of division by 2 of the out image compared to the original size of image */
+ int factor;
+ /** image component data */
+ int *data;
+} opj_image_comp_t;
+
+/**
+Defines image data and characteristics
+*/
+typedef struct opj_image {
+ /** XOsiz: horizontal offset from the origin of the reference grid to the left side of the image area */
+ int x0;
+ /** YOsiz: vertical offset from the origin of the reference grid to the top side of the image area */
+ int y0;
+ /** Xsiz: width of the reference grid */
+ int x1;
+ /** Ysiz: height of the reference grid */
+ int y1;
+ /** number of components in the image */
+ int numcomps;
+ /** color space: sRGB, Greyscale or YUV */
+ OPJ_COLOR_SPACE color_space;
+ /** image components */
+ opj_image_comp_t *comps;
+} opj_image_t;
+
+/**
+Component parameters structure used by the opj_image_create function
+*/
+typedef struct opj_image_comptparm {
+ /** XRsiz: horizontal separation of a sample of ith component with respect to the reference grid */
+ int dx;
+ /** YRsiz: vertical separation of a sample of ith component with respect to the reference grid */
+ int dy;
+ /** data width */
+ int w;
+ /** data height */
+ int h;
+ /** x component offset compared to the whole image */
+ int x0;
+ /** y component offset compared to the whole image */
+ int y0;
+ /** precision */
+ int prec;
+ /** image depth in bits */
+ int bpp;
+ /** signed (1) / unsigned (0) */
+ int sgnd;
+} opj_image_cmptparm_t;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/*
+==========================================================
+ openjpeg version
+==========================================================
+*/
+
+OPJ_API const char * OPJ_CALLCONV opj_version();
+
+/*
+==========================================================
+ image functions definitions
+==========================================================
+*/
+
+/**
+Create an image
+@param numcmpts number of components
+@param cmptparms components parameters
+@param clrspc image color space
+@return returns a new image structure if successful, returns NULL otherwise
+*/
+OPJ_API opj_image_t* OPJ_CALLCONV opj_image_create(int numcmpts, opj_image_cmptparm_t *cmptparms, OPJ_COLOR_SPACE clrspc);
+
+/**
+Deallocate any resources associated with an image
+@param image image to be destroyed
+*/
+OPJ_API void OPJ_CALLCONV opj_image_destroy(opj_image_t *image);
+
+/*
+==========================================================
+ stream functions definitions
+==========================================================
+*/
+
+/**
+Open and allocate a memory stream for read / write.
+On reading, the user must provide a buffer containing encoded data. The buffer will be
+wrapped by the returned CIO handle.
+On writing, buffer parameters must be set to 0: a buffer will be allocated by the library
+to contain encoded data.
+@param cinfo Codec context info
+@param buffer Reading: buffer address. Writing: NULL
+@param length Reading: buffer length. Writing: 0
+@return Returns a CIO handle if successful, returns NULL otherwise
+*/
+OPJ_API opj_cio_t* OPJ_CALLCONV opj_cio_open(opj_common_ptr cinfo, unsigned char *buffer, int length);
+
+/**
+Close and free a CIO handle
+@param cio CIO handle to free
+*/
+OPJ_API void OPJ_CALLCONV opj_cio_close(opj_cio_t *cio);
+
+/**
+Get position in byte stream
+@param cio CIO handle
+@return Returns the position in bytes
+*/
+OPJ_API int OPJ_CALLCONV cio_tell(opj_cio_t *cio);
+/**
+Set position in byte stream
+@param cio CIO handle
+@param pos Position, in number of bytes, from the beginning of the stream
+*/
+OPJ_API void OPJ_CALLCONV cio_seek(opj_cio_t *cio, int pos);
+
+/*
+==========================================================
+ event manager functions definitions
+==========================================================
+*/
+
+OPJ_API opj_event_mgr_t* OPJ_CALLCONV opj_set_event_mgr(opj_common_ptr cinfo, opj_event_mgr_t *event_mgr, void *context);
+
+/*
+==========================================================
+ codec functions definitions
+==========================================================
+*/
+/**
+Creates a J2K/JPT/JP2 decompression structure
+@param format Decoder to select
+@return Returns a handle to a decompressor if successful, returns NULL otherwise
+*/
+OPJ_API opj_dinfo_t* OPJ_CALLCONV opj_create_decompress(OPJ_CODEC_FORMAT format);
+/**
+Destroy a decompressor handle
+@param dinfo decompressor handle to destroy
+*/
+OPJ_API void OPJ_CALLCONV opj_destroy_decompress(opj_dinfo_t *dinfo);
+/**
+Set decoding parameters to default values
+@param parameters Decompression parameters
+*/
+OPJ_API void OPJ_CALLCONV opj_set_default_decoder_parameters(opj_dparameters_t *parameters);
+/**
+Setup the decoder decoding parameters using user parameters.
+Decoding parameters are returned in j2k->cp.
+@param dinfo decompressor handle
+@param parameters decompression parameters
+*/
+OPJ_API void OPJ_CALLCONV opj_setup_decoder(opj_dinfo_t *dinfo, opj_dparameters_t *parameters);
+/**
+Decode an image from a JPEG-2000 codestream
+@param dinfo decompressor handle
+@param cio Input buffer stream
+@return Returns a decoded image if successful, returns NULL otherwise
+*/
+OPJ_API opj_image_t* OPJ_CALLCONV opj_decode(opj_dinfo_t *dinfo, opj_cio_t *cio);
+/**
+Creates a J2K/JP2 compression structure
+@param format Coder to select
+@return Returns a handle to a compressor if successful, returns NULL otherwise
+*/
+OPJ_API opj_cinfo_t* OPJ_CALLCONV opj_create_compress(OPJ_CODEC_FORMAT format);
+/**
+Destroy a compressor handle
+@param cinfo compressor handle to destroy
+*/
+OPJ_API void OPJ_CALLCONV opj_destroy_compress(opj_cinfo_t *cinfo);
+/**
+Set encoding parameters to default values, that means :
+<ul>
+<li>Lossless
+<li>1 tile
+<li>Size of precinct : 2^15 x 2^15 (means 1 precinct)
+<li>Size of code-block : 64 x 64
+<li>Number of resolutions: 6
+<li>No SOP marker in the codestream
+<li>No EPH marker in the codestream
+<li>No sub-sampling in x or y direction
+<li>No mode switch activated
+<li>Progression order: LRCP
+<li>No index file
+<li>No ROI upshifted
+<li>No offset of the origin of the image
+<li>No offset of the origin of the tiles
+<li>Reversible DWT 5-3
+</ul>
+@param parameters Compression parameters
+*/
+OPJ_API void OPJ_CALLCONV opj_set_default_encoder_parameters(opj_cparameters_t *parameters);
+/**
+Setup the encoder parameters using the current image and using user parameters.
+@param cinfo compressor handle
+@param parameters compression parameters
+@param image input filled image
+*/
+OPJ_API void OPJ_CALLCONV opj_setup_encoder(opj_cinfo_t *cinfo, opj_cparameters_t *parameters, opj_image_t *image);
+/**
+Encode an image into a JPEG-2000 codestream
+@param cinfo compressor handle
+@param cio Output buffer stream
+@param image Image to encode
+@param index Name of the index file if required, NULL otherwise
+@return Returns true if successful, returns false otherwise
+*/
+OPJ_API bool OPJ_CALLCONV opj_encode(opj_cinfo_t *cinfo, opj_cio_t *cio, opj_image_t *image, char *index);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* OPENJPEG_H */
--- /dev/null
+/*
+ * Copyright (c) 2005, Herv� Drolon, FreeImage Team
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef OPJ_INCLUDES_H
+#define OPJ_INCLUDES_H
+
+/*
+ ==========================================================
+ Standard includes used by the library
+ ==========================================================
+*/
+#include <memory.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <float.h>
+#include <time.h>
+#include <stdio.h>
+#include <stdarg.h>
+#include <ctype.h>
+
+/*
+ ==========================================================
+ OpenJPEG interface
+ ==========================================================
+ */
+#include "openjpeg.h"
+
+/*
+ ==========================================================
+ OpenJPEG modules
+ ==========================================================
+*/
+
+/*
+The inline keyword is supported by C99 but not by C90.
+Most compilers implement their own version of this keyword ...
+*/
+#ifndef INLINE
+ #if defined(_MSC_VER)
+ #define INLINE __inline
+ #elif defined(__GNUC__)
+ #define INLINE __inline__
+ #elif defined(__MWERKS__)
+ #define INLINE inline
+ #else
+ /* add other compilers here ... */
+ #define INLINE
+ #endif /* defined(<Compiler>) */
+#endif /* INLINE */
+
+#include "j2k_lib.h"
+#include "event.h"
+#include "cio.h"
+
+#include "image.h"
+#include "j2k.h"
+#include "jp2.h"
+#include "jpt.h"
+
+#include "mqc.h"
+#include "raw.h"
+#include "bio.h"
+#include "tgt.h"
+#include "tcd.h"
+#include "t1.h"
+#include "dwt.h"
+#include "pi.h"
+#include "t2.h"
+#include "mct.h"
+#include "int.h"
+#include "fix.h"
+
+/* JPWL>> */
+#ifdef USE_JPWL
+#include "../jpwl/jpwl.h"
+#endif /* USE_JPWL */
+/* <<JPWL */
+
+#endif /* OPJ_INCLUDES_H */
--- /dev/null
+/*
+ * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
+ * Copyright (c) 2002-2007, Professor Benoit Macq
+ * Copyright (c) 2001-2003, David Janssens
+ * Copyright (c) 2002-2003, Yannick Verschueren
+ * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe
+ * Copyright (c) 2005, Herve Drolon, FreeImage Team
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __PI_H
+#define __PI_H
+/**
+@file pi.h
+@brief Implementation of a packet iterator (PI)
+
+The functions in PI.C have for goal to realize a packet iterator that permits to get the next
+packet following the progression order and change of it. The functions in PI.C are used
+by some function in T2.C.
+*/
+
+/** @defgroup PI PI - Implementation of a packet iterator */
+/*@{*/
+
+/**
+FIXME: documentation
+*/
+typedef struct opj_pi_resolution {
+ int pdx, pdy;
+ int pw, ph;
+} opj_pi_resolution_t;
+
+/**
+FIXME: documentation
+*/
+typedef struct opj_pi_comp {
+ int dx, dy;
+ /** number of resolution levels */
+ int numresolutions;
+ opj_pi_resolution_t *resolutions;
+} opj_pi_comp_t;
+
+/**
+Packet iterator
+*/
+typedef struct opj_pi_iterator {
+ /** precise if the packet has been already used (usefull for progression order change) */
+ short int *include;
+ /** layer step used to localize the packet in the include vector */
+ int step_l;
+ /** resolution step used to localize the packet in the include vector */
+ int step_r;
+ /** component step used to localize the packet in the include vector */
+ int step_c;
+ /** precinct step used to localize the packet in the include vector */
+ int step_p;
+ /** component that identify the packet */
+ int compno;
+ /** resolution that identify the packet */
+ int resno;
+ /** precinct that identify the packet */
+ int precno;
+ /** layer that identify the packet */
+ int layno;
+ /** 0 if the first packet */
+ int first;
+ /** progression order change information */
+ opj_poc_t poc;
+ /** */
+ int numcomps;
+ /** */
+ opj_pi_comp_t *comps;
+ int tx0, ty0, tx1, ty1;
+ int x, y, dx, dy;
+} opj_pi_iterator_t;
+
+/** @name Exported functions */
+/*@{*/
+/* ----------------------------------------------------------------------- */
+/**
+Create a packet iterator
+@param image Raw image for which the packets will be listed
+@param cp Coding parameters
+@param tileno Number that identifies the tile for which to list the packets
+@return Returns a packet iterator that points to the first packet of the tile
+@see pi_destroy
+*/
+opj_pi_iterator_t *pi_create(opj_image_t * image, opj_cp_t * cp, int tileno);
+
+/**
+Destroy a packet iterator
+@param pi Previously created packet iterator
+@param cp Coding parameters
+@param tileno Number that identifies the tile for which the packets were listed
+@see pi_create
+*/
+void pi_destroy(opj_pi_iterator_t *pi, opj_cp_t *cp, int tileno);
+
+/**
+Modify the packet iterator to point to the next packet
+@param pi Packet iterator to modify
+@return Returns false if pi pointed to the last packet or else returns true
+*/
+bool pi_next(opj_pi_iterator_t * pi);
+/* ----------------------------------------------------------------------- */
+/*@}*/
+
+/*@}*/
+
+#endif /* __PI_H */
--- /dev/null
+/*
+ * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
+ * Copyright (c) 2002-2007, Professor Benoit Macq
+ * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe
+ * Copyright (c) 2005, Herve Drolon, FreeImage Team
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __RAW_H
+#define __RAW_H
+/**
+@file raw.h
+@brief Implementation of operations for raw encoding (RAW)
+
+The functions in RAW.C have for goal to realize the operation of raw encoding linked
+with the corresponding mode switch.
+*/
+
+/** @defgroup RAW RAW - Implementation of operations for raw encoding */
+/*@{*/
+
+/**
+RAW encoding operations
+*/
+typedef struct opj_raw {
+ /** temporary buffer where bits are coded or decoded */
+ unsigned char c;
+ /** number of bits already read or free to write */
+ unsigned int ct;
+ /** maximum length to decode */
+ unsigned int lenmax;
+ /** length decoded */
+ unsigned int len;
+ /** pointer to the current position in the buffer */
+ unsigned char *bp;
+ /** pointer to the start of the buffer */
+ unsigned char *start;
+ /** pointer to the end of the buffer */
+ unsigned char *end;
+} opj_raw_t;
+
+/** @name Exported functions */
+/*@{*/
+/* ----------------------------------------------------------------------- */
+/**
+Create a new RAW handle
+@return Returns a new RAW handle if successful, returns NULL otherwise
+*/
+opj_raw_t* raw_create();
+/**
+Destroy a previously created RAW handle
+@param raw RAW handle to destroy
+*/
+void raw_destroy(opj_raw_t *raw);
+/**
+Return the number of bytes written/read since initialisation
+@param raw RAW handle to destroy
+@return Returns the number of bytes already encoded
+*/
+int raw_numbytes(opj_raw_t *raw);
+/**
+Initialize the decoder
+@param raw RAW handle
+@param bp Pointer to the start of the buffer from which the bytes will be read
+@param len Length of the input buffer
+*/
+void raw_init_dec(opj_raw_t *raw, unsigned char *bp, int len);
+/**
+Decode a symbol using raw-decoder. Cfr p.506 TAUBMAN
+@param raw RAW handle
+@return Returns the decoded symbol (0 or 1)
+*/
+int raw_decode(opj_raw_t *raw);
+/* ----------------------------------------------------------------------- */
+/*@}*/
+
+/*@}*/
+
+#endif /* __RAW_H */
--- /dev/null
+/*
+ * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
+ * Copyright (c) 2002-2007, Professor Benoit Macq
+ * Copyright (c) 2001-2003, David Janssens
+ * Copyright (c) 2002-2003, Yannick Verschueren
+ * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe
+ * Copyright (c) 2005, Herve Drolon, FreeImage Team
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef __T1_H
+#define __T1_H
+/**
+@file t1.h
+@brief Implementation of the tier-1 coding (coding of code-block coefficients) (T1)
+
+The functions in T1.C have for goal to realize the tier-1 coding operation. The functions
+in T1.C are used by some function in TCD.C.
+*/
+
+/** @defgroup T1 T1 - Implementation of the tier-1 coding */
+/*@{*/
+
+/* ----------------------------------------------------------------------- */
+#define T1_NMSEDEC_BITS 7
+
+#define T1_MAXCBLKW 1024 /**< Maximum size of code-block (width) */
+#define T1_MAXCBLKH 1024 /**< Maximum size of code-block (heigth) */
+
+#define T1_SIG_NE 0x0001 /**< Context orientation : North-East direction */
+#define T1_SIG_SE 0x0002 /**< Context orientation : South-East direction */
+#define T1_SIG_SW 0x0004 /**< Context orientation : South-West direction */
+#define T1_SIG_NW 0x0008 /**< Context orientation : North-West direction */
+#define T1_SIG_N 0x0010 /**< Context orientation : North direction */
+#define T1_SIG_E 0x0020 /**< Context orientation : East direction */
+#define T1_SIG_S 0x0040 /**< Context orientation : South direction */
+#define T1_SIG_W 0x0080 /**< Context orientation : West direction */
+#define T1_SIG_OTH (T1_SIG_N|T1_SIG_NE|T1_SIG_E|T1_SIG_SE|T1_SIG_S|T1_SIG_SW|T1_SIG_W|T1_SIG_NW)
+#define T1_SIG_PRIM (T1_SIG_N|T1_SIG_E|T1_SIG_S|T1_SIG_W)
+
+#define T1_SGN_N 0x0100
+#define T1_SGN_E 0x0200
+#define T1_SGN_S 0x0400
+#define T1_SGN_W 0x0800
+#define T1_SGN (T1_SGN_N|T1_SGN_E|T1_SGN_S|T1_SGN_W)
+
+#define T1_SIG 0x1000
+#define T1_REFINE 0x2000
+#define T1_VISIT 0x4000
+
+#define T1_NUMCTXS_ZC 9
+#define T1_NUMCTXS_SC 5
+#define T1_NUMCTXS_MAG 3
+#define T1_NUMCTXS_AGG 1
+#define T1_NUMCTXS_UNI 1
+
+#define T1_CTXNO_ZC 0
+#define T1_CTXNO_SC (T1_CTXNO_ZC+T1_NUMCTXS_ZC)
+#define T1_CTXNO_MAG (T1_CTXNO_SC+T1_NUMCTXS_SC)
+#define T1_CTXNO_AGG (T1_CTXNO_MAG+T1_NUMCTXS_MAG)
+#define T1_CTXNO_UNI (T1_CTXNO_AGG+T1_NUMCTXS_AGG)
+#define T1_NUMCTXS (T1_CTXNO_UNI+T1_NUMCTXS_UNI)
+
+#define T1_NMSEDEC_FRACBITS (T1_NMSEDEC_BITS-1)
+
+#define T1_TYPE_MQ 0 /**< Normal coding using entropy coder */
+#define T1_TYPE_RAW 1 /**< No encoding the information is store under raw format in codestream (mode switch RAW)*/
+
+/* ----------------------------------------------------------------------- */
+
+/**
+Tier-1 coding (coding of code-block coefficients)
+*/
+typedef struct opj_t1 {
+ /** codec context */
+ opj_common_ptr cinfo;
+
+ /** MQC component */
+ opj_mqc_t *mqc;
+ /** RAW component */
+ opj_raw_t *raw;
+
+ int lut_ctxno_zc[1024];
+ int lut_ctxno_sc[256];
+ int lut_ctxno_mag[4096];
+ int lut_spb[256];
+ int lut_nmsedec_sig[1 << T1_NMSEDEC_BITS];
+ int lut_nmsedec_sig0[1 << T1_NMSEDEC_BITS];
+ int lut_nmsedec_ref[1 << T1_NMSEDEC_BITS];
+ int lut_nmsedec_ref0[1 << T1_NMSEDEC_BITS];
+
+ int data[T1_MAXCBLKH][T1_MAXCBLKW];
+ int flags[T1_MAXCBLKH + 2][T1_MAXCBLKH + 2];
+
+} opj_t1_t;
+
+/** @name Exported functions */
+/*@{*/
+/* ----------------------------------------------------------------------- */
+/**
+Create a new T1 handle
+and initialize the look-up tables of the Tier-1 coder/decoder
+@return Returns a new T1 handle if successful, returns NULL otherwise
+@see t1_init_luts
+*/
+opj_t1_t* t1_create(opj_common_ptr cinfo);
+/**
+Destroy a previously created T1 handle
+@param t1 T1 handle to destroy
+*/
+void t1_destroy(opj_t1_t *t1);
+/**
+Encode the code-blocks of a tile
+@param t1 T1 handle
+@param tile The tile to encode
+@param tcp Tile coding parameters
+*/
+void t1_encode_cblks(opj_t1_t *t1, opj_tcd_tile_t *tile, opj_tcp_t *tcp);
+/**
+Decode the code-blocks of a tile
+@param t1 T1 handle
+@param tile The tile to decode
+@param tcp Tile coding parameters
+*/
+void t1_decode_cblks(opj_t1_t *t1, opj_tcd_tile_t *tile, opj_tcp_t *tcp);
+/* ----------------------------------------------------------------------- */
+/*@}*/
+
+/*@}*/
+
+#endif /* __T1_H */
--- /dev/null
+/*
+ * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
+ * Copyright (c) 2002-2007, Professor Benoit Macq
+ * Copyright (c) 2001-2003, David Janssens
+ * Copyright (c) 2002-2003, Yannick Verschueren
+ * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe
+ * Copyright (c) 2005, Herve Drolon, FreeImage Team
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef __T2_H
+#define __T2_H
+/**
+@file t2.h
+@brief Implementation of a tier-2 coding (packetization of code-block data) (T2)
+
+*/
+
+/** @defgroup T2 T2 - Implementation of a tier-2 coding */
+/*@{*/
+
+/**
+Tier-2 coding
+*/
+typedef struct opj_t2 {
+ /** codec context */
+ opj_common_ptr cinfo;
+
+ /** Encoding: pointer to the src image. Decoding: pointer to the dst image. */
+ opj_image_t *image;
+ /** pointer to the image coding parameters */
+ opj_cp_t *cp;
+} opj_t2_t;
+
+/** @name Exported functions */
+/*@{*/
+/* ----------------------------------------------------------------------- */
+
+/**
+Encode the packets of a tile to a destination buffer
+@param t2 T2 handle
+@param tileno number of the tile encoded
+@param tile the tile for which to write the packets
+@param maxlayers maximum number of layers
+@param dest the destination buffer
+@param len the length of the destination buffer
+@param image_info structure to create an index file
+*/
+int t2_encode_packets(opj_t2_t* t2, int tileno, opj_tcd_tile_t *tile, int maxlayers, unsigned char *dest, int len, opj_image_info_t *image_info);
+
+/**
+Decode the packets of a tile from a source buffer
+@param t2 T2 handle
+@param src the source buffer
+@param len length of the source buffer
+@param tileno number that identifies the tile for which to decode the packets
+@param tile tile for which to decode the packets
+ */
+int t2_decode_packets(opj_t2_t *t2, unsigned char *src, int len, int tileno, opj_tcd_tile_t *tile);
+
+/**
+Create a T2 handle
+@param cinfo Codec context info
+@param image Source or destination image
+@param cp Image coding parameters
+@return Returns a new T2 handle if successful, returns NULL otherwise
+*/
+opj_t2_t* t2_create(opj_common_ptr cinfo, opj_image_t *image, opj_cp_t *cp);
+/**
+Destroy a T2 handle
+@param t2 T2 handle to destroy
+*/
+void t2_destroy(opj_t2_t *t2);
+
+/* ----------------------------------------------------------------------- */
+/*@}*/
+
+/*@}*/
+
+#endif /* __T2_H */
--- /dev/null
+/*
+ * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
+ * Copyright (c) 2002-2007, Professor Benoit Macq
+ * Copyright (c) 2001-2003, David Janssens
+ * Copyright (c) 2002-2003, Yannick Verschueren
+ * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe
+ * Copyright (c) 2005, Herve Drolon, FreeImage Team
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef __TCD_H
+#define __TCD_H
+/**
+@file tcd.h
+@brief Implementation of a tile coder/decoder (TCD)
+
+The functions in TCD.C have for goal to encode or decode each tile independently from
+each other. The functions in TCD.C are used by some function in J2K.C.
+*/
+
+/** @defgroup TCD TCD - Implementation of a tile coder/decoder */
+/*@{*/
+
+/**
+FIXME: documentation
+*/
+typedef struct opj_tcd_seg {
+ int numpasses;
+ int len;
+ unsigned char *data;
+ int maxpasses;
+ int numnewpasses;
+ int newlen;
+} opj_tcd_seg_t;
+
+/**
+FIXME: documentation
+*/
+typedef struct opj_tcd_pass {
+ int rate;
+ double distortiondec;
+ int term, len;
+} opj_tcd_pass_t;
+
+/**
+FIXME: documentation
+*/
+typedef struct opj_tcd_layer {
+ int numpasses; /* Number of passes in the layer */
+ int len; /* len of information */
+ double disto; /* add for index (Cfr. Marcela) */
+ unsigned char *data; /* data */
+} opj_tcd_layer_t;
+
+/**
+FIXME: documentation
+*/
+typedef struct opj_tcd_cblk {
+ int x0, y0, x1, y1; /* dimension of the code-blocks : left upper corner (x0, y0) right low corner (x1,y1) */
+ int numbps;
+ int numlenbits;
+ int len; /* length */
+ int numpasses; /* number of pass already done for the code-blocks */
+ int numnewpasses; /* number of pass added to the code-blocks */
+ int numsegs; /* number of segments */
+ opj_tcd_seg_t segs[100]; /* segments informations */
+ unsigned char data[8192]; /* Data */
+ int numpassesinlayers; /* number of passes in the layer */
+ opj_tcd_layer_t layers[100]; /* layer information */
+ int totalpasses; /* total number of passes */
+ opj_tcd_pass_t passes[100]; /* information about the passes */
+} opj_tcd_cblk_t;
+
+/**
+FIXME: documentation
+*/
+typedef struct opj_tcd_precinct {
+ int x0, y0, x1, y1; /* dimension of the precinct : left upper corner (x0, y0) right low corner (x1,y1) */
+ int cw, ch; /* number of precinct in width and heigth */
+ opj_tcd_cblk_t *cblks; /* code-blocks informations */
+ opj_tgt_tree_t *incltree; /* inclusion tree */
+ opj_tgt_tree_t *imsbtree; /* IMSB tree */
+} opj_tcd_precinct_t;
+
+/**
+FIXME: documentation
+*/
+typedef struct opj_tcd_band {
+ int x0, y0, x1, y1; /* dimension of the subband : left upper corner (x0, y0) right low corner (x1,y1) */
+ int bandno;
+ opj_tcd_precinct_t *precincts; /* precinct information */
+ int numbps;
+ float stepsize;
+} opj_tcd_band_t;
+
+/**
+FIXME: documentation
+*/
+typedef struct opj_tcd_resolution {
+ int x0, y0, x1, y1; /* dimension of the resolution level : left upper corner (x0, y0) right low corner (x1,y1) */
+ int pw, ph;
+ int numbands; /* number sub-band for the resolution level */
+ opj_tcd_band_t bands[3]; /* subband information */
+} opj_tcd_resolution_t;
+
+/**
+FIXME: documentation
+*/
+typedef struct opj_tcd_tilecomp {
+ int x0, y0, x1, y1; /* dimension of component : left upper corner (x0, y0) right low corner (x1,y1) */
+ int numresolutions; /* number of resolutions level */
+ opj_tcd_resolution_t *resolutions; /* resolutions information */
+ int *data; /* data of the component */
+ int nbpix; /* add fixed_quality */
+} opj_tcd_tilecomp_t;
+
+/**
+FIXME: documentation
+*/
+typedef struct opj_tcd_tile {
+ int x0, y0, x1, y1; /* dimension of the tile : left upper corner (x0, y0) right low corner (x1,y1) */
+ int numcomps; /* number of components in tile */
+ opj_tcd_tilecomp_t *comps; /* Components information */
+ int nbpix; /* add fixed_quality */
+ double distotile; /* add fixed_quality */
+ double distolayer[100]; /* add fixed_quality */
+} opj_tcd_tile_t;
+
+/**
+FIXME: documentation
+*/
+typedef struct opj_tcd_image {
+ int tw, th; /* number of tiles in width and heigth */
+ opj_tcd_tile_t *tiles; /* Tiles information */
+} opj_tcd_image_t;
+
+/**
+Tile coder/decoder
+*/
+typedef struct opj_tcd {
+ /** codec context */
+ opj_common_ptr cinfo;
+
+ /** info on each image tile */
+ opj_tcd_image_t *tcd_image;
+ /** image */
+ opj_image_t *image;
+ /** coding parameters */
+ opj_cp_t *cp;
+ /** pointer to the current encoded/decoded tile */
+ opj_tcd_tile_t *tcd_tile;
+ /** coding/decoding parameters common to all tiles */
+ opj_tcp_t *tcp;
+ /** current encoded/decoded tile */
+ int tcd_tileno;
+} opj_tcd_t;
+
+/** @name Exported functions */
+/*@{*/
+/* ----------------------------------------------------------------------- */
+
+/**
+Dump the content of a tcd structure
+*/
+void tcd_dump(FILE *fd, opj_tcd_t *tcd, opj_tcd_image_t *img);
+/**
+Create a new TCD handle
+@param cinfo Codec context info
+@return Returns a new TCD handle if successful returns NULL otherwise
+*/
+opj_tcd_t* tcd_create(opj_common_ptr cinfo);
+/**
+Destroy a previously created TCD handle
+@param tcd TCD handle to destroy
+*/
+void tcd_destroy(opj_tcd_t *tcd);
+/**
+Initialize the tile coder (allocate the memory)
+@param tcd TCD handle
+@param image Raw image
+@param cp Coding parameters
+@param curtileno Number that identifies the tile that will be encoded
+*/
+void tcd_malloc_encode(opj_tcd_t *tcd, opj_image_t * image, opj_cp_t * cp, int curtileno);
+/**
+Free the memory allocated for encoding
+@param tcd TCD handle
+*/
+void tcd_free_encode(opj_tcd_t *tcd);
+/**
+Initialize the tile coder (reuses the memory allocated by tcd_malloc_encode)
+@param tcd TCD handle
+@param image Raw image
+@param cp Coding parameters
+@param curtileno Number that identifies the tile that will be encoded
+*/
+void tcd_init_encode(opj_tcd_t *tcd, opj_image_t * image, opj_cp_t * cp, int curtileno);
+/**
+Initialize the tile decoder
+@param tcd TCD handle
+@param image Raw image
+@param cp Coding parameters
+*/
+void tcd_malloc_decode(opj_tcd_t *tcd, opj_image_t * image, opj_cp_t * cp);
+void tcd_makelayer_fixed(opj_tcd_t *tcd, int layno, int final);
+void tcd_rateallocate_fixed(opj_tcd_t *tcd);
+void tcd_makelayer(opj_tcd_t *tcd, int layno, double thresh, int final);
+bool tcd_rateallocate(opj_tcd_t *tcd, unsigned char *dest, int len, opj_image_info_t * image_info);
+/**
+Encode a tile from the raw image into a buffer
+@param tcd TCD handle
+@param tileno Number that identifies one of the tiles to be encoded
+@param dest Destination buffer
+@param len Length of destination buffer
+@param image_info Creation of index file
+@return
+*/
+int tcd_encode_tile(opj_tcd_t *tcd, int tileno, unsigned char *dest, int len, opj_image_info_t * image_info);
+/**
+Decode a tile from a buffer into a raw image
+@param tcd TCD handle
+@param src Source buffer
+@param len Length of source buffer
+@param tileno Number that identifies one of the tiles to be decoded
+*/
+bool tcd_decode_tile(opj_tcd_t *tcd, unsigned char *src, int len, int tileno);
+/**
+Free the memory allocated for decoding
+@param tcd TCD handle
+*/
+void tcd_free_decode(opj_tcd_t *tcd);
+
+/* ----------------------------------------------------------------------- */
+/*@}*/
+
+/*@}*/
+
+#endif /* __TCD_H */
--- /dev/null
+/*
+ * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
+ * Copyright (c) 2002-2007, Professor Benoit Macq
+ * Copyright (c) 2001-2003, David Janssens
+ * Copyright (c) 2002-2003, Yannick Verschueren
+ * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe
+ * Copyright (c) 2005, Herve Drolon, FreeImage Team
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __TGT_H
+#define __TGT_H
+/**
+@file tgt.h
+@brief Implementation of a tag-tree coder (TGT)
+
+The functions in TGT.C have for goal to realize a tag-tree coder. The functions in TGT.C
+are used by some function in T2.C.
+*/
+
+/** @defgroup TGT TGT - Implementation of a tag-tree coder */
+/*@{*/
+
+/**
+Tag node
+*/
+typedef struct opj_tgt_node {
+ struct opj_tgt_node *parent;
+ int value;
+ int low;
+ int known;
+} opj_tgt_node_t;
+
+/**
+Tag tree
+*/
+typedef struct opj_tgt_tree {
+ int numleafsh;
+ int numleafsv;
+ int numnodes;
+ opj_tgt_node_t *nodes;
+} opj_tgt_tree_t;
+
+/** @name Exported functions */
+/*@{*/
+/* ----------------------------------------------------------------------- */
+/**
+Create a tag-tree
+@param numleafsh Width of the array of leafs of the tree
+@param numleafsv Height of the array of leafs of the tree
+@return Returns a new tag-tree if successful, returns NULL otherwise
+*/
+opj_tgt_tree_t *tgt_create(int numleafsh, int numleafsv);
+/**
+Destroy a tag-tree, liberating memory
+@param tree Tag-tree to destroy
+*/
+void tgt_destroy(opj_tgt_tree_t *tree);
+/**
+Reset a tag-tree (set all leaves to 0)
+@param tree Tag-tree to reset
+*/
+void tgt_reset(opj_tgt_tree_t *tree);
+/**
+Set the value of a leaf of a tag-tree
+@param tree Tag-tree to modify
+@param leafno Number that identifies the leaf to modify
+@param value New value of the leaf
+*/
+void tgt_setvalue(opj_tgt_tree_t *tree, int leafno, int value);
+/**
+Encode the value of a leaf of the tag-tree up to a given threshold
+@param bio Pointer to a BIO handle
+@param tree Tag-tree to modify
+@param leafno Number that identifies the leaf to encode
+@param threshold Threshold to use when encoding value of the leaf
+*/
+void tgt_encode(opj_bio_t *bio, opj_tgt_tree_t *tree, int leafno, int threshold);
+/**
+Decode the value of a leaf of the tag-tree up to a given threshold
+@param bio Pointer to a BIO handle
+@param tree Tag-tree to decode
+@param leafno Number that identifies the leaf to decode
+@param threshold Threshold to use when decoding value of the leaf
+@return Returns 1 if the node's value < threshold, returns 0 otherwise
+*/
+int tgt_decode(opj_bio_t *bio, opj_tgt_tree_t *tree, int leafno, int threshold);
+/* ----------------------------------------------------------------------- */
+/*@}*/
+
+/*@}*/
+
+#endif /* __TGT_H */
-prefix=/home/antonin/abi-check/tracker/installed/openjpeg/current
+prefix=/home/antonin/abi-check/work/abi-check/installed/openjpeg/current
bindir=${prefix}/bin
mandir=${prefix}/
docdir=${prefix}/
--- /dev/null
+{
+ "BC": "80.7",
+ "Added": 6,
+ "Removed": 1,
+ "TotalProblems": 113,
+ "ObjectsAdded": 0,
+ "ObjectsRemoved": 0,
+ "ObjectsAddedSymbols": 0,
+ "ObjectsRemovedSymbols": 0,
+ "ChangedSoname": 0,
+ "TotalObjects": 1
+}
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta name="keywords" content="OpenJPEG, ABI, changes, compatibility, report" />
+ <meta name="description" content="ABI changes/compatibility report between 1.1 and 1.2 versions of the openjpeg" />
+ <link rel="stylesheet" type="text/css" href="../../../../css/common.css" />
+ <link rel="stylesheet" type="text/css" href="../../../../css/report.css" />
+
+
+ <title>
+ OpenJPEG: Objects ABI report between 1.1 and 1.2 versions
+ </title>
+
+ </head>
+
+<body>
+<table cellpadding='0' cellspacing='0'><tr><td align='center'><h1 class='tool'><a title='Home: ABI tracker for OpenJPEG' href='../../../../timeline/openjpeg/index.html' class='tool'>ABI<br/>Tracker</a></h1></td><td width='30px;'></td><td><h1>(OpenJPEG)</h1></td></tr></table><hr/>
+<br/>
+<br/>
+<h1>Objects ABI report: <span class='version'>1.1</span> vs <span class='version'>1.2</span></h1>
+<br/>
+<br/>
+<table class='summary'>
+<tr><th>Object</th>
+<th>Backward<br/>Compatibility</th>
+<th>Added<br/>Symbols</th>
+<th>Removed<br/>Symbols</th>
+</tr>
+<tr>
+<td class='object'>libopenjpeg.so</td>
+<td class='incompatible'><a href='../../../../compat_report/openjpeg/1.1/1.2/2b8a9/abi_compat_report.html'>80.7%</a></td>
+<td class='added'><a class='num' href='../../../../compat_report/openjpeg/1.1/1.2/2b8a9/abi_compat_report.html#Added'>6 new</a></td>
+<td class='removed'><a class='num' href='../../../../compat_report/openjpeg/1.1/1.2/2b8a9/abi_compat_report.html#Removed'>1 removed</a></td>
+</tr>
+</table>
+<br/>
+<br/>
+<hr/>
+<div align='right'><a class='home' title="Andrey Ponomarenko's ABI laboratory" href='https://github.com/lvc'>github.com/lvc</a></div>
+<br/>
+
+</body>
+</html>
"BC": "100",
"Added": 0,
"Removed": 0,
+ "TotalProblems": 0,
"ObjectsAdded": 0,
"ObjectsRemoved": 0,
+ "ObjectsAddedSymbols": 0,
+ "ObjectsRemovedSymbols": 0,
"ChangedSoname": 0,
"TotalObjects": 1
}
\ No newline at end of file
"Git": "https://github.com/uclouvain/openjpeg.git",
"Maintainer": "Antonin Descampe",
"MaintainerUrl": "http://www.openjpeg.org/",
- "Configure": "-DCMAKE_C_FLAGS='-fvisibility=hidden -g -Og -w -fpermissive'",
"Package": "version.",
"Versions": [
"ABIDiff": "Off",
"PublicSymbols": "public_symbols/openjpeg/1.2/list",
"PublicTypes": "public_types/openjpeg/1.2/list"
+ },
+ {
+ "Number": "1.1",
+ "Installed": "installed/openjpeg/1.1",
+ "Source": "src/openjpeg/1.1/version.1.1.tar.gz",
+ "Changelog": "ChangeLog",
+ "HeadersDiff": "On",
+ "PkgDiff": "Off",
+ "ABIView": "Off",
+ "ABIDiff": "Off"
}]
}
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="openjpeg, ABI, API, compatibility, report" />
- <meta name="description" content="API/ABI compatibility analysis reports for openjpeg" />
+ <meta name="description" content="API/ABI compatibility analysis reports for OpenJPEG" />
<link rel="stylesheet" type="text/css" href="../../css/common.css" />
<link rel="stylesheet" type="text/css" href="../../css/report.css" />
<th>Removed<br/>Symbols</th>
<th>Headers<br/>Diff</th>
</tr>
-<tr><td>current</td>
+<tr id='current'><td>current</td>
<td>2016-05-15<br/>01:36</td>
<td>7</td>
<td><a href='../../changelog/openjpeg/current/log.html'>changelog</a></td>
<td class='ok'>0</td>
<td><a href='../../headers_diff/openjpeg/2.1/current/diff.html'>2</a></td>
</tr>
-<tr><td>2.1</td>
+<tr id='v2.1'><td>2.1</td>
<td>2014-04-29</td>
<td>7</td>
<td><a href='../../changelog/openjpeg/2.1/log.html'>changelog</a></td>
<td class='ok'>0</td>
<td>0</td>
</tr>
-<tr><td>2.0.1</td>
+<tr id='v2.0.1'><td>2.0.1</td>
<td>2014-04-22</td>
<td>7</td>
<td><a href='../../changelog/openjpeg/2.0.1/log.html'>changelog</a></td>
<td class='ok'>0</td>
<td><a href='../../headers_diff/openjpeg/2.0/2.0.1/diff.html'>3</a></td>
</tr>
-<tr><td>2.0</td>
+<tr id='v2.0'><td>2.0</td>
<td>2014-03-28</td>
<td>6</td>
<td><a href='../../changelog/openjpeg/2.0/log.html'>changelog</a></td>
<td class='removed'><a class='num' href='../../objects_report/openjpeg/1.5.2/2.0/report.html'>9 removed</a></td>
<td>0</td>
</tr>
-<tr><td>1.5.2</td>
+<tr id='v1.5.2'><td>1.5.2</td>
<td>2014-03-28</td>
<td>5</td>
<td><a href='../../changelog/openjpeg/1.5.2/log.html'>changelog</a></td>
<td class='ok'>0</td>
<td>0</td>
</tr>
-<tr><td>1.5.1</td>
+<tr id='v1.5.1'><td>1.5.1</td>
<td>2012-09-13</td>
<td>5</td>
<td><a href='../../changelog/openjpeg/1.5.1/log.html'>changelog</a></td>
<td class='ok'>0</td>
<td><a href='../../headers_diff/openjpeg/1.5/1.5.1/diff.html'>1</a></td>
</tr>
-<tr><td>1.5</td>
+<tr id='v1.5'><td>1.5</td>
<td>2012-02-07</td>
<td>1</td>
<td><a href='../../changelog/openjpeg/1.5/log.html'>changelog</a></td>
<td class='ok'>0</td>
<td>0</td>
</tr>
-<tr><td>1.4</td>
+<tr id='v1.4'><td>1.4</td>
<td>2011-07-03</td>
<td>1.4</td>
<td><a href='../../changelog/openjpeg/1.4/log.html'>changelog</a></td>
<td>N/A</td>
<td>N/A</td>
</tr>
-<tr><td>1.3</td>
+<tr id='v1.3'><td>1.3</td>
<td>2011-07-03</td>
<td>N/A</td>
<td><a href='../../changelog/openjpeg/1.3/log.html'>changelog</a></td>
<td>N/A</td>
<td>N/A</td>
</tr>
-<tr><td>1.2</td>
+<tr id='v1.2'><td>1.2</td>
<td>2007-06-04</td>
<td>None</td>
<td><a href='../../changelog/openjpeg/1.2/log.html'>changelog</a></td>
+<td class='incompatible'><a href='../../objects_report/openjpeg/1.1/1.2/report.html'>80.7%</a></td>
+<td class='added'><a class='num' href='../../objects_report/openjpeg/1.1/1.2/report.html'>6 new</a></td>
+<td class='removed'><a class='num' href='../../objects_report/openjpeg/1.1/1.2/report.html'>1 removed</a></td>
+<td><a href='../../headers_diff/openjpeg/1.1/1.2/diff.html'>9</a></td>
+</tr>
+<tr id='v1.1'><td>1.1</td>
+<td>2007-01-31</td>
+<td>None</td>
+<td><a href='../../changelog/openjpeg/1.1/log.html'>changelog</a></td>
<td>N/A</td>
<td>N/A</td>
<td>N/A</td>
<td>N/A</td>
</tr>
-</table><br/>Maintained by <a href='http://www.openjpeg.org/'>Antonin Descampe</a>. Last updated on Sun Jun 19 23:35:52 2016.<br/>
+</table><br/>Maintained by <a href='http://www.openjpeg.org/'>Antonin Descampe</a>. Last updated on Tue Jun 21 15:34:30 2016.<br/>
<br/>
<hr/>
<div align='right'><a class='home' title="Andrey Ponomarenko's ABI laboratory" href='http://abi-laboratory.pro/'>abi-laboratory.pro</a></div>