Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The new media source in experimental fails to play any video #246

Open
adolfintel opened this issue Jul 16, 2024 · 32 comments
Open

The new media source in experimental fails to play any video #246

adolfintel opened this issue Jul 16, 2024 · 32 comments

Comments

@adolfintel
Copy link

I build Wine regularly using the TkG build system and I've noticed an issue with video playback that started around July 5 when the new media source was pushed to the experimental branch (I couldn't bisect it to the exact commit, most intermediate commits fail to compile).

Every game I tested with the current experimental branch that uses mfplat for videos fails to display them: the audio plays but the video is either completely white, gray or black. This happens both with and without hardware decoding.

Enabling gstreamer debug output, I get the following log when it tries to play a video:

0:00:00.140566985  5785 0x75109c011560 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "bin"
0:00:00.140590765  5785 0x75109c011560 LOG                     WINE wg_allocator.c:157:wg_allocator_init: allocator 0x75109c450ea0
0:00:00.140598975  5785 0x75109c011560 TRACE                   WINE wg_media_type.c:404:caps_from_video_format: subtype {34363248-0000-0010-8000-00aa00389b71} 0x0, FPS 0:0, aperture (0,0)-(0,0), PAR 0:0, videoFlags 0.
0:00:00.140602445  5785 0x75109c011560 MEMDUMP                 WINE wg_media_type.c:409:caps_from_video_format: ---------------------------------------------------------------------------
0:00:00.140605135  5785 0x75109c011560 MEMDUMP                 WINE wg_media_type.c:409:caps_from_video_format: extra bytes:
0:00:00.140608885  5785 0x75109c011560 MEMDUMP                 WINE wg_media_type.c:409:caps_from_video_format: 00000000: 00 00 00 01 67 4d 40 34 95 90 03 c0 04 3e c0 44  ....gM@4.....>.D
0:00:00.140612165  5785 0x75109c011560 MEMDUMP                 WINE wg_media_type.c:409:caps_from_video_format: 00000010: 00 00 0f a0 00 07 53 02 10 00 00 00 01 68 eb 8f  ......S......h..
0:00:00.140614605  5785 0x75109c011560 MEMDUMP                 WINE wg_media_type.c:409:caps_from_video_format: 00000020: 20                                                               
0:00:00.140616645  5785 0x75109c011560 MEMDUMP                 WINE wg_media_type.c:409:caps_from_video_format: ---------------------------------------------------------------------------
0:00:00.140634805  5785 0x75109c011560 TRACE                   WINE wg_media_type.c:454:caps_from_media_type: caps video/x-h264, codec_data=(buffer)00000001674d4034959003c0043ec04400000fa000075302100000000168eb8f20, stream-format=(string)byte-stream, alignment=(string)au
0:00:00.140639805  5785 0x75109c011560 INFO                    WINE wg_transform.c:553:wg_transform_create: transform 0x75109c450420 input caps video/x-h264, codec_data=(buffer)00000001674d4034959003c0043ec04400000fa000075302100000000168eb8f20, stream-format=(string)byte-stream, alignment=(string)au
0:00:00.140645455  5785 0x75109c011560 TRACE                   WINE wg_media_type.c:404:caps_from_video_format: subtype {3231564e-0000-0010-8000-00aa00389b71} 1920x1080, FPS 30000:1001, aperture (0,0)-(1920,1080), PAR 1:1, videoFlags 0.
0:00:00.140654825  5785 0x75109c011560 TRACE                   WINE wg_media_type.c:454:caps_from_media_type: caps video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30000/1001
0:00:00.140658635  5785 0x75109c011560 INFO                    WINE wg_transform.c:558:wg_transform_create: transform 0x75109c450420 output caps video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30000/1001
0:00:00.140661415  5785 0x75109c011560 LOG                     WINE unix_private.h:133:touch_h264_used_tag: h264 is used
0:00:00.140663525  5785 0x75109c011560 WARN                    WINE unix_private.h:155:touch_h264_used_tag: STEAM_COMPAT_SHADER_PATH not set, cannot create h264-used file
0:00:00.141097235  5785 0x75109c011560 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "h264parse"
0:00:00.141106796  5785 0x75109c011560 INFO        GST_ELEMENT_PADS gstelement.c:758:gst_element_add_pad:<GstBaseParse@0x75109c452b50> adding pad 'sink'
0:00:00.141111416  5785 0x75109c011560 INFO        GST_ELEMENT_PADS gstelement.c:758:gst_element_add_pad:<GstBaseParse@0x75109c452b50> adding pad 'src'
0:00:00.141117106  5785 0x75109c011560 INFO               baseparse gstbaseparse.c:4067:gst_base_parse_set_pts_interpolation:<GstH264Parse@0x75109c452b50> PTS interpolation: no
0:00:00.141119576  5785 0x75109c011560 INFO               baseparse gstbaseparse.c:4085:gst_base_parse_set_infer_ts:<GstH264Parse@0x75109c452b50> TS inferring: no
0:00:00.141124496  5785 0x75109c011560 INFO                    WINE unixlib.c:88:factory_create_element: Created element <h264parse1> from factory <h264parse>.
0:00:00.141136096  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2824:gst_element_continue_state:<h264parse1> completed state change to NULL
0:00:00.141139056  5785 0x75109c011560 DEBUG                   WINE unixlib.c:182:append_element: Linked h264parse1 element 0x75109c452b50.
0:00:00.141433556  5785 0x75109c011560 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "avdec_h264"
0:00:00.141446256  5785 0x75109c011560 INFO        GST_ELEMENT_PADS gstelement.c:758:gst_element_add_pad:<GstVideoDecoder@0x75109c456250> adding pad 'sink'
0:00:00.141450086  5785 0x75109c011560 INFO        GST_ELEMENT_PADS gstelement.c:758:gst_element_add_pad:<GstVideoDecoder@0x75109c456250> adding pad 'src'
0:00:00.141456956  5785 0x75109c011560 INFO                    WINE unixlib.c:88:factory_create_element: Created element <avdec_h264-1> from factory <avdec_h264>.
0:00:00.141462416  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2824:gst_element_continue_state:<avdec_h264-1> completed state change to NULL
0:00:00.141466106  5785 0x75109c011560 INFO        GST_ELEMENT_PADS gstutils.c:1818:gst_element_link_pads_full: trying to link element h264parse1:(any) to element avdec_h264-1:(any)
0:00:00.141470586  5785 0x75109c011560 INFO                GST_PADS gstutils.c:1080:gst_pad_check_link: trying to link h264parse1:src and avdec_h264-1:sink
0:00:00.141478596  5785 0x75109c011560 INFO                GST_PADS gstpad.c:4398:gst_pad_peer_query:<avdec_h264-1:src> pad has no peer
0:00:00.141492236  5785 0x75109c011560 INFO                GST_PADS gstutils.c:1634:prepare_link_maybe_ghosting: h264parse1 and avdec_h264-1 in same bin, no need for ghost pads
0:00:00.141497766  5785 0x75109c011560 INFO                GST_PADS gstpad.c:2440:gst_pad_link_prepare: trying to link h264parse1:src and avdec_h264-1:sink
0:00:00.141501496  5785 0x75109c011560 INFO                GST_PADS gstpad.c:4398:gst_pad_peer_query:<avdec_h264-1:src> pad has no peer
0:00:00.141508966  5785 0x75109c011560 INFO                GST_PADS gstpad.c:2621:gst_pad_link_full: linked h264parse1:src and avdec_h264-1:sink, successful
0:00:00.141511306  5785 0x75109c011560 INFO               GST_EVENT gstevent.c:1687:gst_event_new_reconfigure: creating reconfigure event
0:00:00.141514446  5785 0x75109c011560 INFO               GST_EVENT gstpad.c:6017:gst_pad_send_event_unchecked:<h264parse1:src> Received event on flushing pad. Discarding
0:00:00.141518866  5785 0x75109c011560 DEBUG                   WINE unixlib.c:182:append_element: Linked avdec_h264-1 element 0x75109c456250.
0:00:00.141522436  5785 0x75109c011560 DEBUG                   WINE unixlib.c:388:set_max_threads: avdec_h264 found, setting max-threads to 16.
0:00:00.141526716  5785 0x75109c011560 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "videoconvert"
0:00:00.141532816  5785 0x75109c011560 INFO        GST_ELEMENT_PADS gstelement.c:758:gst_element_add_pad:<GstBaseTransform@0x75109c459d90> adding pad 'sink'
0:00:00.141537046  5785 0x75109c011560 INFO        GST_ELEMENT_PADS gstelement.c:758:gst_element_add_pad:<GstBaseTransform@0x75109c459d90> adding pad 'src'
0:00:00.141545576  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2824:gst_element_continue_state:<videoconvert1> completed state change to NULL
0:00:00.141548556  5785 0x75109c011560 INFO        GST_ELEMENT_PADS gstutils.c:1818:gst_element_link_pads_full: trying to link element avdec_h264-1:(any) to element videoconvert1:(any)
0:00:00.141551616  5785 0x75109c011560 INFO                GST_PADS gstutils.c:1080:gst_pad_check_link: trying to link avdec_h264-1:src and videoconvert1:sink
0:00:00.141555836  5785 0x75109c011560 INFO                GST_PADS gstpad.c:4398:gst_pad_peer_query:<videoconvert1:src> pad has no peer
0:00:00.141877366  5785 0x75109c011560 INFO                GST_PADS gstutils.c:1634:prepare_link_maybe_ghosting: avdec_h264-1 and videoconvert1 in same bin, no need for ghost pads
0:00:00.141882536  5785 0x75109c011560 INFO                GST_PADS gstpad.c:2440:gst_pad_link_prepare: trying to link avdec_h264-1:src and videoconvert1:sink
0:00:00.141886406  5785 0x75109c011560 INFO                GST_PADS gstpad.c:4398:gst_pad_peer_query:<videoconvert1:src> pad has no peer
0:00:00.142186096  5785 0x75109c011560 INFO                GST_PADS gstpad.c:2621:gst_pad_link_full: linked avdec_h264-1:src and videoconvert1:sink, successful
0:00:00.142188406  5785 0x75109c011560 INFO               GST_EVENT gstevent.c:1687:gst_event_new_reconfigure: creating reconfigure event
0:00:00.142191176  5785 0x75109c011560 INFO               GST_EVENT gstpad.c:6017:gst_pad_send_event_unchecked:<avdec_h264-1:src> Received event on flushing pad. Discarding
0:00:00.142196116  5785 0x75109c011560 DEBUG                   WINE unixlib.c:182:append_element: Linked videoconvert1 element 0x75109c459d90.
0:00:00.142202306  5785 0x75109c011560 INFO                GST_PADS gstutils.c:1080:gst_pad_check_link: trying to link '':src and h264parse1:sink
0:00:00.142204816  5785 0x75109c011560 INFO                GST_PADS gstutils.c:1104:gst_pad_check_link: Src pad '':src has no parent, failed
0:00:00.142210466  5785 0x75109c011560 TRACE                   WINE wg_transform.c:296:transform_src_query_cb: transform 0x75109c450420, ignoring caps query: 0x75109c457e70, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
0:00:00.142217066  5785 0x75109c011560 INFO        GST_ELEMENT_PADS gstelement.c:1016:gst_element_get_static_pad: found pad h264parse1:sink
0:00:00.142220966  5785 0x75109c011560 INFO                GST_PADS gstpad.c:2440:gst_pad_link_prepare: trying to link '':src and h264parse1:sink
0:00:00.142224446  5785 0x75109c011560 TRACE                   WINE wg_transform.c:296:transform_src_query_cb: transform 0x75109c450420, ignoring caps query: 0x75109c457e70, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
0:00:00.142228986  5785 0x75109c011560 INFO                GST_PADS gstpad.c:4398:gst_pad_peer_query:<videoconvert1:src> pad has no peer
0:00:00.142853977  5785 0x75109c011560 INFO                GST_PADS gstpad.c:2621:gst_pad_link_full: linked '':src and h264parse1:sink, successful
0:00:00.142858437  5785 0x75109c011560 INFO               GST_EVENT gstevent.c:1687:gst_event_new_reconfigure: creating reconfigure event
0:00:00.142861537  5785 0x75109c011560 INFO               GST_EVENT gstpad.c:6017:gst_pad_send_event_unchecked:<'':src> Received event on flushing pad. Discarding
0:00:00.142865337  5785 0x75109c011560 INFO                GST_PADS gstutils.c:1080:gst_pad_check_link: trying to link videoconvert1:src and '':sink
0:00:00.142867867  5785 0x75109c011560 INFO                GST_PADS gstutils.c:1109:gst_pad_check_link: Sink pad videoconvert1:src has no parent, failed
0:00:00.142872227  5785 0x75109c011560 LOG                     WINE wg_transform.c:387:transform_sink_query_caps: transform 0x75109c450420, caps query: 0x75109c458b50, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
0:00:00.142877637  5785 0x75109c011560 INFO                    WINE wg_transform.c:403:transform_sink_query_caps: Returning caps video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080
0:00:00.142886257  5785 0x75109c011560 INFO        GST_ELEMENT_PADS gstelement.c:1016:gst_element_get_static_pad: found pad videoconvert1:src
0:00:00.142890967  5785 0x75109c011560 INFO                GST_PADS gstpad.c:2440:gst_pad_link_prepare: trying to link videoconvert1:src and '':sink
0:00:00.143357917  5785 0x75109c011560 LOG                     WINE wg_transform.c:387:transform_sink_query_caps: transform 0x75109c450420, caps query: 0x75109c458b50, GstQueryCaps, filter=(GstCaps)"NULL", caps=(GstCaps)"NULL";
0:00:00.143363167  5785 0x75109c011560 INFO                    WINE wg_transform.c:403:transform_sink_query_caps: Returning caps video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080
0:00:00.143373667  5785 0x75109c011560 INFO                GST_PADS gstpad.c:2621:gst_pad_link_full: linked videoconvert1:src and '':sink, successful
0:00:00.143375667  5785 0x75109c011560 INFO               GST_EVENT gstevent.c:1687:gst_event_new_reconfigure: creating reconfigure event
0:00:00.143378097  5785 0x75109c011560 INFO               GST_EVENT gstpad.c:6017:gst_pad_send_event_unchecked:<videoconvert1:src> Received event on flushing pad. Discarding
0:00:00.143388667  5785 0x75109c011560 INFO              GST_STATES gstbin.c:2480:gst_bin_element_set_state:<videoconvert1> current NULL pending VOID_PENDING, desired next READY
0:00:00.143391737  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2824:gst_element_continue_state:<videoconvert1> completed state change to READY
0:00:00.143394377  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2724:_priv_gst_element_state_changed:<videoconvert1> notifying about state-changed NULL to READY (VOID_PENDING pending)
0:00:00.143398877  5785 0x75109c011560 INFO              GST_STATES gstbin.c:2939:gst_bin_change_state_func:<wg_transform> child 'videoconvert1' changed state to 2(READY) successfully
0:00:00.143402047  5785 0x75109c011560 INFO              GST_STATES gstbin.c:2480:gst_bin_element_set_state:<avdec_h264-1> current NULL pending VOID_PENDING, desired next READY
0:00:00.143404597  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2824:gst_element_continue_state:<avdec_h264-1> completed state change to READY
0:00:00.143407277  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2724:_priv_gst_element_state_changed:<avdec_h264-1> notifying about state-changed NULL to READY (VOID_PENDING pending)
0:00:00.143410487  5785 0x75109c011560 INFO              GST_STATES gstbin.c:2939:gst_bin_change_state_func:<wg_transform> child 'avdec_h264-1' changed state to 2(READY) successfully
0:00:00.143413207  5785 0x75109c011560 INFO              GST_STATES gstbin.c:2480:gst_bin_element_set_state:<h264parse1> current NULL pending VOID_PENDING, desired next READY
0:00:00.143415557  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2824:gst_element_continue_state:<h264parse1> completed state change to READY
0:00:00.143417827  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2724:_priv_gst_element_state_changed:<h264parse1> notifying about state-changed NULL to READY (VOID_PENDING pending)
0:00:00.143421067  5785 0x75109c011560 INFO              GST_STATES gstbin.c:2939:gst_bin_change_state_func:<wg_transform> child 'h264parse1' changed state to 2(READY) successfully
0:00:00.143424797  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2796:gst_element_continue_state:<wg_transform> committing state from NULL to READY, pending PAUSED, next PAUSED
0:00:00.143432117  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2724:_priv_gst_element_state_changed:<wg_transform> notifying about state-changed NULL to READY (PAUSED pending)
0:00:00.143436077  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2804:gst_element_continue_state:<wg_transform> continue state change READY to PAUSED, final PAUSED
0:00:00.143440617  5785 0x75109c011560 INFO              GST_STATES gstbin.c:2480:gst_bin_element_set_state:<videoconvert1> current READY pending VOID_PENDING, desired next PAUSED
0:00:00.143445227  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2824:gst_element_continue_state:<videoconvert1> completed state change to PAUSED
0:00:00.143447637  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2724:_priv_gst_element_state_changed:<videoconvert1> notifying about state-changed READY to PAUSED (VOID_PENDING pending)
0:00:00.143450957  5785 0x75109c011560 INFO              GST_STATES gstbin.c:2939:gst_bin_change_state_func:<wg_transform> child 'videoconvert1' changed state to 3(PAUSED) successfully
0:00:00.143453877  5785 0x75109c011560 INFO              GST_STATES gstbin.c:2480:gst_bin_element_set_state:<avdec_h264-1> current READY pending VOID_PENDING, desired next PAUSED
0:00:00.143459627  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2824:gst_element_continue_state:<avdec_h264-1> completed state change to PAUSED
0:00:00.143461987  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2724:_priv_gst_element_state_changed:<avdec_h264-1> notifying about state-changed READY to PAUSED (VOID_PENDING pending)
0:00:00.143465207  5785 0x75109c011560 INFO              GST_STATES gstbin.c:2939:gst_bin_change_state_func:<wg_transform> child 'avdec_h264-1' changed state to 3(PAUSED) successfully
0:00:00.143467927  5785 0x75109c011560 INFO              GST_STATES gstbin.c:2480:gst_bin_element_set_state:<h264parse1> current READY pending VOID_PENDING, desired next PAUSED
0:00:00.143480667  5785 0x75109c011560 TRACE                   WINE wg_transform.c:296:transform_src_query_cb: transform 0x75109c450420, ignoring scheduling query: 0x75109c5afe60, GstQueryScheduling, flags=(GstSchedulingFlags)0, minsize=(int)1, maxsize=(int)-1, align=(int)0;
0:00:00.143518127  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2824:gst_element_continue_state:<h264parse1> completed state change to PAUSED
0:00:00.143521047  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2724:_priv_gst_element_state_changed:<h264parse1> notifying about state-changed READY to PAUSED (VOID_PENDING pending)
0:00:00.143524617  5785 0x75109c011560 INFO              GST_STATES gstbin.c:2939:gst_bin_change_state_func:<wg_transform> child 'h264parse1' changed state to 3(PAUSED) successfully
0:00:00.143527797  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2824:gst_element_continue_state:<wg_transform> completed state change to PAUSED
0:00:00.143530107  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2724:_priv_gst_element_state_changed:<wg_transform> notifying about state-changed READY to PAUSED (VOID_PENDING pending)
0:00:00.143533067  5785 0x75109c011560 INFO              GST_STATES gstbin.c:2070:gst_bin_get_state_func:<wg_transform> getting state
0:00:00.143543047  5785 0x75109c011560 TRACE                   WINE wg_transform.c:457:transform_sink_event_cb: transform 0x75109c450420, ignoring stream-start event: 0x75109c45ce50, time 99:99:99.999999999, seq-num 56, GstEventStreamStart, stream-id=(string)stream, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE;
0:00:00.143550247  5785 0x75109c011560 INFO               GST_EVENT gstevent.c:918:gst_event_new_caps: creating caps event video/x-h264, codec_data=(buffer)00000001674d4034959003c0043ec04400000fa000075302100000000168eb8f20, stream-format=(string)byte-stream, alignment=(string)au
0:00:00.143557737  5785 0x75109c011560 WARN               h264parse gsth264parse.c:3707:gst_h264_parse_set_caps:<h264parse1> H.264 bytestream caps with codec_data is not expected, send SPS/PPS in-band with data or in streamheader field
0:00:00.143562297  5785 0x75109c011560 WARN               h264parse gsth264parse.c:3718:gst_h264_parse_set_caps:<h264parse1> refused caps video/x-h264, codec_data=(buffer)00000001674d4034959003c0043ec04400000fa000075302100000000168eb8f20, stream-format=(string)byte-stream, alignment=(string)au
0:00:00.143567117  5785 0x75109c011560 INFO        GST_ELEMENT_PADS gstpad.c:2145:gst_pad_unlink: unlinking videoconvert1:src(0x75109c458010) and '':sink(0x75109c452470)
0:00:00.143571067  5785 0x75109c011560 INFO        GST_ELEMENT_PADS gstpad.c:2200:gst_pad_unlink: unlinked videoconvert1:src and '':sink
0:00:00.143577057  5785 0x75109c011560 INFO        GST_ELEMENT_PADS gstpad.c:2145:gst_pad_unlink: unlinking '':src(0x75109c452180) and h264parse1:sink(0x75109c453960)
0:00:00.143579737  5785 0x75109c011560 INFO        GST_ELEMENT_PADS gstpad.c:2200:gst_pad_unlink: unlinked '':src and h264parse1:sink
0:00:00.143583947  5785 0x75109c011560 LOG                     WINE wg_allocator.c:264:wg_allocator_destroy: allocator 0x75109c450ea0
0:00:00.143586537  5785 0x75109c011560 LOG                     WINE wg_allocator.c:175:wg_allocator_finalize: allocator 0x75109c450ea0
0:00:00.143588757  5785 0x75109c011560 INFO                    WINE wg_allocator.c:273:wg_allocator_destroy: Destroyed buffer allocator 0x75109c450ea0
0:00:00.143594277  5785 0x75109c011560 INFO              GST_STATES gstbin.c:2480:gst_bin_element_set_state:<videoconvert1> current PAUSED pending VOID_PENDING, desired next READY
0:00:00.143599107  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2824:gst_element_continue_state:<videoconvert1> completed state change to READY
0:00:00.143601527  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2724:_priv_gst_element_state_changed:<videoconvert1> notifying about state-changed PAUSED to READY (VOID_PENDING pending)
0:00:00.143605057  5785 0x75109c011560 INFO              GST_STATES gstbin.c:2939:gst_bin_change_state_func:<wg_transform> child 'videoconvert1' changed state to 2(READY) successfully
0:00:00.143607827  5785 0x75109c011560 INFO              GST_STATES gstbin.c:2480:gst_bin_element_set_state:<avdec_h264-1> current PAUSED pending VOID_PENDING, desired next READY
0:00:00.143613577  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2824:gst_element_continue_state:<avdec_h264-1> completed state change to READY
0:00:00.143615847  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2724:_priv_gst_element_state_changed:<avdec_h264-1> notifying about state-changed PAUSED to READY (VOID_PENDING pending)
0:00:00.143618957  5785 0x75109c011560 INFO              GST_STATES gstbin.c:2939:gst_bin_change_state_func:<wg_transform> child 'avdec_h264-1' changed state to 2(READY) successfully
0:00:00.143621567  5785 0x75109c011560 INFO              GST_STATES gstbin.c:2480:gst_bin_element_set_state:<h264parse1> current PAUSED pending VOID_PENDING, desired next READY
0:00:00.143631497  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2824:gst_element_continue_state:<h264parse1> completed state change to READY
0:00:00.143633937  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2724:_priv_gst_element_state_changed:<h264parse1> notifying about state-changed PAUSED to READY (VOID_PENDING pending)
0:00:00.143637187  5785 0x75109c011560 INFO              GST_STATES gstbin.c:2939:gst_bin_change_state_func:<wg_transform> child 'h264parse1' changed state to 2(READY) successfully
0:00:00.143640537  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2796:gst_element_continue_state:<wg_transform> committing state from PAUSED to READY, pending NULL, next NULL
0:00:00.143642887  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2724:_priv_gst_element_state_changed:<wg_transform> notifying about state-changed PAUSED to READY (NULL pending)
0:00:00.143645727  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2804:gst_element_continue_state:<wg_transform> continue state change READY to NULL, final NULL
0:00:00.143649567  5785 0x75109c011560 INFO              GST_STATES gstbin.c:2480:gst_bin_element_set_state:<videoconvert1> current READY pending VOID_PENDING, desired next NULL
0:00:00.143652527  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2824:gst_element_continue_state:<videoconvert1> completed state change to NULL
0:00:00.143654947  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2724:_priv_gst_element_state_changed:<videoconvert1> notifying about state-changed READY to NULL (VOID_PENDING pending)
0:00:00.143658137  5785 0x75109c011560 INFO              GST_STATES gstbin.c:2939:gst_bin_change_state_func:<wg_transform> child 'videoconvert1' changed state to 1(NULL) successfully
0:00:00.143660947  5785 0x75109c011560 INFO              GST_STATES gstbin.c:2480:gst_bin_element_set_state:<avdec_h264-1> current READY pending VOID_PENDING, desired next NULL
0:00:00.143663877  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2824:gst_element_continue_state:<avdec_h264-1> completed state change to NULL
0:00:00.143666077  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2724:_priv_gst_element_state_changed:<avdec_h264-1> notifying about state-changed READY to NULL (VOID_PENDING pending)
0:00:00.143669217  5785 0x75109c011560 INFO              GST_STATES gstbin.c:2939:gst_bin_change_state_func:<wg_transform> child 'avdec_h264-1' changed state to 1(NULL) successfully
0:00:00.143671717  5785 0x75109c011560 INFO              GST_STATES gstbin.c:2480:gst_bin_element_set_state:<h264parse1> current READY pending VOID_PENDING, desired next NULL
0:00:00.143674517  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2824:gst_element_continue_state:<h264parse1> completed state change to NULL
0:00:00.143676697  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2724:_priv_gst_element_state_changed:<h264parse1> notifying about state-changed READY to NULL (VOID_PENDING pending)
0:00:00.143679777  5785 0x75109c011560 INFO              GST_STATES gstbin.c:2939:gst_bin_change_state_func:<wg_transform> child 'h264parse1' changed state to 1(NULL) successfully
0:00:00.143682457  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2824:gst_element_continue_state:<wg_transform> completed state change to NULL
0:00:00.143684697  5785 0x75109c011560 INFO              GST_STATES gstelement.c:2724:_priv_gst_element_state_changed:<wg_transform> notifying about state-changed READY to NULL (VOID_PENDING pending)
0:00:00.143689597  5785 0x75109c011560 INFO        GST_ELEMENT_PADS gstpad.c:2145:gst_pad_unlink: unlinking avdec_h264-1:src(0x75109c456910) and videoconvert1:sink(0x75109c4585e0)
0:00:00.143692887  5785 0x75109c011560 INFO        GST_ELEMENT_PADS gstpad.c:2200:gst_pad_unlink: unlinked avdec_h264-1:src and videoconvert1:sink
0:00:00.143696137  5785 0x75109c011560 INFO           GST_PARENTAGE gstbin.c:1805:gst_bin_remove_func:<wg_transform> removed child "videoconvert1"
0:00:00.143700837  5785 0x75109c011560 INFO         GST_REFCOUNTING gstelement.c:3400:gst_element_dispose:<videoconvert1> 0x75109c459d90 dispose
0:00:00.143703117  5785 0x75109c011560 INFO        GST_ELEMENT_PADS gstelement.c:875:gst_element_remove_pad:<videoconvert1> removing pad 'sink'
0:00:00.143706517  5785 0x75109c011560 INFO        GST_ELEMENT_PADS gstelement.c:875:gst_element_remove_pad:<videoconvert1> removing pad 'src'
0:00:00.143709297  5785 0x75109c011560 INFO         GST_REFCOUNTING gstelement.c:3446:gst_element_dispose:<videoconvert1> 0x75109c459d90 parent class dispose
0:00:00.143711977  5785 0x75109c011560 INFO         GST_REFCOUNTING gstelement.c:3478:gst_element_finalize:<videoconvert1> 0x75109c459d90 finalize
0:00:00.143713997  5785 0x75109c011560 INFO         GST_REFCOUNTING gstelement.c:3483:gst_element_finalize:<videoconvert1> 0x75109c459d90 finalize parent
0:00:00.143717187  5785 0x75109c011560 INFO        GST_ELEMENT_PADS gstpad.c:2145:gst_pad_unlink: unlinking h264parse1:src(0x75109c453bb0) and avdec_h264-1:sink(0x75109c4566c0)
0:00:00.143720287  5785 0x75109c011560 INFO        GST_ELEMENT_PADS gstpad.c:2200:gst_pad_unlink: unlinked h264parse1:src and avdec_h264-1:sink
0:00:00.143723277  5785 0x75109c011560 INFO           GST_PARENTAGE gstbin.c:1805:gst_bin_remove_func:<wg_transform> removed child "avdec_h264-1"
0:00:00.143726017  5785 0x75109c011560 INFO         GST_REFCOUNTING gstelement.c:3400:gst_element_dispose:<avdec_h264-1> 0x75109c456250 dispose
0:00:00.143728017  5785 0x75109c011560 INFO        GST_ELEMENT_PADS gstelement.c:875:gst_element_remove_pad:<avdec_h264-1> removing pad 'sink'
0:00:00.143730497  5785 0x75109c011560 INFO        GST_ELEMENT_PADS gstelement.c:875:gst_element_remove_pad:<avdec_h264-1> removing pad 'src'
0:00:00.143733257  5785 0x75109c011560 INFO         GST_REFCOUNTING gstelement.c:3446:gst_element_dispose:<avdec_h264-1> 0x75109c456250 parent class dispose
0:00:00.143736687  5785 0x75109c011560 INFO         GST_REFCOUNTING gstelement.c:3478:gst_element_finalize:<avdec_h264-1> 0x75109c456250 finalize
0:00:00.143738597  5785 0x75109c011560 INFO         GST_REFCOUNTING gstelement.c:3483:gst_element_finalize:<avdec_h264-1> 0x75109c456250 finalize parent
0:00:00.143741897  5785 0x75109c011560 INFO           GST_PARENTAGE gstbin.c:1805:gst_bin_remove_func:<wg_transform> removed child "h264parse1"
0:00:00.143744547  5785 0x75109c011560 INFO         GST_REFCOUNTING gstelement.c:3400:gst_element_dispose:<h264parse1> 0x75109c452b50 dispose
0:00:00.143746487  5785 0x75109c011560 INFO        GST_ELEMENT_PADS gstelement.c:875:gst_element_remove_pad:<h264parse1> removing pad 'sink'
0:00:00.143748917  5785 0x75109c011560 INFO        GST_ELEMENT_PADS gstelement.c:875:gst_element_remove_pad:<h264parse1> removing pad 'src'
0:00:00.143751587  5785 0x75109c011560 INFO         GST_REFCOUNTING gstelement.c:3446:gst_element_dispose:<h264parse1> 0x75109c452b50 parent class dispose
0:00:00.143755697  5785 0x75109c011560 INFO         GST_REFCOUNTING gstelement.c:3478:gst_element_finalize:<h264parse1> 0x75109c452b50 finalize
0:00:00.143757677  5785 0x75109c011560 INFO         GST_REFCOUNTING gstelement.c:3483:gst_element_finalize:<h264parse1> 0x75109c452b50 finalize parent
0:00:00.143759797  5785 0x75109c011560 INFO         GST_REFCOUNTING gstelement.c:3400:gst_element_dispose:<wg_transform> 0x75109c4508e0 dispose
0:00:00.143761737  5785 0x75109c011560 INFO         GST_REFCOUNTING gstelement.c:3446:gst_element_dispose:<wg_transform> 0x75109c4508e0 parent class dispose
0:00:00.143763697  5785 0x75109c011560 INFO         GST_REFCOUNTING gstelement.c:3478:gst_element_finalize:<wg_transform> 0x75109c4508e0 finalize
0:00:00.143765657  5785 0x75109c011560 INFO         GST_REFCOUNTING gstelement.c:3483:gst_element_finalize:<wg_transform> 0x75109c4508e0 finalize parent
**0:00:00.143767757  5785 0x75109c011560 ERROR                   WINE wg_transform.c:757:wg_transform_create: Failed to create winegstreamer transform.**

