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

Missing runtime libraries for video playback #338

Closed
w-culhane opened this issue Jan 16, 2025 · 3 comments
Closed

Missing runtime libraries for video playback #338

w-culhane opened this issue Jan 16, 2025 · 3 comments

Comments

@w-culhane
Copy link

I've noticed that in many games, cutscenes are replaced with a test pattern (e.g. the startup video in GRIP).

It looks like the relevant section of the log is:

(wine:56731): GStreamer-WARNING **: 09:44:40.376: Failed to load plugin '/home/user/.local/share/Steam/compatibilitytools.d/UMU-Proton-9.0-3.2/files/lib64/gstreamer-1.0/libgstlibav.so': libavfilter.so.7: cannot open shared object file: No such file or directory

(wine:56731): GStreamer-WARNING **: 09:44:40.415: Failed to load plugin '/home/user/.local/share/Steam/compatibilitytools.d/UMU-Proton-9.0-3.2/files/lib/gstreamer-1.0/libgstlibav.so': /home/user/.local/share/Steam/compatibilitytools.d/UMU-Proton-9.0-3.2/files/lib/gstreamer-1.0/libgstlibav.so: wrong ELF class: ELFCLASS32

However, the linked libavfilter.so.7 exists on my system (along with all the rest of the linked libraries):

 $ ldd /home/user/.local/share/Steam/compatibilitytools.d/UMU-Proton-9.0-3.2/files/lib64/gstreamer-1.0/libgstlibav.so
        linux-vdso.so.1 (0x000079c970474000)
        libavfilter.so.7 => /usr/lib/libavfilter.so.7 (0x000079c96fe00000)
        <snip>

It seems that libavfilter.so.7 (and possibly some other libraries GStreamer links against) aren't included with the runtime and the included Proton fails to play some videos without them.

I am using the latest umu-launcher, Proton and Steam Runtime on Arch Linux:

umu-launcher version 1.1.4 (3.13.1 (main, Dec  4 2024, 18:05:56) [GCC 14.2.1 20240910])
UMU-Proton is up to date
steamrt is up to date
@R1kaB3rN
Copy link
Member

R1kaB3rN commented Jan 17, 2025

The file libavfilter.so.7 being missing is currently expected for both UMU-Proton and official Proton builds, and umu-launcher can't do anything about that. It's also expected for that file to not be included in the Steam Linux Runtime (sniper) either. However, it is included in GE-Proton builds so I would suggest using that for cases you encounter the test pattern.

I will say though, building other multimedia libraries to help with in-game media playback is something that will be possible once we start customizing the runtime. That way users, can maintain using a stable Proton build instead of switching to GE-Proton whenever they encounter the test pattern.

@loathingKernel
Copy link
Contributor

The file libavfilter.so.7 being missing is currently expected for both UMU-Proton

There is also the option of UMU-Proton shipping it, the same way it is made available in Proton-GE. Steam has the fallback of "Shader Pre-Caching" for decoding unsupported formats for the official Protons, which is not available to umu-launcher.

I will say though, building other multimedia libraries to help with in-game media playback is something that will be possible #4.

This is not an option, because the libraries bundled with a Proton build take priority https://github.com/ValveSoftware/Proton/blob/proton_9.0/proton#L1376-L1381 over the ones in the runtime. So the Proton build should be modified to not bundle the gstreamer libraries (in effect making it unusable with Steam) or ship a modified proton script. On the other hand, this also means that modifying the runtime won't help with Valve's Protons work, as their bundled gstreamer doesn't support the necessary codecs anyway.

@GloriousEggroll
Copy link
Member

GloriousEggroll commented Jan 17, 2025

This is a limitation of Valve's proton and subsequently UMU-Proton as it is based off of Valve's. If you want extra codec support for video playback as mentioned use GE-Proton.

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

4 participants