mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-13 05:40:42 +01:00

This CL will also make PipeWire tests retried 3 times in case of failures. Change-Id: I9c66351f7ee171e29266fe4b8dcd52ca282c8f6d Bug: webrtc:14644 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/282820 Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Owners-Override: Mirko Bonadei <mbonadei@webrtc.org> Commit-Queue: Jeremy Leconte <jleconte@webrtc.org> Cr-Commit-Position: refs/heads/main@{#38595}
72 lines
2.3 KiB
Python
72 lines
2.3 KiB
Python
#!/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())
|