Skip to content

Commit a74cf6e

Browse files
patches: add media converter overrides since it was merged into wine
1 parent b59643f commit a74cf6e

File tree

2 files changed

+75
-0
lines changed

2 files changed

+75
-0
lines changed

patches/protonprep-valve-staging.sh

+3
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,9 @@
292292
echo "WINE: -FSR- fullscreen hack fsr patch"
293293
patch -Np1 < ../patches/proton/47-proton-fshack-AMD-FSR-complete.patch
294294

295+
echo "WINE: -PENDING- Add options to disable proton media converter."
296+
patch -Np1 < ../patches/wine-hotfixes/pending/add-envvar-to-gate-media-converter.patch
297+
295298
#echo "WINE: -Nvidia Reflex- Support VK_NV_low_latency2"
296299
#patch -Np1 < ../patches/proton/83-nv_low_latency_wine.patch
297300

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
diff --git a/dlls/winegstreamer/media-converter/lib.c b/dlls/winegstreamer/media-converter/lib.c
2+
index 4f7884c1178..bdbda22f697 100644
3+
--- a/dlls/winegstreamer/media-converter/lib.c
4+
+++ b/dlls/winegstreamer/media-converter/lib.c
5+
@@ -306,30 +306,54 @@ void dump_fozdb_close(struct dump_fozdb *db)
6+
bool media_converter_init(void)
7+
{
8+
GST_DEBUG_CATEGORY_INIT(media_converter_debug,
9+
- "protonmediaconverter", GST_DEBUG_FG_YELLOW, "Proton media converter");
10+
+ "protonmediaconverter", GST_DEBUG_FG_YELLOW, "Proton media converter");
11+
12+
- if (!GST_ELEMENT_REGISTER(protonvideoconverter, NULL))
13+
+ // Check if the PROTON_VIDEO_CONVERT environment variable is set to 0
14+
+ // Only try to register if the envvar isn't set
15+
+ const char *proton_video_convert = getenv("PROTON_VIDEO_CONVERT");
16+
+ if (!proton_video_convert || strcmp(proton_video_convert, "0") != 0)
17+
{
18+
- GST_ERROR("Failed to register protonvideoconverter.");
19+
- return false;
20+
+ if (!GST_ELEMENT_REGISTER(protonvideoconverter, NULL))
21+
+ {
22+
+ GST_ERROR("Failed to register protonvideoconverter.");
23+
+ return false;
24+
+ }
25+
}
26+
27+
- if (!GST_ELEMENT_REGISTER(protonaudioconverter, NULL))
28+
+ // Check if the PROTON_AUDIO_CONVERT environment variable is set to 0
29+
+ // Only try to register if the envvar isn't set
30+
+ const char *proton_audio_convert = getenv("PROTON_AUDIO_CONVERT");
31+
+ if (!proton_audio_convert || strcmp(proton_audio_convert, "0") != 0)
32+
{
33+
- GST_ERROR("Failed to register protonaudioconverter.");
34+
- return false;
35+
+ if (!GST_ELEMENT_REGISTER(protonaudioconverter, NULL))
36+
+ {
37+
+ GST_ERROR("Failed to register protonaudioconverter.");
38+
+ return false;
39+
+ }
40+
}
41+
42+
- if (!GST_ELEMENT_REGISTER(protonaudioconverterbin, NULL))
43+
+ // Check if the PROTON_AUDIO_CONVERT_BIN environment variable is set to 0
44+
+ // Only try to register if the envvar isn't set
45+
+ const char *proton_audio_convert_bin = getenv("PROTON_AUDIO_CONVERT_BIN");
46+
+ if (!proton_audio_convert_bin || strcmp(proton_audio_convert_bin, "0") != 0)
47+
{
48+
- GST_ERROR("Failed to register protonaudioconverterbin.");
49+
- return false;
50+
+ if (!GST_ELEMENT_REGISTER(protonaudioconverterbin, NULL))
51+
+ {
52+
+ GST_ERROR("Failed to register protonaudioconverterbin.");
53+
+ return false;
54+
+ }
55+
}
56+
57+
- if (!GST_ELEMENT_REGISTER(protondemuxer, NULL))
58+
+ // Check if the PROTON_DEMUX environment variable is set to 0
59+
+ // Only try to register if the envvar isn't set
60+
+ const char *proton_demuxer = getenv("PROTON_DEMUX");
61+
+ if (!proton_demuxer || strcmp(proton_demuxer, "0") != 0)
62+
{
63+
- GST_ERROR("Failed to register protondemuxer.");
64+
- return false;
65+
+ if (!GST_ELEMENT_REGISTER(protondemuxer, NULL))
66+
+ {
67+
+ GST_ERROR("Failed to register protondemuxer.");
68+
+ return false;
69+
+ }
70+
}
71+
72+
return true;

0 commit comments

Comments
 (0)