I'm testing on Arch Linux, fully updated with a 6900XT. Gstreamer is installed and working in other applications (and older builds of experimental).

Is this a known issue? Is it supposed to work in tandem with some other component in proton that I'm missing? Am I missing some library?

@rbernon
Copy link
Collaborator

rbernon commented Jul 16, 2024

No, it's supposed to work but we also use a limited number of GStreamer plugins so it's possible that it broke with a wider set. It looks like for instance that h264parse is unhappy here, we don't have it in Proton.

Does a patch like this helps?

diff --git a/dlls/winegstreamer/wg_media_type.c b/dlls/winegstreamer/wg_media_type.c
index f45ba294a2c..c610ae17c32 100644
--- a/dlls/winegstreamer/wg_media_type.c
+++ b/dlls/winegstreamer/wg_media_type.c
@@ -302,7 +302,7 @@ static void init_caps_from_video_h264(GstCaps *caps, const MFVIDEOFORMAT *format
 
     gst_structure_remove_field(gst_caps_get_structure(caps, 0), "format");
     gst_structure_set_name(gst_caps_get_structure(caps, 0), "video/x-h264");
-    gst_caps_set_simple(caps, "stream-format", G_TYPE_STRING, "byte-stream", NULL);
+    gst_caps_set_simple(caps, "stream-format", G_TYPE_STRING, format_size - sizeof(*format) ? "avc" : "byte-stream", NULL);
     gst_caps_set_simple(caps, "alignment", G_TYPE_STRING, "au", NULL);
 }
 

