openpreserve / jpylyzer

JP2 (JPEG 2000 Part 1) validator and properties extractor. Jpylyzer was specifically created to check that a JP2 file really conforms to the format's specifications. Additionally jpylyzer is able to extract technical characteristics.
http://jpylyzer.openpreservation.org/
Other
69 stars 28 forks source link

unknown error (please report to developers) #100

Closed IanHendersonTNA closed 7 years ago

IanHendersonTNA commented 7 years ago

Hello,

Could you advise please. We recently ran Jpylyzer over a set of JP2 files that were declared invalid JP2 and with the following output returned: unknown error (please report to developers). I have attached an example file. 0009.zip

<?xml version='1.0' encoding='UTF-8'?>

jpylyzer.exe 1.17.0 0009.jp2 Y:\**** \0009.jp2 3970969 Mon Nov 01 10:25:56 2010 False unknown error (please report to developers) False

These files are old (2010 vintage, encoded by Kakadu-3.2) and the specifics of the digitisation job are not available. I've examined example files but haven't spotted anything that, to the extent of my JP2 knowledge, looks particularly unusual. The files I've checked open in KDU Show, IrfanView and HiView. Jasper ImgInfo reports no issues with the affected files.

Below are the details as seen in KDU Show from original file: 0009.jp2: Properties for code-stream 0

Code-stream comment Kakadu-3.2 <<<<< Main header >>>>> Sprofile=PROFILE2 Sextensions=0 Scap=no Ssize={2337,2777} Sorigin={0,0} Stiles={2337,2777} Stile_origin={0,0} Scomponents=3 Ssigned=no,no,no Sprecision=8,8,8 Ssampling={1,1}{1,1}{1,1} Sdims={2337,2777}{2337,2777}{2337,2777} Cycc=yes Cmct=0 Clayers=1 Cuse_sop=no Cuse_eph=no Corder=LRCP Calign_blk_last={no,no} Clevels=5 Cads=0 Cdfs=0 Cdecomp=B(-:-:-) Creversible=no Ckernels=W9X7 Catk=0 Cuse_precincts=no Cblk={64,64} Cmodes=0 Qguard=1 Qderived=no Qabs_steps=0.000115,0.000114,0.000114,0.000114,0.000229,0.000229,0.000227,0.000467,0.000467,0.000470,0.000978,0.000978,0.001009,0.001931,0.001931,0.001877 <<<<< Tile 0 >>>>> Canvas coordinates: y = 0; x = 0;height= 2337; width= 2777

Many thanks, Ian Henderson

bitsgalore commented 7 years ago

Hi Ian,

Thanks for reporting this. Turns out the problem was caused by a reference to the tagIntellectualPropertyBox variable that was mistakenly undefined. Fixed now: https://github.com/openpreserve/jpylyzer/commit/8ccee6ff0368b7c13c1643690ac2922bd90b856a

I'm currently having some trouble generating the packages, but I did create updated Windows executables (64 bit only for now), which you can download here:

jpylyzer_1_17_1_win64.zip

Let me know if this works for you!

Cheers,

Johan

IanHendersonTNA commented 7 years ago

Hi Johan,

Great stuff, thanks for getting this seeing to this so quickly. We'll give it a go and let you know the results.

Best Regards,

Ian

IanHendersonTNA commented 7 years ago

Hi Johan,

It works a treat. Here's the new output from v.1_17_1 for that example file: ...

jpylyzer.exe 1.17.1
<fileInfo>
    <fileName>0009.jp2</fileName>
    <filePath>Y:\ihenderson\~\0009.jp2</filePath>
    <fileSizeInBytes>3970969</fileSizeInBytes>
    <fileLastModified>Mon Nov 01 10:25:56 2010</fileLastModified>
</fileInfo>
<statusInfo>
    <success>True</success>
</statusInfo>
<isValidJP2>False</isValidJP2>
<tests>
    <xmlBox>
        <containsWellformedXML>False</containsWellformedXML>
    </xmlBox>

...

Thanks again,

Ian

bitsgalore commented 7 years ago

Great! Incidentally these are the first Jpylyzer binaries I managed to build on Linux (using a Windows version of Python running under Wine), so it's good to know that this works as well.

bitsgalore commented 7 years ago

Also a small correction: the '64 bit' binaries I uploaded are actually 32 bit.