http://bugs.winehq.org/show_bug.cgi?id=25180
Summary: Clonk Endeavour's intro video is not rendered correctly Product: Wine Version: 1.3.7 Platform: x86 URL: http://www.clonk.de/ce.php?lng=en OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: andrew.millington@gmail.com
The intro has several problems. For example it should be rendered in mostly color just like when playing with Totem.
http://bugs.winehq.org/show_bug.cgi?id=25180
--- Comment #1 from Andrew Millington andrew.millington@gmail.com 2010-11-15 00:58:18 CST --- Created an attachment (id=31954) --> (http://bugs.winehq.org/attachment.cgi?id=31954) Screen shot showing the problem
http://bugs.winehq.org/show_bug.cgi?id=25180
Andrew Millington andrew.millington@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download
http://bugs.winehq.org/show_bug.cgi?id=25180
--- Comment #2 from Andrew Millington andrew.millington@gmail.com 2010-12-02 00:24:41 CST --- Still present in wine-1.3.8-113-g9d9ce29.
http://bugs.winehq.org/show_bug.cgi?id=25180
--- Comment #3 from Andrew Millington andrew.millington@gmail.com 2011-03-18 01:25:31 CDT --- Still present in wine-1.3.15-445-g12b24af.
http://bugs.winehq.org/show_bug.cgi?id=25180
--- Comment #4 from Andrew Millington andrew.millington@gmail.com 2011-04-06 08:07:52 CDT --- Still present in wine-1.3.17-91-gebe7b56.
http://bugs.winehq.org/show_bug.cgi?id=25180
--- Comment #5 from Andrew Millington andrew.millington@gmail.com 2011-06-02 01:30:21 CDT --- Still present in wine-1.3.21.
http://bugs.winehq.org/show_bug.cgi?id=25180
--- Comment #6 from Andrew Millington andrew.millington@gmail.com 2012-10-12 23:49:34 CDT --- Still present in wine-1.5.15
https://bugs.winehq.org/show_bug.cgi?id=25180
--- Comment #7 from Ken Sharp imwellcushtymelike@gmail.com --- Is this still an issue in Wine 1.7.45 or later?
https://bugs.winehq.org/show_bug.cgi?id=25180
super_man@post.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |00cpxxx@gmail.com, | |super_man@post.com
--- Comment #8 from super_man@post.com --- Still an issue wine-1.7.54-59-g8f44307
https://bugs.winehq.org/show_bug.cgi?id=25180
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Component|-unknown |iccvid Summary|Clonk Endeavour's intro |Clonk Endeavour's intro |video is not rendered |video is not rendered |correctly |correctly (iccvid does not | |support non-multiple of 4 | |video width) Ever confirmed|0 |1
--- Comment #9 from Bruno Jesus 00cpxxx@gmail.com --- Confirming in wine 1.7.54.
https://bugs.winehq.org/show_bug.cgi?id=25180
--- Comment #10 from super_man@post.com --- Does it work correctly if you force the width/height divide by 4? Rounding it somehow?
https://bugs.winehq.org/show_bug.cgi?id=25180
--- Comment #11 from Bruno Jesus 00cpxxx@gmail.com --- I don't know, I lost a few hours and didn't get any clue. Tried many things but this requires a bit deeper knowledge on the process.
https://bugs.winehq.org/show_bug.cgi?id=25180
--- Comment #12 from super_man@post.com --- Still valid wine-git and wine-staging 1.9.3
https://bugs.winehq.org/show_bug.cgi?id=25180
--- Comment #13 from super_man@post.com --- Still valid 1.9.7
https://bugs.winehq.org/show_bug.cgi?id=25180
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dmitry@baikal.ru, | |erich.e.hoover@wine-staging | |.com, michael@fds-team.de, | |sebastian@fds-team.de Status|NEW |STAGED Staged patchset| |https://github.com/wine-com | |pholio/wine-staging/tree/ma | |ster/patches/msvfw32-ICGetD | |isplayFormat
https://bugs.winehq.org/show_bug.cgi?id=25180
--- Comment #14 from super_man@post.com --- I just merged the patches into wine and I can confirm the patches fix the issue. Well done. This issue seemed so complicated to solve since there was so much wine code involved that was hard to read and understand.
wine 1.9.7+the patches mentioned staged field.
https://bugs.winehq.org/show_bug.cgi?id=25180
--- Comment #15 from Bruno Jesus 00cpxxx@gmail.com --- Created attachment 54137 --> https://bugs.winehq.org/attachment.cgi?id=54137 hack
It is interesting that forcing 32 bpp would make the video work. The input video is supposed to be 24 so I expected the output to be 24 too. The attached hack makes it work as a simplified version of the msvfw patches.
This could actually explain why the calculation for biSizeImage is fixed *4 inside iccvid instead of using the bpp / 8.
844 if( out ) 845 { 846 memcpy( out, in, size ); 847 out->bmiHeader.biCompression = BI_RGB; 848 out->bmiHeader.biSizeImage = in->bmiHeader.biHeight 849 * in->bmiHeader.biWidth *4; 850 return ICERR_OK; 851 }
https://bugs.winehq.org/show_bug.cgi?id=25180
--- Comment #16 from Michael Müller michael@fds-team.de --- (In reply to Bruno Jesus from comment #15)
It is interesting that forcing 32 bpp would make the video work. The input video is supposed to be 24 so I expected the output to be 24 too.
I don't force anything. My tests show that the ICGetDisplayFormat implementation behaves in the same way as on Windows. If you think that the video output should be 24 bit, then the problem is located in a different part of Wine. I would also prefer to see tests backing up your statements instead of wild guesses.
Writing tests could be a bit difficult though since the whole playback is done by wine code. The application uses MCI to playback the video:
---- trace:mci:mciSendStringW verb=L"open" on dev=L"c:\prog~fbu\clon~jdk\splash.c4v"; offset=8 trace:mci:MCI_ParseOptArgs args=L"type avivideo alias cp_splash_avi" trace:mci:MCI_ParseOptArgs flag=00002000 string=L"avivideo" trace:mci:MCI_ParseOptArgs args=L"alias cp_splash_avi" trace:mci:MCI_ParseOptArgs flag=00000400 string=L"cp_splash_avi" trace:mci:mciSendStringW (L"window cp_splash_avi handle 65626", (nil), 0, (nil)) trace:mci:mciSendStringW (L"put cp_splash_avi destination", (nil), 0, (nil)) trace:mci:mciSendStringW (L"play cp_splash_avi wait", (nil), 0, (nil)) ----
Nevertheless, I updated the patchset to fix the original bug with the 24 bit playback. The wrong rendering was caused by the call to StretchDIBits in MCIAVI_PaintFrame. The windows / wine GDI API expects a row stride which is dividable by 4 bytes and iccvid just sets stride = width. The stride requirements also apply for VFW and are explained in the MSDN, see "Calculating Surface Stride" at https://msdn.microsoft.com/de-de/library/windows/desktop/dd318229(v=vs.85).a.... The patchset fixes the problem in iccvid and msvidc32.
https://bugs.winehq.org/show_bug.cgi?id=25180
--- Comment #17 from Bruno Jesus 00cpxxx@gmail.com --- (In reply to Michael Müller from comment #16)
(In reply to Bruno Jesus from comment #15)
It is interesting that forcing 32 bpp would make the video work. The input video is supposed to be 24 so I expected the output to be 24 too.
I don't force anything. My tests show that the ICGetDisplayFormat implementation behaves in the same way as on Windows. If you think that the video output should be 24 bit, then the problem is located in a different part of Wine. I would also prefer to see tests backing up your statements instead of wild guesses.
I just found interesting that our current iccvid always try to output the video in the same bpp from input, your patch changes this by using the screen depth during the get format call. That was my point only, I trust your tests and I trust your judgement and I see no problem with wild guesses =)
Nevertheless, I updated the patchset to fix the original bug with the 24 bit playback. The wrong rendering was caused by the call to StretchDIBits in MCIAVI_PaintFrame. The windows / wine GDI API expects a row stride which is dividable by 4 bytes and iccvid just sets stride = width.
This is very good to known, thanks for working on this. The original set did not fix the playback in VirtualDub which does not use the GET FORMAT message, it manually attempts to find the format with ICDecompressQuery. But now everything works out of the box.
https://bugs.winehq.org/show_bug.cgi?id=25180
André H. nerv@dawncrow.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |nerv@dawncrow.de Staged patchset|https://github.com/wine-com |https://github.com/wine-sta |pholio/wine-staging/tree/ma |ging/wine-staging/tree/mast |ster/patches/msvfw32-ICGetD |er/patches/msvfw32-ICGetDis |isplayFormat |playFormat
https://bugs.winehq.org/show_bug.cgi?id=25180
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #18 from joaopa jeremielapuree@yahoo.fr --- Does the bug still occur with wine-4.1?
https://bugs.winehq.org/show_bug.cgi?id=25180
Gijs Vermeulen gijsvrm@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|STAGED |RESOLVED Fixed by SHA1| |fb7f937305f9242c675d4ff9a79 | |76cf121710159
--- Comment #19 from Gijs Vermeulen gijsvrm@gmail.com --- The patchset, which was verified to fix the problem in Comment #14, was upstreamed, marking FIXED.
https://bugs.winehq.org/show_bug.cgi?id=25180
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #20 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 4.4.
https://bugs.winehq.org/show_bug.cgi?id=25180
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |4.0.x
https://bugs.winehq.org/show_bug.cgi?id=25180
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|4.0.x |---
--- Comment #21 from Michael Stefaniuc mstefani@winehq.org --- Removing the 4.0.x milestone from bug fixes included in 4.0.3.
https://bugs.winehq.org/show_bug.cgi?id=25180
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|iccvid |msvfw32