@adolfintel
Copy link
Author

@rnbrznr That doesn't work unfortunately, it gives the same exact error. I also tried hardcoding that "avc" string just to be safe, no effect. I quickly added a breakpoint to see if that code was even being executed and it looks like it's not so there must be a problem earlier on, maybe it doesn't detect that it's h264?

@adolfintel
Copy link
Author

Just retested after today's commits, it's still broken. h264, h265, vp8, vp9, nothing plays in both games and applications.

@rnbrznr how are you building and testing your new code? I must be doing something wrong...

@rbernon
Copy link
Collaborator

rbernon commented Jul 19, 2024

Sorry, we're not really testing with full-featured GStreamer, so it might be broken in some ways. It's not very much a supported use case, although I would obviously like it work for Wine upstream. Please note that whatever is in bleeding-edge is also very experimental and only there to get some wider feedback. I will suggest to simply not include the changes in your build if they are causing problems.

The change I suggested should help as far as I can see from your log 0:00:00.143557737 5785 0x75109c011560 WARN h264parse gsth264parse.c:3707:gst_h264_parse_set_caps:<h264parse1> H.264 bytestream caps with codec_data is not expected, send SPS/PPS in-band with data or in streamheader field. I've seen it locally when working on patches for upstream, but I don't know why the fix doesn't work for you.

