http://bugs.winehq.org/show_bug.cgi?id=36954
Bug ID: 36954 Summary: DVDFab 9.x fails to convert video files Product: Wine Version: 1.7.18 Hardware: x86 URL: http://www.dvdfab.cn/ OS: Linux Status: NEW Keywords: download, regression Severity: normal Priority: P2 Component: msvcrt Assignee: wine-bugs@winehq.org Reporter: gyebro69@gmail.com CC: piotr@codeweavers.com Regression SHA1: d48314c8a50a69538985a8ce273fba1611585fbe
Created attachment 49066 --> http://bugs.winehq.org/attachment.cgi?id=49066 terminal output
To reproduce the problem you'll need a video file to convert, here's a small sample video file: http://techslides.com/demos/sample-videos/small.flv
To reproduce the problem: 1. install and start DVDFab.exe 2. switch to the Converter tab, if you see garbage in the main window switch to another tab then switch back to Converter 3. add 'small.flv' and click on the green Start button in the lower right corner 4. DVDFab informs you that the conversion process failed
The application comoes with native msvcr90/msvcp90, the problem doesn't exist when you override msvcr90 to native.
Conversion used to work with the built-in msvcr90 up to this commit:
d48314c8a50a69538985a8ce273fba1611585fbe is the first bad commit commit d48314c8a50a69538985a8ce273fba1611585fbe Author: Piotr Caban piotr@codeweavers.com Date: Tue Apr 22 14:38:47 2014 +0200
msvcrt: Don't use default process heap.
:040000 040000 de514deebdd931222a2ac6135cf6187057138825 a967aeb9bad7eba0029e1b53c436a47bf39affa2 M dlls
wine-1.7.22-88-g1f6073c
DVDFab9157.exe md5sum: 78409d2bef283d4f2136e7a2daa90a80
http://bugs.winehq.org/show_bug.cgi?id=36954
Piotr Caban piotr.caban@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |piotr.caban@gmail.com
--- Comment #1 from Piotr Caban piotr.caban@gmail.com --- The application ships it's own version of msvcr90.dll. This version of dll is not compatible with Microsoft's one.
I'm not sure if there's anything that can be done to fix it inside wine. Maybe it can be solved by implementing more complete support for manifests and loading the dll shiped with application in this case.
The workaround is to set msvcr90=native override using winecfg.
http://bugs.winehq.org/show_bug.cgi?id=36954
--- Comment #2 from Dmitry Timoshkov dmitry@baikal.ru --- (In reply to Piotr Caban from comment #1)
The application ships it's own version of msvcr90.dll. This version of dll is not compatible with Microsoft's one.
I'm not sure if there's anything that can be done to fix it inside wine. Maybe it can be solved by implementing more complete support for manifests and loading the dll shiped with application in this case.
The workaround is to set msvcr90=native override using winecfg.
Does setting 'msvcr90=native' in winecfg really work without deleting a fake manifest? WINEDLLOVERRIDES="msvcr90=n" doesn't currently work for a dll with a manifest due to a bug in Wine, see for details http://bugs.winehq.org/show_bug.cgi?id=28225 http://bugs.winehq.org/show_bug.cgi?id=33604
http://bugs.winehq.org/show_bug.cgi?id=36954
--- Comment #3 from Piotr Caban piotr.caban@gmail.com --- I forgot to mention that fake manifest needs to be deleted.
I'm not sure but this bug may different then the one that was closed with WONTFIX reason. In this case the application is not using manifests. Its custom build of msvcr90 can be loaded without manifest.
http://bugs.winehq.org/show_bug.cgi?id=36954
--- Comment #4 from Piotr Caban piotr.caban@gmail.com --- I've tested it incorrectly. It's not needed to delete the fake manifests. But the dll override needs to be set to "msvcr90=n,b". This causes some processes to load native msvcr90 from application directory while some other processes uses builtin msvcr90.
The application starts some sub-programs: FabUpdate.exe comes with manifest and uses builtin msvcr90.dll DVDFab.exe comes without manifest and uses native msvcr90.dll from application directory
The exact command I have used to start the application: WINEDLLOVERRIDES="msvcr90=n,b" wine DVDFab.exe
http://bugs.winehq.org/show_bug.cgi?id=36954
--- Comment #5 from Dmitry Timoshkov dmitry@baikal.ru --- (In reply to Piotr Caban from comment #3)
I forgot to mention that fake manifest needs to be deleted.
I'm not sure but this bug may different then the one that was closed with WONTFIX reason. In this case the application is not using manifests. Its custom build of msvcr90 can be loaded without manifest.
Piotr, how have you figured out that msvcr90.dll used by DVDFab is not compatible with native one? The app mentioned in the bug 33604 doesn't use the manifest either, and the reason why it doesn't work may be that msvcr90.dll in its application directory also is not compatible.
http://bugs.winehq.org/show_bug.cgi?id=36954
--- Comment #6 from Piotr Caban piotr.caban@gmail.com --- First I have installed native vcrun2008 and deleted msvcr90.dll from game directory. After that the application was not working. I've also copied the dll from game to Win7 and checked what version is displayed in file properties window. It was: User-Generated Microsoft C/C++ Runtime Version 9.0.0.0
Later I have written a test to check if new/malloc behaves as expected and it turned out that malloc allocates data on different stack. This is causing e.g. following test to fail: _msize(malloc(10)) == _msize(new(char[10])) because _msize fails in malloc case.
https://bugs.winehq.org/show_bug.cgi?id=36954
winetest@luukku.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |winetest@luukku.com
--- Comment #7 from winetest@luukku.com --- Can you find the same exact dvdfab version? The website doesn't seem to provide it anymore.
https://bugs.winehq.org/show_bug.cgi?id=36954
Robert Walker bob.mt.wya@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |bob.mt.wya@gmail.com
--- Comment #8 from Robert Walker bob.mt.wya@gmail.com --- (In reply to winetest from comment #7)
Can you find the same exact dvdfab version? The website doesn't seem to provide it anymore.
The last DVDFab version supporting Windows XP is available here: http://www.dvdfab.cn/download.htm?trackID=navmenu
DVDFab 9 for XP Version 9.2.4.5
This is not a "special XP version" - it will try to update to a newer version of DVDFab (9.3.2.2) and fail with unsupported OS.
If you do a BluRay Rip with no overrides then this fails if you try to do any video re-encoding (Copy works). Audio re-encoding works OK (Copy works as well obviously).
winetricks vcrun2008
Works around the video re-encoding issue... Presumably because the local msvcr90 copy is used in preference to the native Windows runtime dll - for the video re-encoding?
I'll do some more testing - perhaps do some PE dumps... :-)
https://bugs.winehq.org/show_bug.cgi?id=36954
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #9 from joaopa jeremielapuree@yahoo.fr --- Does the bug still occur with wine-5.1?
https://bugs.winehq.org/show_bug.cgi?id=36954
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net Summary|DVDFab 9.x fails to convert |DVDFab 9.2 or older fails |video files |to convert video files URL|http://www.dvdfab.cn/ |https://web.archive.org/web | |/20200325113658/http://194. | |58.115.17/download/DVDFab92 | |44.exe
--- Comment #10 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming, still present. You have to be careful which exact version of the app you test with - even for DVDFab 9.x releases! They switched MSVCRT runtime versions in between.
DVDFab 9.2.4.4 (25/05/2016)
https://web.archive.org/web/20200325113658/http://194.58.115.17/download/DVD...
--- snip --- PE 40c0000- 414a000 Deferred msvcp90 PE 8ff0000- 906b000 Deferred msvcp71 ELF 7ce2b000-7cef8000 Deferred msvcr71<elf> -PE 7ce50000-7cef8000 \ msvcr71 ELF 7e353000-7e434000 Deferred msvcr90<elf> -PE 7e380000-7e434000 \ msvcr90 ELF 7e434000-7e509000 Deferred msvcrt<elf> -PE 7e460000-7e509000 \ msvcrt --- snip ---
DVDFab 9.3.2.1 (08/11/2016)
https://web.archive.org/web/20191222051740/http://194.58.115.17/download/DVD...
--- snip --- ELF 7bd15000-7bdc8000 Deferred msvcr71<elf> -PE 7bd30000-7bdc8000 \ msvcr71 ELF 7bdc8000-7bf00000 Deferred msvcp71<elf> -PE 7be00000-7bf00000 \ msvcp71 ELF 7db54000-7dc0e000 Deferred msvcrt<elf> -PE 7db70000-7dc0e000 \ msvcrt ELF 7e0d2000-7e1ac000 Deferred msvcr120<elf> -PE 7e0f0000-7e1ac000 \ msvcr120 ELF 7e1ac000-7e2b2000 Deferred msvcp120<elf> -PE 7e1e0000-7e2b2000 \ msvcp120 --- snip ---
https://web.archive.org/web/20130907231921/http://techslides.com/demos/sampl...
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files (x86)/DVDFab 9
$ WINEDEBUG=+seh,+loaddll,+process,+msvcrt,+msvcp wine ./DVDFab.exe >>log.txt 2>&1 ... 0058:trace:msvcrt:MSVCRT_operator_new (616) returning 0x7e9fc98 0058:trace:msvcrt:MSVCRT_operator_new (24) returning 0x312ff00 0058:trace:msvcrt:MSVCRT_operator_new (36) returning 0x7e9ff08 0058:trace:msvcrt:MSVCRT___RTDynamicCast obj: 0x7edec48 unknown: 0 src: 0x103a028 {vtable=0xcc80ec name=.?AVIffdshowBase@@ ()} dst: 0x103a00c {vtable=0xcc80ec name=.?AVIffdshowDec@@ ()} do_throw: 0) 0058:trace:msvcrt:dump_obj_locator 0xd56fdc: sig=00000000 base_offset=00000000 flags=00000000 type=0x1039fc8 {vtable=0xcc80ec name=.?AVTffdshowDecVideoProc@@ ()} hierarchy=0xd56ff0 0058:trace:msvcrt:dump_obj_locator hierarchy: sig=00000000 attr=00000001 len=5 base classes=0xd57000 0058:trace:msvcrt:dump_obj_locator base class 0xd57018: num 4 off 0,-1,0 attr 00000040 type 0x1039fc8 {vtable=0xcc80ec name=.?AVTffdshowDecVideoProc@@ ()} 0058:trace:msvcrt:dump_obj_locator base class 0xd57034: num 3 off 0,-1,0 attr 00000040 type 0x1039fec {vtable=0xcc80ec name=.?AVIffdshowDecVideo@@ ()} 0058:trace:msvcrt:dump_obj_locator base class 0xd57074: num 1 off 0,-1,0 attr 00000040 type 0x103a00c {vtable=0xcc80ec name=.?AVIffdshowDec@@ ()} 0058:trace:msvcrt:dump_obj_locator base class 0xd570ac: num 0 off 0,-1,0 attr 00000040 type 0x103a028 {vtable=0xcc80ec name=.?AVIffdshowBase@@ ()} 0058:trace:msvcrt:dump_obj_locator base class 0xd570e0: num 0 off 20,-1,0 attr 00000040 type 0x1039fa8 {vtable=0xcc80ec name=.?AVIprocVideoSink@@ ()} 0058:trace:msvcrt:MSVCRT___RTDynamicCast obj: 0x7edec48 unknown: 0 src: 0x103a028 {vtable=0xcc80ec name=.?AVIffdshowBase@@ ()} dst: 0x1039fec {vtable=0xcc80ec name=.?AVIffdshowDecVideo@@ ()} do_throw: 0) 0058:trace:msvcrt:dump_obj_locator 0xd56fdc: sig=00000000 base_offset=00000000 flags=00000000 type=0x1039fc8 {vtable=0xcc80ec name=.?AVTffdshowDecVideoProc@@ ()} hierarchy=0xd56ff0 0058:trace:msvcrt:dump_obj_locator hierarchy: sig=00000000 attr=00000001 len=5 base classes=0xd57000 0058:trace:msvcrt:dump_obj_locator base class 0xd57018: num 4 off 0,-1,0 attr 00000040 type 0x1039fc8 {vtable=0xcc80ec name=.?AVTffdshowDecVideoProc@@ ()} 0058:trace:msvcrt:dump_obj_locator base class 0xd57034: num 3 off 0,-1,0 attr 00000040 type 0x1039fec {vtable=0xcc80ec name=.?AVIffdshowDecVideo@@ ()} 0058:trace:msvcrt:dump_obj_locator base class 0xd57074: num 1 off 0,-1,0 attr 00000040 type 0x103a00c {vtable=0xcc80ec name=.?AVIffdshowDec@@ ()} 0058:trace:msvcrt:dump_obj_locator base class 0xd570ac: num 0 off 0,-1,0 attr 00000040 type 0x103a028 {vtable=0xcc80ec name=.?AVIffdshowBase@@ ()} 0058:trace:msvcrt:dump_obj_locator base class 0xd570e0: num 0 off 20,-1,0 attr 00000040 type 0x1039fa8 {vtable=0xcc80ec name=.?AVIprocVideoSink@@ ()} 0058:trace:msvcrt:MSVCRT_operator_new (3952) returning 0x7e9ff38 0058:trace:msvcrt:MSVCRT___RTDynamicCast obj: 0x7edec48 unknown: 0 src: 0x103a028 {vtable=0xcc80ec name=.?AVIffdshowBase@@ ()} dst: 0x1039fec {vtable=0xcc80ec name=.?AVIffdshowDecVideo@@ ()} do_throw: 0) 0058:trace:msvcrt:dump_obj_locator 0xd56fdc: sig=00000000 base_offset=00000000 flags=00000000 type=0x1039fc8 {vtable=0xcc80ec name=.?AVTffdshowDecVideoProc@@ ()} hierarchy=0xd56ff0 0058:trace:msvcrt:dump_obj_locator hierarchy: sig=00000000 attr=00000001 len=5 base classes=0xd57000 0058:trace:msvcrt:dump_obj_locator base class 0xd57018: num 4 off 0,-1,0 attr 00000040 type 0x1039fc8 {vtable=0xcc80ec name=.?AVTffdshowDecVideoProc@@ ()} 0058:trace:msvcrt:dump_obj_locator base class 0xd57034: num 3 off 0,-1,0 attr 00000040 type 0x1039fec {vtable=0xcc80ec name=.?AVIffdshowDecVideo@@ ()} 0058:trace:msvcrt:dump_obj_locator base class 0xd57074: num 1 off 0,-1,0 attr 00000040 type 0x103a00c {vtable=0xcc80ec name=.?AVIffdshowDec@@ ()} 0058:trace:msvcrt:dump_obj_locator base class 0xd570ac: num 0 off 0,-1,0 attr 00000040 type 0x103a028 {vtable=0xcc80ec name=.?AVIffdshowBase@@ ()} 0058:trace:msvcrt:dump_obj_locator base class 0xd570e0: num 0 off 20,-1,0 attr 00000040 type 0x1039fa8 {vtable=0xcc80ec name=.?AVIprocVideoSink@@ ()} 0086:trace:msvcrt:MSVCRT_operator_new (72) returning 0x1464c3b0 0086:trace:msvcrt:MSVCRT_operator_new (64) returning 0x140f7690 0086:trace:msvcrt:MSVCRT_operator_new (72) returning 0x1464b7b0 0086:trace:msvcrt:MSVCRT_operator_new (12) returning 0x13ec68c8 0086:trace:msvcrt:MSVCRT_operator_new (40) returning 0x13cdbc58 0086:trace:msvcrt:MSVCRT_operator_delete (0x13cdbc58) 0086:trace:msvcrt:MSVCRT_operator_delete (0x1464b7b0) 0086:trace:msvcrt:MSVCRT_operator_delete (0x140f7690) 0086:trace:msvcrt:MSVCRT_operator_delete (0x1464c3b0) 0058:trace:msvcrt:MSVCRT_operator_new (4) returning 0x7e99270 0058:trace:msvcrt:_beginthreadex ((nil), 0, 0x7e6b90, 0x2ee7000, 4, 0x2ee701c) 0058:trace:msvcrt:MSVCRT_operator_new (24) returning 0x7fae1c8 0058:trace:seh:raise_exception code=c0000005 flags=0 addr=0x7bc710a6 ip=7bc710a6 tid=0058 0058:trace:seh:raise_exception info[0]=00000001 0058:trace:seh:raise_exception info[1]=00000004 0058:trace:seh:raise_exception eax=03020298 ebx=07ea0ea8 ecx=00000268 edx=00000000 esi=00000268 edi=07ea0eb0 0058:trace:seh:raise_exception ebp=07e2e948 esp=07e2e7b0 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00210202 0058:trace:seh:call_stack_handlers calling handler at 0xac6ceb code=c0000005 flags=0 0058:trace:seh:call_stack_handlers handler at 0xac6ceb returned 1 ... 0058:err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr 0x7bc710a6 --- snip ---
$ sha1sum DVDFab9244.exe 71d0604defe47a13ac45e972ee78d79484f31048 DVDFab9244.exe
$ du -sh DVDFab9244.exe 66M DVDFab9244.exe
$ wine --version wine-5.4-306-g9c190f8118
Regards
https://bugs.winehq.org/show_bug.cgi?id=36954
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12@gmail.com Summary|DVDFab 9.2 or older fails |DVDFab 9.2 or older fails |to convert video files |to convert video files | |(Wine's 'msvcr90.dll
https://bugs.winehq.org/show_bug.cgi?id=36954
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|DVDFab 9.2 or older fails |DVDFab 9.2 or older fails |to convert video files |to convert video files |(Wine's 'msvcr90.dll |(Wine's 'msvcr90.dll' is | |preferred over modified | |native DLL, causing | |failure)