diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /third_party/libwebrtc/tools_webrtc/configure_pipewire.py | |
parent | Initial commit. (diff) | |
download | firefox-esr-upstream.tar.xz firefox-esr-upstream.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/libwebrtc/tools_webrtc/configure_pipewire.py')
-rw-r--r-- | third_party/libwebrtc/tools_webrtc/configure_pipewire.py | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/third_party/libwebrtc/tools_webrtc/configure_pipewire.py b/third_party/libwebrtc/tools_webrtc/configure_pipewire.py new file mode 100644 index 0000000000..79f8accbb4 --- /dev/null +++ b/third_party/libwebrtc/tools_webrtc/configure_pipewire.py @@ -0,0 +1,72 @@ +#!/usr/bin/env vpython3 +# Copyright (c) 2022 The WebRTC project authors. All Rights Reserved. +# +# Use of this source code is governed by a BSD-style license +# that can be found in the LICENSE file in the root of the source +# tree. An additional intellectual property rights grant can be found +# in the file PATENTS. All contributing project authors may +# be found in the AUTHORS file in the root of the source tree. +""" +This script is a wrapper that loads "pipewire" library. +""" + +import os +import subprocess +import sys + +_SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__)) +_SRC_DIR = os.path.dirname(_SCRIPT_DIR) + + +def _GetPipeWireDir(): + pipewire_dir = os.path.join(_SRC_DIR, 'third_party', 'pipewire', + 'linux-amd64') + + if not os.path.isdir(pipewire_dir): + pipewire_dir = None + + return pipewire_dir + + +def _ConfigurePipeWirePaths(path): + library_dir = os.path.join(path, 'lib64') + pipewire_binary_dir = os.path.join(path, 'bin') + pipewire_config_prefix = os.path.join(path, 'share', 'pipewire') + pipewire_module_dir = os.path.join(library_dir, 'pipewire-0.3') + spa_plugin_dir = os.path.join(library_dir, 'spa-0.2') + media_session_config_dir = os.path.join(pipewire_config_prefix, + 'media-session.d') + + env_vars = os.environ + env_vars['LD_LIBRARY_PATH'] = library_dir + env_vars['PIPEWIRE_CONFIG_PREFIX'] = pipewire_config_prefix + env_vars['PIPEWIRE_MODULE_DIR'] = pipewire_module_dir + env_vars['SPA_PLUGIN_DIR'] = spa_plugin_dir + env_vars['MEDIA_SESSION_CONFIG_DIR'] = media_session_config_dir + env_vars['PIPEWIRE_RUNTIME_DIR'] = '/tmp' + env_vars['PATH'] = env_vars['PATH'] + ':' + pipewire_binary_dir + + +def main(): + pipewire_dir = _GetPipeWireDir() + + if pipewire_dir is None: + print('configure-pipewire: Couldn\'t find directory %s' % pipewire_dir) + return 1 + + _ConfigurePipeWirePaths(pipewire_dir) + + pipewire_process = subprocess.Popen(["pipewire"], stdout=None) + pipewire_media_session_process = subprocess.Popen(["pipewire-media-session"], + stdout=None) + + return_value = subprocess.call(sys.argv[1:]) + + pipewire_media_session_process.terminate() + pipewire_process.terminate() + + return return_value + + +if __name__ == '__main__': + sys.exit(main()) |