@adolfintel
Copy link
Author

I know experimental is just for testing, that's why I build it regularly, to check for regressions, stability, compatibility with new games, etc.

I asked because it seems odd that everything I throw at it doesn't work, I want to be sure that I'm not building or using it wrong.

What applications and videos are you testing it with?

@daegalus
Copy link

This issue is also affecting games like Throne and Liberty on Steam. Ingame videos dont work on experimental.

@adolfintel
Copy link
Author

@daegalus These commits are not in experimental yet, they're only in bleeding-edge. If it works with stable, some other change must have broken that game, if you have the time you should do a bisect and find out the exact commit.

@adolfintel
Copy link
Author

It looks like this was fixed a few days ago, @rbernon can you confirm?

@alasky17
Copy link
Contributor

alasky17 commented Aug 9, 2024

@adolfintel The new media source work was temporarily pulled from bleeding edge in order to work on it more and fix some found regressions. It will likely be back within a couple of weeks.

@adolfintel
Copy link
Author

Thanks for the heads up @alasky17

Will you leave the WINE_NEW_MEDIA_SOURCE variable for regression testing?

@alasky17
Copy link
Contributor

@adolfintel Disabling WINE_NEW_MEDIA_SOURCE with the variable will be impossible with the degree to which the media code is being altered by the new patches (as you might have already noticed when it was in bleeding-edge last month). However, the new media source will not be in a stable release for a long time so that folks have a fallback while we fix regressions (as well as a version to regression-check against :). While the new media source changes are only in bleeding-edge (which will be a lot more time than usual) folks can also compare bleeding-edge to "regular experimental" when determining if something is regressive.

