From 10c26a64e93369e1b57ece1108798b55f8975572 Mon Sep 17 00:00:00 2001 From: "Wu, Bin1" Date: Mon, 22 Jul 2024 20:13:27 -0700 Subject: [PATCH] lib/gst-msdk/encode: Add WA for windows report miss plugin problem Signed-off-by: Wu, Bin1 --- lib/gstreamer/msdk/encoder.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/gstreamer/msdk/encoder.py b/lib/gstreamer/msdk/encoder.py index c701b53d..7d16510f 100644 --- a/lib/gstreamer/msdk/encoder.py +++ b/lib/gstreamer/msdk/encoder.py @@ -9,7 +9,7 @@ import slash from ....lib.gstreamer.encoderbase import BaseEncoderTest, Encoder as GstEncoder -from ....lib.gstreamer.util import have_gst_element +from ....lib.gstreamer.util import have_gst_element, get_elements from ....lib.gstreamer.msdk.util import using_compatible_driver, mapprofile, map_best_hw_format, mapformat from ....lib.gstreamer.msdk.decoder import Decoder from ....lib import platform @@ -142,6 +142,22 @@ def before(self): super().before() os.environ["GST_MSDK_DRM_DEVICE"] = get_media().render_device + self.__rank_before = os.environ.get("GST_PLUGIN_FEATURE_RANK", None) + # WA: Fix the gst-discoverer-1.0.exe report Missing plugins problem on Windows OS + if platform.info()['os'] == 'wsl': + ranks = [] if self.__rank_before is None else self.__rank_before.split(',') + ranks += [f"{e}:MAX" for e in get_elements("msdk")] + os.environ["GST_PLUGIN_FEATURE_RANK"] = ','.join(ranks) + + def after(self): + super().after() + + if None == self.__rank_before: + if 'GST_PLUGIN_FEATURE_RANK' in os.environ: + del os.environ["GST_PLUGIN_FEATURE_RANK"] + else: + os.environ["GST_PLUGIN_FEATURE_RANK"] = self.__rank_before + def map_profile(self): return mapprofile(self.codec, self.profile)