https://bugs.winehq.org/show_bug.cgi?id=56066
Bug ID: 56066 Summary: The Shattering (GOG) crashes when smashing TV Product: Wine Version: 9.0-rc2 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winegstreamer Assignee: wine-bugs@winehq.org Reporter: titan.costa@gmail.com Distribution: ---
Created attachment 75730 --> https://bugs.winehq.org/attachment.cgi?id=75730 Log
Ubuntu 22.10. Good, bad and ugly gstreamer plugings installed.
https://bugs.winehq.org/show_bug.cgi?id=56066
--- Comment #1 from Rafał Mużyło galtgendo@o2.pl --- Does GST_DEBUG=5 print those caps at an earlier point ? (it would if they were correct, alas they aren't)
If not, does it at 6 or 7 ?
The log should also offer hints which of our gst_video_info_from_caps calls fails.
https://bugs.winehq.org/show_bug.cgi?id=56066
Zeb Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12@gmail.com
--- Comment #2 from Zeb Figura z.figura12@gmail.com --- (In reply to Rafał Mużyło from comment #1)
Does GST_DEBUG=5 print those caps at an earlier point ? (it would if they were correct, alas they aren't)
If not, does it at 6 or 7 ?
The log should also offer hints which of our gst_video_info_from_caps calls fails.
No, that message is harmless. It comes from trying to query compressed caps which for some reason aren't fixed, but it doesn't do anything other than print an assertion.
https://bugs.winehq.org/show_bug.cgi?id=56066
--- Comment #3 from Rafał Mużyło galtgendo@o2.pl ---
No, that message is harmless....it doesn't do anything other than print an assertion.
Maybe.
Yet, even though the immediate uses of gst_video_info_from_caps are guarded, are you sure the code around them and in the functions it returns to handle a fail gracefully ?
Also, the way I understand that part of gstreamer docs, that happens if a segment of the caps is still an array, instead of a single value, so, perhaps, it would be nice to figure out why that happens...
The guid seems to be for seeking by keyframes (https://learn.microsoft.com/en-us/windows/win32/api/mfidl/nn-mfidl-imfseekin...). Perhaps the game doesn't check if that actually succeeds and blindly seeks the garbage values...but that doesn't sound as something that should actually crash...
https://bugs.winehq.org/show_bug.cgi?id=56066
--- Comment #4 from Zeb Figura z.figura12@gmail.com --- (In reply to Rafał Mużyło from comment #3)
No, that message is harmless....it doesn't do anything other than print an assertion.
Maybe.
Yet, even though the immediate uses of gst_video_info_from_caps are guarded, are you sure the code around them and in the functions it returns to handle a fail gracefully ?
Yes. I actually know the code in question, and I know that that assertion is harmless. Please don't contribute noise like this when you aren't actually familiar with the code.
Also, the way I understand that part of gstreamer docs, that happens if a segment of the caps is still an array, instead of a single value, so, perhaps, it would be nice to figure out why that happens...
I know why it happens; it's because we're trying to query caps before they're fixed, and for certain pad types it's just not specific enough.
The guid seems to be for seeking by keyframes (https://learn.microsoft.com/en-us/windows/win32/api/mfidl/nn-mfidl- imfseekinfo). Perhaps the game doesn't check if that actually succeeds and blindly seeks the garbage values...but that doesn't sound as something that should actually crash...
The result of GetService() is supposed to be an interface; if we don't return an interface the game can't "seek garbage values", it'll just crash.
However, the actual crash is more likely related to the Unix heap corruption.
https://bugs.winehq.org/show_bug.cgi?id=56066
--- Comment #5 from Rafał Mużyło galtgendo@o2.pl ---
assertion is harmless
Being harmless and being unrelated to the problem at hand are different things. Though it likely has little effect.
Just for funsies: must be Christmas, cause I've managed to run into a Unity game, that shows some of this behavior.
It doesn't crash, but it hangs while trying to play an in-game video, that should be skippable, but for some reason isn't.
It was easy to silence the assertion, though I've likely done it wrong (in wg_format_from_caps, I've put gst_caps_fixate around caps; the caps themselves are bit odd (probably too early to be complete): two variants (interleaved and non-interleaved) of 'video/raw type and a list of formats', no width/height, etc.
Another thing that didn't matter was that wg_format_from_caps_video_h264 counterpart of wg_format_to_caps_video_h264 is missing - still an odd inconsistency.
Yet, tampering with the above makes no difference wrt. the perma-stop. The thing that it's trying to playback seems to be a file roughly defined as: Stream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 2811 kb/s, 29.78 fps, 29.97 tbr, 90k tbn (default).
https://bugs.winehq.org/show_bug.cgi?id=56066
--- Comment #6 from Christian Costa titan.costa@gmail.com --- Created attachment 75762 --> https://bugs.winehq.org/attachment.cgi?id=75762 With GST_DEBUG=5
https://bugs.winehq.org/show_bug.cgi?id=56066
--- Comment #7 from Christian Costa titan.costa@gmail.com --- Created attachment 75763 --> https://bugs.winehq.org/attachment.cgi?id=75763 With +mfplat
https://bugs.winehq.org/show_bug.cgi?id=56066
--- Comment #8 from Christian Costa titan.costa@gmail.com --- I tested with mfplat disabled in winecfg. The video on TV is not played which is expected and when smashing the TV, the crash does not occcur. I guess something happens when stopping the video stream.
https://bugs.winehq.org/show_bug.cgi?id=56066
--- Comment #9 from Rafał Mużyło galtgendo@o2.pl --- I suspect that relevant here is bug 53559 comment 4 - that's a Unity game too.
https://bugs.winehq.org/show_bug.cgi?id=56066
--- Comment #10 from Christian Costa titan.costa@gmail.com --- Still present in wine-9.7-100-g7641124d07a.
https://bugs.winehq.org/show_bug.cgi?id=56066
Ken Sharp imwellcushtymelike@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|winegstreamer |-unknown