@adolfintel
Copy link
Author

Looks like the new media source has been deployed, and it works :)

I noticed that some games play H264 videos with the wrong color space though, they look washed out.

@ivyl
Copy link
Collaborator

ivyl commented Sep 5, 2024

Which games? Knowing what's affected would help with troubleshooting.

@adolfintel
Copy link
Author

adolfintel commented Sep 5, 2024

Of the ones that I have tried so far, A Plague Tale Requiem (immediately visible in the intro videos) and a non-steam indie game based on stepmania.

I'm very interested in the new media source and I'll be testing every game in my library for regressions. I'll update this post if I find any problem.

Update 1: Trombone Champ (Unity 2019) also has washed out colors playing H264 videos

Update 2: UE4/5 have no issues with H264

@KeyofBlueS
Copy link

With the reintroduction of the new media source, the game Ghostbusters: The Video Game Remastered is now able to play 4K MP4 videos! However, some videos display a green bar at the bottom.

1449280_20240905230237_1

From what I understand (though I haven't personally tested this), this issue wasn't present in the initial implementation of the new media source, all videos played without problems back then.

Additionally, attempting to play the "Bonus Commercial Footage" video from the "Extras > Videos" section causes the game to crash.

@adolfintel
Copy link
Author

Can confirm the issue with Ghostbusters Remastered. It's minor but it's there

@alasky17
Copy link
Contributor

alasky17 commented Sep 9, 2024

@adolfintel I'm not seeing any washed out colors with Plague Tale: Requiem with my "standard" setup. Could you upload some side-by-side screenshots of where you see the issue? Also, are you still using the same setup as before with full-featured Gstreamer etc?

@adolfintel
Copy link
Author

Yes, I'm still using a full gstreamer. I haven't seen many issues to be honest, if anything the new media source has improved compatibility with some games like starship troopers that didn't want to play videos in crappy formats like wmv.

Anyway, screenshot of requiem with the current bleeding-edge:
Screenshot_20240909_193922

Same intro video in proton stable:
Screenshot_20240909_194033

I see the same washed out colors in the handful of unity games that use mp4 as well, but I haven't found other games with this issue.

@alasky17
Copy link
Contributor

alasky17 commented Sep 9, 2024

@KeyofBlueS I'm not seeing the green stripe. Could you please copy your system information from Steam (Steam -> Help -> System Information and Steam -> Help -> Steam Runtime Diagnostics) and put each in a gist, then include a link to the gists? Are you also using the full gstreamer setup instead of the official Proton one?

Also - I don't have access to that bonus video :( If there is a way for you to upload the game files so that I can get access, that would be really helpful :)

@alasky17
Copy link
Contributor

alasky17 commented Sep 9, 2024

@adolfintel Thank you for the screenshots! I see it now -- will investigate further :)

