For comment #38, currently it sounds good, if we upgrade the gstreamer to 1.20.4, we need backport below patch.
commit d7b443197bcc0789305d6a8722bca1fdd182070b Author: Sebastian Keller <skel...@gnome.org> Date: Thu Oct 6 00:20:16 2022 +0200 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> diff --git a/js/dbusServices/screencast/screencastService.js b/js/dbusServices/screencast/screencastService.js index 5ff5aff52..bb5387428 100644 --- a/js/dbusServices/screencast/screencastService.js +++ b/js/dbusServices/screencast/screencastService.js @@ -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); ** Changed in: oem-priority Status: In Progress => Fix Released ** Changed in: oem-priority Assignee: Bin Li (binli) => (unassigned) ** No longer affects: gst-plugins-base1.0 (Ubuntu) ** No longer affects: gst-plugins-base1.0 (Ubuntu Jammy) ** No longer affects: gstreamer1.0 (Ubuntu Jammy) ** No longer affects: gstreamer1.0 (Ubuntu) ** Changed in: pipewire (Ubuntu Jammy) Assignee: Bin Li (binli) => (unassigned) ** Changed in: pipewire (Ubuntu Jammy) Status: In Progress => Fix Released -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to gstreamer1.0 in Ubuntu. https://bugs.launchpad.net/bugs/1987631 Title: Screencast only records one second Status in GNOME Shell: Fix Released Status in OEM Priority Project: Fix Released Status in gnome-shell package in Ubuntu: Fix Released Status in pipewire package in Ubuntu: Fix Released Status in gnome-shell source package in Jammy: Fix Released Status in pipewire source package in Jammy: Fix Released Bug description: [Impact] When recording a screencast with gnome on kinetic the resulting video will play for one second and then freeze. It looks like the same bug was discussed upstream at https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5585 This issue is caused by the new two patches in 0.3.48-1ubuntu2 which is fixed the Cheese preview stuck issue on jammy * d/p/0001-buffers-ensure-buffer-size-does-not-exceed-maxsize.patch d/p/0002-gst-dequeue-a-shared-buffer-instead-of-original-pool.patch - Camera output freeze when using pipewiresrc (LP: #1985057) Here is a comment from https://bugs.launchpad.net/ubuntu/+source/pipewire/+bug/1985057/comments/51 . === So that's a regression of one of the cherrypicked commits, details are in https://gitlab.gnome.org/GNOME/gnome-shell/-/commit/d32c03488 the issue is fixed in Kinetic through a combination of the shell fix and a new pipewire. In 22.04 the shell issue is fixed in the recent 42.5 update but we will need to cherrypick https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/1ea1d525 in pipewire to be working. === [Test Plan] 1. Install Jammy on the hardware issue reported, and hardware didn't report the issue to avoid the regression hardware list: a. 0bda:58ff Realtek Semiconductor Corp. Integrated_Webcam_HD b. 0c45:6747 Microdia Integrated_Webcam_HD c. 0c45:6a14 Microdia Integrated_Webcam_HD d. 1bcf:28d0 Sunplus Innovation Technology Inc. Integrated_Webcam_5M e. 04f2:b76b Chicony Electronics Co., Ltd HP HD Camera f. 0408:545a Quanta Computer, Inc. HP 5MP Camera g. 0408:5483 Quanta Computer, Inc. HP HD Camera h. 174f:2459 Syntek Integrated Camera (ThinkBook 14 Gen 4) i. 5986:116d Acer, Inc Integrated Camera (ThinkCentre Neo 50a) j. 0bda:5556 Realtek Semiconductor Corp. Integrated_Webcam_FHD 2. try to install the updated pipewire packages (= 0.3.48-1ubuntu2) 3. $ sudo reboot 4. Check if gst-launch-1.0 work a. $ gst-device-monitor-1.0 Video/Source to get caps and suggest gst-launch-1.0 command b. $ gst-launch-1.0 pipewiresrc path=<id> ! <cap> ! decodebin ! videoconvert ! glimagesink c. Check if the result ok 5. Check the screencast function by pressing 'prt sc' a. the screenshot of all screen/selected region should work good b. the screenrecord of all screen/selected region should work good 6. Check that video recording in gnome-shell works - use Ctrl+Shift+Alt+R to start a recording, stop it from the indicator, verify that there is a new entry in ~/Video 7. Check that screen sharing is working - go to settings, screen sharing and enable the feature - try to connect using rdp/vnc from another client do those steps under wayland and unset X [Where problems could occur] The patches try to dequeue the shared buffer, instead of pool buffer to prevent the pool buffer being corrupted. it might cause some camera preview failed if shared buffer is corrupted. It is from upstream and there is no regression found, so the risk is low. [Other Info] Upstream commits for pipewire: https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/7cc509b117a6db66c395fb56ac4f17fb8cbd0c92 https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/a1f33a99df5756c3dedd68f5ba2690819098d14f https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/1ea1d525c1ac946a915599c6bee813e88e8cee12 Upstream commits for gstreamer: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/3b900e1fa4fd888012dc005fa26ae2532a89b7a7 To manage notifications about this bug go to: https://bugs.launchpad.net/gnome-shell/+bug/1987631/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp