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>
(cherry picked from commit d7b443197b)
This commit is contained in:
Sebastian Keller 2022-10-06 00:20:16 +02:00 committed by Florian Müllner
parent 48c7c02c87
commit bffca472e1

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}