@KeyofBlueS
Copy link

Hi @alasky17, thanks for getting back!

Here are the logs you requested:
System Information
Steam Runtime Diagnostics

I dont know about gstreamer, I believe I'm using the official Proton setup.

When you mentioned "upload the game files", were you referring to that specific video? If so, you can find it in your game files at steamapps/common/Ghostbusters The Video Game Remastered/video/BR_commercial.mp4.

Or did you mean a savegame where that extra content is unlocked? If that's the case, I've attached it here:
gbtvgr_savefile.zip

Just extract the archive and place the files in "${HOME}/.local/share/Steam/steamapps/compatdata/1449280/pfx/drive_c/users/steamuser/Documents/GHOSTBUSTERS/"

Let me know if there's anything else you need!

@alasky17
Copy link
Contributor

@adolfintel The "washed out" issue with some videos like Plague Tale Requiem should be fixed with current bleeding-edge. Please let me know if you see this with any other games! (and exactly where in the games so I can repro easily :). A feature needed to be implemented for a particular video type, and there could be other video types that need something similar that we've missed. Thank you again for your attention to detail and reporting!

@alasky17
Copy link
Contributor

@KeyofBlueS Thank you! That is exactly what I was asking for :) Weirdly, I'm not seeing the green stripe OR the crash on the bonus videos with your save (which worked for me to test the right bit, thanks again!!!) ... Could you get 2 logs with both failures? It would be really great if you can get one log with current experimental (not-bleeding-edge) and one with bleeding-edge so that we have something to compare against. Please use PROTON_LOG=+quartz,+strmbase,+strmbase_qc,+gstreamer,+amstream,+qcap,+qcap_v4l,+qedit,+mciqtz,+mci,+mfplat,+gstreamer,+evr,+dxva2,+wmvcore %command%

