diff --git a/ivas_processing_scripts/processing/config.py b/ivas_processing_scripts/processing/config.py index 25cabe02f810af644e7105be48597cffe0ba0963..1e6371a92526112d3d1b6f1f79ad8dea5d8ec61a 100755 --- a/ivas_processing_scripts/processing/config.py +++ b/ivas_processing_scripts/processing/config.py @@ -46,7 +46,7 @@ from ivas_processing_scripts.constants import ( REQUIRED_KEYS_MNRU, SUPPORTED_CONDITIONS, ) -from ivas_processing_scripts.utils import find_binary, get_abs_path +from ivas_processing_scripts.utils import find_binary, get_abs_path, use_wine def merge_dicts(base: dict, other: dict) -> None: @@ -263,9 +263,5 @@ class TestConfig: def _validate_merged_config(self, cfg: dict): # if not on windows, but "use_windows_codec_binaries" is given, assure that wine is there - if ( - platform.system() == "Linux" - and cfg["use_windows_codec_binaries"] - and find_binary("wine") is None - ): + if use_wine(cfg["use_windows_codec_binaries"]) and find_binary("wine") is None: raise FileNotFoundError("Using windows binaries on Linux requires wine") diff --git a/ivas_processing_scripts/processing/evs.py b/ivas_processing_scripts/processing/evs.py index 8fa048d312792270f056b5c8dd21bee9c66df87f..791ff91f66fc3989be5953a902ddfed0ce248abf 100755 --- a/ivas_processing_scripts/processing/evs.py +++ b/ivas_processing_scripts/processing/evs.py @@ -53,7 +53,7 @@ from ivas_processing_scripts.audiotools.wrappers.eid_xor import ( from ivas_processing_scripts.audiotools.wrappers.dlyerr_2_errpat import validate_evs_jbm from ivas_processing_scripts.audiotools.wrappers.dlyerr_2_errpat import evs_jbm from ivas_processing_scripts.processing.processing import Processing -from ivas_processing_scripts.utils import apply_func_parallel, run +from ivas_processing_scripts.utils import apply_func_parallel, run, use_wine class EVS(Processing): @@ -62,9 +62,7 @@ class EVS(Processing): self.name = "evs" self.in_fmt = audio.fromtype(self.in_fmt) self._validate() - self._use_wine = ( - platform.system() == "Linux" and self.use_windows_codec_binaries - ) + self._use_wine = use_wine(self.use_windows_codec_binaries) def _validate( self, diff --git a/ivas_processing_scripts/processing/ivas.py b/ivas_processing_scripts/processing/ivas.py index 96e3af21c6104c0c096d5a4f5289648947e7de07..7a68f4ea5ae996d31704529d1836655c845175d7 100755 --- a/ivas_processing_scripts/processing/ivas.py +++ b/ivas_processing_scripts/processing/ivas.py @@ -48,7 +48,7 @@ from ivas_processing_scripts.audiotools.wrappers.networkSimulator import ( validate_network_simulator, ) from ivas_processing_scripts.processing.processing import Processing -from ivas_processing_scripts.utils import run +from ivas_processing_scripts.utils import run, use_wine class IVAS(Processing): @@ -60,9 +60,7 @@ class IVAS(Processing): self.out_fmt = audio.fromtype(self.out_fmt) if not hasattr(self, "dec_opts"): self.dec_opts = None - self._use_wine = ( - platform.system() == "Linux" and self.use_windows_codec_binaries - ) + self._use_wine = use_wine(self.use_windows_codec_binaries) def _validate(self): need_exe_suffix = ( diff --git a/ivas_processing_scripts/utils.py b/ivas_processing_scripts/utils.py index 4680b22489331daa93b94ce2c0e09ddf7c48c3ba..7f593affdebe1c8fd404d2b51ea8210c95637726 100755 --- a/ivas_processing_scripts/utils.py +++ b/ivas_processing_scripts/utils.py @@ -34,6 +34,7 @@ import logging import shutil import subprocess as sp import sys +import platform from concurrent.futures import ProcessPoolExecutor, ThreadPoolExecutor from itertools import cycle, repeat, tee from os import devnull @@ -142,6 +143,12 @@ System interaction """ +def use_wine(use_windows_codec_binaries: bool): + linux_system = platform.system() == "Linux" + wsl = "microsoft" in platform.uname().release.lower() + return linux_system and not wsl and use_windows_codec_binaries + + def find_binary( binary: str, raise_error: Optional[bool] = True,