Skip to content

Commit ef4f7a6

Browse files
committed
Proton-tkg: Add mediaconverter for RE8
- Builds against system gstreamer and loaded dynamically - 64-bit only for now - Imported some proton patches for gstreamer as they seem to be needed for mediaconverter to actually work
1 parent 7fa7301 commit ef4f7a6

File tree

4 files changed

+367
-0
lines changed

4 files changed

+367
-0
lines changed

proton-tkg/proton-tkg.sh

+31
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
# You can run the vrclient building alone with : ./proton-tkg.sh build_vrclient
1010
# You can run the lsteamclient building alone with : ./proton-tkg.sh build_lsteamclient
1111
# You can run the steamhelper building alone with : ./proton-tkg.sh build_steamhelper
12+
# You can run the mediaconverter building alone with : ./proton-tkg.sh build_mediaconv
1213

1314
set -e
1415

@@ -235,6 +236,27 @@ function build_dxvk {
235236
cd "$_nowhere"
236237
}
237238

239+
function build_mediaconverter {
240+
241+
mkdir -p "$_nowhere/gst/lib64/gstreamer-1.0"
242+
243+
if [ -d "$_nowhere"/Proton/media-converter ]; then
244+
cd "$_nowhere"/Proton/media-converter
245+
#mkdir -p "$_nowhere"/Proton/build/mediaconv32
246+
mkdir -p "$_nowhere"/Proton/build/mediaconv64
247+
#rm -rf "$_nowhere"/Proton/build/mediaconv32/*
248+
rm -rf "$_nowhere"/Proton/build/mediaconv64/*
249+
250+
#( PKG_CONFIG_ALLOW_CROSS=1 PKG_CONFIG_PATH=/usr/lib32/pkgconfig cargo build --target i686-unknown-linux-gnu --target-dir "$_nowhere"/Proton/build/mediaconv32 --release )
251+
( cargo build --target x86_64-unknown-linux-gnu --target-dir "$_nowhere"/Proton/build/mediaconv64 --release )
252+
253+
#cp -a "$_nowhere"/Proton/build/mediaconv32/i686-unknown-linux-gnu/release/libprotonmediaconverter.so "$_nowhere"/gst/lib/gstreamer-1.0/
254+
cp -a "$_nowhere"/Proton/build/mediaconv64/x86_64-unknown-linux-gnu/release/libprotonmediaconverter.so "$_nowhere"/gst/lib64/gstreamer-1.0/
255+
256+
cd "$_nowhere"
257+
fi
258+
}
259+
238260
function build_steamhelper {
239261
# disable openvr support for now since we don't support it
240262
if [ "$_proton_branch" = "proton_6.3" ]; then
@@ -449,6 +471,8 @@ elif [ "$1" = "build_vkd3d" ]; then
449471
build_vkd3d
450472
elif [ "$1" = "build_dxvk" ]; then
451473
build_dxvk
474+
elif [ "$1" = "build_mediaconv" ]; then
475+
build_mediaconverter
452476
elif [ "$1" = "build_steamhelper" ]; then
453477
build_steamhelper
454478
else
@@ -471,6 +495,9 @@ else
471495

472496
echo -e "Proton-tkg - $(date +"%m-%d-%Y %H:%M:%S")" > "$_logdir"/proton-tkg.log
473497

498+
# Build GST/mediaconverter
499+
build_mediaconverter
500+
474501
# Now let's build
475502
cd "$_wine_tkg_git_path"
476503
if [ -e "/usr/bin/makepkg" ] && [ "$_nomakepkg" = "false" ]; then
@@ -581,6 +608,10 @@ else
581608
# Build steam helper
582609
build_steamhelper
583610

611+
# gst/mediaconverter
612+
mv "$_nowhere"/gst/lib64/* proton_dist_tmp/lib64/
613+
rm -rf "$_nowhere/gst"
614+
584615
# vkd3d
585616
# Build vkd3d-proton when vkd3dlib is disabled - Requires MinGW-w64-gcc or it won't be built
586617
if [ "$_build_vkd3d" = "true" ]; then

proton-tkg/proton_template/conf/proton

+23
Original file line numberDiff line numberDiff line change
@@ -640,6 +640,17 @@ class Session:
640640
self.compat_config.discard(config_name)
641641
return True
642642

643+
self.env["GST_PLUGIN_PATH_1_0"] = g_proton.lib64_dir + "gstreamer-1.0" + ":" + g_proton.lib_dir + "gstreamer-1.0"
644+
self.env["WINE_GST_REGISTRY_DIR"] = g_compatdata.path("gstreamer-1.0/")
645+
646+
if "STEAM_COMPAT_MEDIA_PATH" in os.environ:
647+
self.env["MEDIACONV_AUDIO_DUMP_FILE"] = os.environ["STEAM_COMPAT_MEDIA_PATH"] + "/audio.foz"
648+
self.env["MEDIACONV_VIDEO_DUMP_FILE"] = os.environ["STEAM_COMPAT_MEDIA_PATH"] + "/video.foz"
649+
650+
if "STEAM_COMPAT_TRANSCODED_MEDIA_PATH" in os.environ:
651+
self.env["MEDIACONV_AUDIO_TRANSCODED_FILE"] = os.environ["STEAM_COMPAT_TRANSCODED_MEDIA_PATH"] + "/transcoded_audio.foz"
652+
self.env["MEDIACONV_VIDEO_TRANSCODED_FILE"] = os.environ["STEAM_COMPAT_TRANSCODED_MEDIA_PATH"] + "/transcoded_video.foz"
653+
643654
def try_log_slr_versions(self):
644655
try:
645656
if "PRESSURE_VESSEL_RUNTIME_BASE" in self.env:
@@ -854,6 +865,18 @@ class Session:
854865
f.write("\tSTEAM_COMPAT_CLIENT_INSTALL_PATH=\"" + self.env["STEAM_COMPAT_CLIENT_INSTALL_PATH"] + "\" \\\n")
855866
if "WINE_LARGE_ADDRESS_AWARE" in self.env:
856867
f.write("\tWINE_LARGE_ADDRESS_AWARE=\"" + self.env["WINE_LARGE_ADDRESS_AWARE"] + "\" \\\n")
868+
if "GST_PLUGIN_PATH_1_0" in self.env:
869+
f.write("\tGST_PLUGIN_SYSTEM_PATH_1_0=\"" + self.env["GST_PLUGIN_PATH_1_0"] + "\" \\\n")
870+
if "WINE_GST_REGISTRY_DIR" in self.env:
871+
f.write("\tWINE_GST_REGISTRY_DIR=\"" + self.env["WINE_GST_REGISTRY_DIR"] + "\" \\\n")
872+
if "MEDIACONV_AUDIO_DUMP_FILE" in self.env:
873+
f.write("\tMEDIACONV_AUDIO_DUMP_FILE=\"" + self.env["MEDIACONV_AUDIO_DUMP_FILE"] + "\" \\\n")
874+
if "MEDIACONV_AUDIO_TRANSCODED_FILE" in self.env:
875+
f.write("\tMEDIACONV_AUDIO_TRANSCODED_FILE=\"" + self.env["MEDIACONV_AUDIO_TRANSCODED_FILE"] + "\" \\\n")
876+
if "MEDIACONV_VIDEO_DUMP_FILE" in self.env:
877+
f.write("\tMEDIACONV_VIDEO_DUMP_FILE=\"" + self.env["MEDIACONV_VIDEO_DUMP_FILE"] + "\" \\\n")
878+
if "MEDIACONV_VIDEO_TRANSCODED_FILE" in self.env:
879+
f.write("\tMEDIACONV_VIDEO_TRANSCODED_FILE=\"" + self.env["MEDIACONV_VIDEO_TRANSCODED_FILE"] + "\" \\\n")
857880

858881
def dump_dbg_scripts(self):
859882
exe_name = os.path.basename(sys.argv[2])

0 commit comments

Comments
 (0)