@KeyofBlueS
Copy link

Here are the Proton logs you requested!

steam-1449280_proton_logs.zip

Please note that when using the standard Proton Experimental, the game plays lower resolution OGV videos. Only with the current Proton Bleeding-Edge it plays higher resolution MP4 videos.

Additionally, when capturing the Proton bleeding-edge log, the game doesn't "crash to desktop" at the bonus video; instead, it freezes on a black screen, requiring a forced stop. In this scenario, the Proton log file grows significantly in size (I stopped the game as quickly as possible, within a few seconds, but the log still ended up being around 550MB), which is why I've compressed and uploaded the logs in a zip file.

Thank you for taking the time to look into this issue. I appreciate your help!

@adolfintel
Copy link
Author

@alasky17 Both APT Requiem and Unity games seem to work properly with the current bleeding-edge. Awesome work :)

@alasky17
Copy link
Contributor

@KeyofBlueS Thank you for the logs! We figured out what was going on - the game picks up the GPU and monitor, and doesn't play the MP4 videos for certain combinations (which is Windows behavior) so I was accidentally still looking at the ogv video. We will continue to work on these bugs (the green line and the issues with the bonus videos), but it could be some time before they are fixed properly. I believe they are not actually "regressions" caused by new media source, but merely "regular" video playback bugs with the MP4 videos that are only just now working at all.

