Use LIBQUANT

Bugs found in XnView Classic. Please report only one bug per topic!

Moderators: XnTriq, xnview

Post Reply
XnStew
Posts: 6
Joined: Sat Mar 07, 2015 5:38 pm

Use LIBQUANT

Post by XnStew » Sat Mar 07, 2015 5:46 pm

Crash if "Use LIBQUANT" selected in the "Convert to Colours" dialog. with a .PNG loaded.
Attachments
8902_appcompat.zip
(10.28 KiB) Downloaded 96 times

User avatar
xnview
Author of XnView
Posts: 31255
Joined: Mon Oct 13, 2003 7:31 am
Location: France
Contact:

Re: Use LIBQUANT

Post by xnview » Mon Mar 09, 2015 9:04 am

could you post the png file?
Pierre.

XnStew
Posts: 6
Joined: Sat Mar 07, 2015 5:38 pm

Re: Use LIBQUANT

Post by XnStew » Tue Mar 10, 2015 3:28 am

Yes - see attached.
Attachments
Scanflat3.png

User avatar
xnview
Author of XnView
Posts: 31255
Joined: Mon Oct 13, 2003 7:31 am
Location: France
Contact:

Re: Use LIBQUANT

Post by xnview » Tue Mar 10, 2015 7:56 am

no crash here, which settings do you use in 'convert colors'?
Pierre.

XnStew
Posts: 6
Joined: Sat Mar 07, 2015 5:38 pm

Re: Use LIBQUANT

Post by XnStew » Tue Mar 10, 2015 5:04 pm

No chance to select colours if "Use LIBQUANT" already selected - crash immediate.
But 256 colours is preselected.

User avatar
xnview
Author of XnView
Posts: 31255
Joined: Mon Oct 13, 2003 7:31 am
Location: France
Contact:

Re: Use LIBQUANT

Post by xnview » Wed Mar 11, 2015 8:03 am

XnStew wrote:No chance to select colours if "Use LIBQUANT" already selected - crash immediate.
But 256 colours is preselected.
no crash here, which windows version?
Pierre.

XnStew
Posts: 6
Joined: Sat Mar 07, 2015 5:38 pm

Re: Use LIBQUANT

Post by XnStew » Wed Mar 11, 2015 3:51 pm

2003 / Xp-64

User avatar
XnTriq
Moderator & Librarian
Posts: 5407
Joined: Sun Sep 25, 2005 3:00 am
Location: Ref Desk

Re: Use LIBQUANT

Post by XnTriq » Wed Mar 11, 2015 4:00 pm

XnStew wrote:No chance to select colours if "Use LIBQUANT" already selected - crash immediate.
But 256 colours is preselected.
Confirmed for Windows XP SP3 :bugconfirmed:
[color=green]C:\Documents and Settings\All Users\Application Data\Microsoft\Dr Watson\drwtsn32.log[/color] wrote:

Code: Select all

*----> State Dump for Thread Id 0x224 <----*

eax=01501000 ebx=0012f358 ecx=00193313 edx=00000000 esi=00eb3698 edi=000000f0
eip=004bafa2 esp=0012eab4 ebp=0012ead0 iopl=0         nv up ei pl nz na po nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000206

*** ERROR: Module load completed but symbols could not be loaded for C:\Program Files\XnView\xnview.exe
function: xnview
        004baf8d af               scasd
        004baf8e 44               inc     esp
        004baf8f 240c             and     al,0xc
        004baf91 034628           add     eax,[esi+0x28]
        004baf94 85d2             test    edx,edx
        004baf96 7e39             jle     xnview+0xbafd1 (004bafd1)
        004baf98 8b4c2408         mov     ecx,[esp+0x8]
        004baf9c 57               push    edi
        004baf9d 83c103           add     ecx,0x3
        004bafa0 8bfa             mov     edi,edx
FAULT ->004bafa2 0fb610           movzx   edx,byte ptr [eax]      ds:0023:01501000=??
        004bafa5 40               inc     eax
        004bafa6 8851fd           mov     [ecx-0x3],dl
        004bafa9 0fb610           movzx   edx,byte ptr [eax]
        004bafac 40               inc     eax
        004bafad 8851fe           mov     [ecx-0x2],dl
        004bafb0 0fb610           movzx   edx,byte ptr [eax]
        004bafb3 8851ff           mov     [ecx-0x1],dl
        004bafb6 40               inc     eax
        004bafb7 66837e1204       cmp     word ptr [esi+0x12],0x4
        004bafbc 7507             jnz     xnview+0xbafc5 (004bafc5)

*----> Stack Back Trace <----*
*** WARNING: Unable to verify checksum for C:\Program Files\XnView\AddOn\libquant.dll
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\Program Files\XnView\AddOn\libquant.dll - 
WARNING: Stack unwind information not available. Following frames may be wrong.
ChildEBP RetAddr  Args to Child              
0012ead0 10002423 004baf80 00192820 00000301 xnview+0xbafa2
0012eb10 1000262b 00000301 0012ef48 000003ac libquant!liq_executing_user_callback+0x83
0012f350 100042a5 0012f458 100042a5 0018c980 libquant!liq_executing_user_callback+0x28b
0012f450 10003eca 00000302 10003eca 0018c980 libquant!liq_get_palette+0x1085
0012f498 100028ab 10000000 00179f00 00eb3698 libquant!liq_get_palette+0xcaa
0012f4b0 004bb14a 00179f00 0018c980 00179f00 libquant!liq_quantize_image+0x6b
00f32fc8 00000000 00000000 00000000 00000000 xnview+0xbb14a

