[Bug 1987631] Re: Screencast only records one second

James 1987631 at bugs.launchpad.net
Mon Feb 6 09:55:08 UTC 2023


To clarify the gstreamer fix should be sufficient. The pipewire always-
copy change I made allows for working around the bug but isn't required
as long as you have the gstreamer fix.

Fixes the bug in gstreamer:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/1c8244a19dbb4ebdf972a703b55d719f2b968056

Makes it possible to work around the gstreamer bug without updating gstreamer:
https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/1ea1d525c1ac946a915599c6bee813e88e8cee12

Note that gnome-shell applies the always-copy pipewire workaround based on gstreamer/pipewire version detection so this logic may need tweaking due to backports:
https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/43.2/js/dbusServices/screencast/screencastService.js#L233-235

-- 
You received this bug notification because you are a member of Ubuntu
Sponsors Team, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1987631

Title:
  Screencast only records one second

Status in GNOME Shell:
  Fix Released
Status in OEM Priority Project:
  In Progress
Status in gnome-shell package in Ubuntu:
  Fix Released
Status in gst-plugins-base1.0 package in Ubuntu:
  New
Status in gstreamer1.0 package in Ubuntu:
  New
Status in pipewire package in Ubuntu:
  Fix Released
Status in gnome-shell source package in Jammy:
  Fix Released
Status in gst-plugins-base1.0 source package in Jammy:
  New
Status in gstreamer1.0 source package in Jammy:
  New
Status in pipewire source package in Jammy:
  Triaged

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




More information about the Ubuntu-sponsors mailing list