screencast: Don't force buffer copies on recent gstreamer versions

Gstreamer 1.20.4 includes a fix in the videoconvert element that makes
it no longer necessary to always copy buffers in pipewiresrc to have
smooth recordings. This change now skips those otherwise unnecessary
copies when using a new enough videoconvert.

Related: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2928
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2503>
This commit is contained in:
Sebastian Keller 2022-10-06 00:20:16 +02:00 committed by Marge Bot
parent cbbc066d6f
commit d7b443197b

View File

@ -231,7 +231,8 @@ var Recorder = class {
_ensurePipeline(nodeId) {
const framerate = this._framerate;
const needsCopy =
Gst.Registry.get().check_feature_version('pipewiresrc', 0, 3, 57);
Gst.Registry.get().check_feature_version('pipewiresrc', 0, 3, 57) &&
!Gst.Registry.get().check_feature_version('videoconvert', 1, 20, 4);
let fullPipeline = `
pipewiresrc path=${nodeId}