Open adolfintel opened 1 month ago
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);
}
@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?
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...
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.
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?
This issue is also affecting games like Throne and Liberty on Steam. Ingame videos dont work on experimental.
@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.
It looks like this was fixed a few days ago, @rbernon can you confirm?
@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.
Thanks for the heads up @alasky17
Will you leave the WINE_NEW_MEDIA_SOURCE variable for regression testing?
@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.
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.
Which games? Knowing what's affected would help with troubleshooting.
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
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.
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.
Can confirm the issue with Ghostbusters Remastered. It's minor but it's there
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:
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?