[Bug 14578] New: Thief, System Shock 2 - video intros hang/crash in the end
http://bugs.winehq.org/show_bug.cgi?id=14578 Summary: Thief, System Shock 2 - video intros hang/crash in the end Product: Wine Version: CVS/GIT Platform: PC OS/Version: Linux Status: NEW Severity: minor Priority: P2 Component: quartz AssignedTo: wine-bugs(a)winehq.org ReportedBy: alexd4(a)inbox.lv CC: m.b.lankhorst(a)gmail.com After recent fixes, videos now start playing in Wine with builtin quartz.dll. But some new problems now appeared. There was a regression - some crashes because of "quartz: Fix reference leak in avi splitter on end of stream." (28d6203ca9bd0ba17ce38e309f340b518f954c08) patch. So far it appears to have been fixed by recently submitted "quartz: Fix handling of zero byte samples and endofstreams". The latter patch, although fixing the crash, seems to introduce hangs of intro videos in Thief (i.e. it works before "fix reference leak", it crashes after "fix reference leak" and it doesn't crash but hangs after also applying "fix handling of zero byte samples". Very likely it simply exposes a previously hidden underlying problem. Because, for example, system shock 2 (also a Looking Glass game with similar engine) has some videos for which I can't find a working Wine version, probably they always had this hang problem. I've analyzed +quartz logs for differences, and it looks to me that the critical difference is lack of AVISplitter_SendEndOfFile on the video (0) stream in NON-working cases, which possibly makes game unaware that video ended. Non-working cases have either "END OF STREAM" detected on stream 1 only or not at all. +quartz log of Thief session in Wine build that works fine has: err:quartz:AVISplitter_next_request END OF STREAM ON 1 trace:quartz:AVISplitter_SendEndOfFile End of file reached [...] err:quartz:AVISplitter_next_request END OF STREAM ON 0 trace:quartz:AVISplitter_SendEndOfFile End of file reached +quartz log of Thief session in Wine build that hangs has no SendEndOfFile at all. +quartz log of System Shock 2 in Wine build that works for Thief (but SS2 still hangs) has err:quartz:AVISplitter_next_request END OF STREAM ON 1 trace:quartz:AVISplitter_SendEndOfFile End of file reached System Shock 2 with 28d6203ca9bd0ba17ce38e309f340b518f954c08 and "fix zero size samples" patch - can't compare because it now crashes (assert failed) :/ filesource.c:1250: FileAsyncReader_WaitForNext: Assertion `rtStop == rtSampleStop' failed. This pattern shows when watching videos outside the game in the graphedit tool as well. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=14578 --- Comment #1 from Alexander Dorofeyev <alexd4(a)inbox.lv> 2008-07-20 10:32:59 --- Created an attachment (id=14938) --> (http://bugs.winehq.org/attachment.cgi?id=14938) +quartz log of Thief, Wine build that doesn't hang -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=14578 --- Comment #2 from Alexander Dorofeyev <alexd4(a)inbox.lv> 2008-07-20 10:34:03 --- Created an attachment (id=14939) --> (http://bugs.winehq.org/attachment.cgi?id=14939) +quartz log of Thief, Wine build that hangs -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=14578 --- Comment #3 from Alexander Dorofeyev <alexd4(a)inbox.lv> 2008-07-20 11:52:24 --- Continuing analysis of Thief videos in a working Wine build (current git + 28d6203ca9bd0ba17ce38e309f340b518f954c08 reverted and zero byte samples patch NOT applied). I'm looking further into differences that "fix handling of zero byte samples" patch introduces. I've added debug output in AVISplitter_next_request, that is supposed to call AVISplitter_SendEndOfFile, and it shows that 1) thief avis only seem to enter the "else if (This->oldindex) { } " path 2) stream->index always seems to be 0 Furthermore, I don't see any obvious way how stream->index can become anything but 0 for such a video. This may explain why end of file is never detected in Thief videos with "fix handling of zero byte samples" as it replaces the end of file detecting conditional - if (stream->pos_next * sizeof(This->oldindex->aIndex[0]) >= This->oldindex->cb) + if (stream->index) to one that will never be true. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=14578 --- Comment #4 from Alexander Dorofeyev <alexd4(a)inbox.lv> 2008-07-20 13:34:49 --- Failed assert in system shock 2 intros seem to be a part of the same problem. I don't know whether this is really right or not as I don't understand yet how this index stuff works, but reverting that part back, i.e. - if (stream->index) + if (stream->pos_next * sizeof(This->oldindex->aIndex[0]) >= This->oldindex->cb) Cures hang in Thief and the assert in SS2 as well. It seems that SS2 assert may be coming from it failing to stop at end of stream. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=14578 Alexander Dorofeyev <alexd4(a)inbox.lv> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED --- Comment #5 from Alexander Dorofeyev <alexd4(a)inbox.lv> 2008-07-22 13:03:31 --- Seems to be fixed already in current git by 3376ba6113f81a420c56292f25bb5420ae2b6465. Thanks Maarten :) :). marking fixed. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=14578 Alexandre Julliard <julliard(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #6 from Alexandre Julliard <julliard(a)winehq.org> 2008-07-25 13:25:43 --- Closing bugs fixed in 1.1.2. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=14578 Austin English <austinenglish(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Version|CVS/GIT |unspecified -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
participants (1)
-
wine-bugs@winehq.org