summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrobert.mader@collabora.com <robert.mader@collabora.com>2023-02-20 18:27:32 +0100
committerrobert.mader@collabora.com <robert.mader@collabora.com>2023-04-26 12:48:32 +0200
commit80d72cfd32e40cdb28e3df49f96f7336113bfd82 (patch)
tree735fdb751f539b39e1e7adde23330694bfec3d7c
parent9cb40c4814b6be908edde4fb77a8d900a4cac51a (diff)
downloadgnome-shell-80d72cfd32e40cdb28e3df49f96f7336113bfd82.tar.gz
screencastService: Do not try multiple pipelines on old Pipewire versions
Pipewire versions < 0.3.67 may not fail immediatly on negotiation errors, thus use the last/fallback pipeline directly. Technically, a similar recent version of Wireplumber is required as well, but we can't check that easily and the combination of old Wireplumber and new Pipewire is quite unlikely. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2609>
-rw-r--r--js/dbusServices/screencast/screencastService.js5
1 files changed, 4 insertions, 1 deletions
diff --git a/js/dbusServices/screencast/screencastService.js b/js/dbusServices/screencast/screencastService.js
index 1bc41a651..3183a0093 100644
--- a/js/dbusServices/screencast/screencastService.js
+++ b/js/dbusServices/screencast/screencastService.js
@@ -244,7 +244,10 @@ var Recorder = class {
this._nodeId = nodeId;
this._pipelineState = PipelineState.STARTING;
- this._pipelineConfigs = PIPELINES.values();
+ const fallbackSupported =
+ Gst.Registry.get().check_feature_version('pipewiresrc', 0, 3, 67);
+ this._pipelineConfigs = fallbackSupported
+ ? PIPELINES.values() : [PIPELINES.at(-1)].values();
this._tryNextPipeline();
});
this._sessionProxy.StartSync();