[…]

*----> State Dump for Thread Id 0xda4 <----*

eax=00000027 ebx=0144ff24 ecx=005b29c8 edx=00828b20 esi=00000000 edi=7ffd9000
eip=7c90e514 esp=0144fefc ebp=0144ff98 iopl=0         nv up ei pl zr na po nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000246

*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\WINDOWS\system32\ntdll.dll - 
function: ntdll!KiFastSystemCallRet
        7c90e4fa e829000000       call    ntdll!RtlRaiseException (7c90e528)
        7c90e4ff 8b0424           mov     eax,[esp]
        7c90e502 8be5             mov     esp,ebp
        7c90e504 5d               pop     ebp
        7c90e505 c3               ret
        7c90e506 8da42400000000   lea     esp,[esp]
        7c90e50d 8d4900           lea     ecx,[ecx]
        ntdll!KiFastSystemCall:
        7c90e510 8bd4             mov     edx,esp
        7c90e512 0f34             sysenter
        ntdll!KiFastSystemCallRet:
        7c90e514 c3               ret
        7c90e515 8da42400000000   lea     esp,[esp]
        7c90e51c 8d642400         lea     esp,[esp]
        ntdll!KiIntSystemCall:
        7c90e520 8d542408         lea     edx,[esp+0x8]
        7c90e524 cd2e             int     2e
        7c90e526 c3               ret
        7c90e527 90               nop
        ntdll!RtlRaiseException:
        7c90e528 55               push    ebp
        7c90e529 8bec             mov     ebp,esp

*----> Stack Back Trace <----*
WARNING: Stack unwind information not available. Following frames may be wrong.
ChildEBP RetAddr  Args to Child              
0144ff98 0041e868 00000002 0082451c 00000000 ntdll!KiFastSystemCallRet
0144ffec 00000000 0041e830 0086e54c 00000000 xnview+0x1e868

User avatar
xnview
Author of XnView
Posts: 31255
Joined: Mon Oct 13, 2003 7:31 am
Location: France
Contact:

Re: Use LIBQUANT

Post by xnview » Sat Mar 14, 2015 3:56 pm

i can't reproduce on Xp SP3
Pierre.

User avatar
XnTriq
Moderator & Librarian
Posts: 5407
Joined: Sun Sep 25, 2005 3:00 am
Location: Ref Desk

Re: Use LIBQUANT

Post by XnTriq » Sat Mar 14, 2015 5:30 pm

xnview wrote:i can't reproduce on Xp SP3
Are there any dependencies for libquant.dll (like zlib1.dll or libpng3.dll)?

My test setup:
  • \XnView\xnview.exe
  • \XnView\xnview.exe.manifest
  • \XnView\xnview.ini
  • \XnView\AddOn\libquant.dll (190'976 bytes)
  • \XnView\AddOn\libquant.txt
[color=green]\XnView\xnview.ini[/color] wrote:

Code: Select all

[Cache]
IsActive=0
SavingMode=1

[Start]
ParamsSavingMode=1
SavingMode=1

wilk
Posts: 1
Joined: Sun Sep 06, 2015 2:13 am
Contact:

Re: Use LIBQUANT

Post by wilk » Sun Sep 06, 2015 3:01 am

I'm also having crash just when clicking on "Use LIBQUANT". The crash is in libquant.dll, the crash code is 0xc000001d (invalid instruction) at offset 0x00001ca9 in that module. Using OllyDbg the crash occurs at "movsd QWORD PTR [ebp-0x40],xmm0" (F2 0F 11 45 C0).

My platform has Athlon XP which does not support SSE2 instructions set and it looks like this dll was compiled with SSE2 optimisations enabled (OS is Win XP 32b SP3). I suspect that OP's CPU might also be an older one as mine (w/o SSE2) hence the similar crash.

Is it possible you be so kind to release libquant.dll compiled with SSE2 optimisations disabled? I know that XP is an old OS and CPU's it supported are ancient, but looking at http://newsgroup.xnview.com/viewtopic.php?f=35&t=31850 you seem to support even older OSes, so...

XnView 2.32 (Mar 16 2015)

Edit: updated to 2.33 - problem exists

Mixer
Posts: 166
Joined: Fri Aug 28, 2015 6:24 am

Re: Use LIBQUANT

Post by Mixer » Mon Sep 07, 2015 2:02 am

@wilk: if headers don't lie, xnview.exe and libquant.dll were built in different versions of Visual Studio (2008 for xnview.exe and 2013 for libquant.dll). Compiler of both Studios has /arch:SSE option. Now it's only a matter of good will of Pierre to try it or not.

Post Reply