Thank you again for all the info - we will plan to avoid enabling the MP4 videos in stable Proton versions until these bugs are also fixed :)

@KeyofBlueS
Copy link

Thank you for taking a look at this! Feel free to reach out if you need anything further regarding this issue.

Best regards.

@KeyofBlueS
Copy link

It looks like the latest Bleeding-Edge update, I'm guessing thanks to commit 8a4c3f6, has mostly resolved the green bar issue, that now only appears for a split second at the start of the initial "logo" video!

The crash during the extra "Bonus Commercial Footage" video is still happening.

@alasky17
Copy link
Contributor

@KeyofBlueS Thank you for the update! Glad the green bar fix is working for you :) WRT the crash - after some investigation it looks like the root cause is that the mp4 video is simply much larger (unsurprisingly) and Proton struggles to keep up with playing it. We are always trying to make Proton more efficient at video playback to improve perf in general, but that is a longer road than fixing something that is specifically "wrong" like the green stripe :(

@KeyofBlueS
Copy link

KeyofBlueS commented Sep 30, 2024

@alasky17 I really appreciate the effort in looking into the issue.

I'm not entirely sure what you mean by "the video is simply much larger".

In any case, I just compared the video that caused the crash, "BR_commercial.mp4", with the other mp4 files using the tool "mediainfo". I noticed that it's the only one with an audio sampling rate of 44.1 kHz, while the others use 48.0 kHz. So I tried converting the audio in "BR_commercial.mp4" from 44.1 kHz to 48.0 kHz using the following steps:

Navigate to the directory containing the video files (make sure to replace 'path_to_steamapps_folder' with the actual path to your steamapps directory)
cd "path_to_steamapps_folder/steamapps/common/Ghostbusters The Video Game Remastered/video/"

Rename the original BR_commercial.mp4 to BR_commercial_44100Hz.mp4 for backup purposes
mv "./BR_commercial.mp4" "./BR_commercial_44100Hz.mp4"

Use ffmpeg to copy the video stream (-c:v copy) without re-encoding
At the same time, convert the audio sample rate to 48.0 kHz (-ar 48000)
Save the output back as BR_commercial.mp4, which replaces the original file
ffmpeg -i "./BR_commercial_44100Hz.mp4" -c:v copy -ar 48000 "./BR_commercial.mp4"

After doing this, the video no longer causes the game to crash.
Given this experiment, it seems possible that the issue might not be on the video side, but rather on the audio side, since switching the audio sampling rate resolved the crash. Hopefully, this information is helpful.

And thanks again for investigating the issue!

@alasky17
Copy link
Contributor

alasky17 commented Oct 1, 2024

@KeyofBlueS Thank you so much for the investigation! Somehow in the earlier messages, I missed the fact that it was specifically the "commercial" video that was causing the crash. I looked at some of the other videos in the bonus content and found some significant audio desync with MP4 - this is what I was referring to and what I assumed (incorrectly) was causing the game to completely crash for you. The audio desync in the other videos that I'm seeing (which is more significant than Windows behavior on the same hardware) is due to some inefficiencies with video playback on Proton. I apologize for the inaccurate description earlier - I was rushed with my reply ... although I suppose it worked out because now I realize what I was missing all along (thank you!). When I said the MP4 videos are "bigger", I meant they take more processing power to play.

Now that I'm looking at the right thing, I can see the complete crash with the commercial video just like you described. I checked the game on Windows, and the video and audio slowly desync over time as the video plays - this is not too surprising based on your investigation. It seems like they did not intend for the audio sampling rate to differ ... The game does nothing to sync audio and video (which was discovered when investigating the audio/video desync I mentioned above).

Even though the 44.1 kHz sampling rate is pretty clearly a game bug, I will still pass along to investigate the crash - it seems like we are certainly not handling things well, as the game does not crash on Windows, merely desync with an increasing gap as the video plays as one might expect. Thank you again for all the detailed investigation! This was incredibly helpful :)

@KeyofBlueS
Copy link

@alasky17 Yes, the game not attempting to sync the audio and video is a known issue, and unfortunately, the developers of this remaster, among other things, were unable to address or resolve this flaw.
I can confirm that the desync is indeed more noticeable than on Windows, even with the same hardware.

Thank you for your thorough work on this problem, and as always, please feel free to ask if you need any further clarification or additional information!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants