SeaDve / Kooha

Elegantly record your screen
GNU General Public License v3.0
2.4k stars 70 forks source link

Arch Linux: Recording a selection of a screen ends in `Failed to find element factory with name 'glsinkbin' for creating element` #293

Closed VeldoraTheDragon closed 3 months ago

VeldoraTheDragon commented 3 months ago

Affected version

- io.github.seadve.Kooha 2.3.0
- Flatpak: false
- Experimental Features: []

- Language: en_US.UTF-8, en_US, en.UTF-8, en, C

- CPU: 12th Gen Intel(R) Core(TM) i7-1260P
- GPU: Intel Corporation Alder Lake-P GT2 [Iris Xe Graphics] (rev 0c)

- Distribution: Arch Linux (Timestamp: 2024-04-04 09:39 | Kernel: 6.8.2)
- Desktop Session: gnome
- Display Server: x11

- GTK 4.14.2
- Libadwaita 1.5.0
- GStreamer 1.24.1
- Pipewire 1.0.4

The display server says x11, though according the gnome system details it's wayland.

Bug summary When trying to capture a selection of a screen, it can't be recorded and ends in:

Failed to find element factory with name 'glsinkbin' for creating element

Steps to reproduce

  1. Install Kooha from the Arch Repo: pacman -Syu kooha
  2. Open Kooha
  3. Click on Capture a Selection of Screen
  4. Click Record
  5. Select Screen, which should get recorded
  6. See error

Expected behavior The window which selection should get recorded should open, as it does in the current flatpak development-build.

Relevant logs, screenshots, screencasts, etc.

[user@hostname ~]$ RUST_BACKTRACE=1 RUST_LOG=kooha=debug GST_DEBUG=3 PIPEWIRE_DEBUG=3 kooha
2024-04-03T15:05:22.103684Z  INFO kooha::application: Kooha (io.github.seadve.Kooha)
2024-04-03T15:05:22.103695Z  INFO kooha::application: Version: 2.3.0 ()
2024-04-03T15:05:22.103697Z  INFO kooha::application: Datadir: /usr/share/kooha
2024-04-03T15:05:24.354770Z DEBUG kooha::recording: Created screencast proxy version=Ok(5) available_cursor_modes=Ok(CursorMode(HIDDEN | EMBEDDED | METADATA)) available_source_types=Ok(SourceType(MONITOR | WINDOW | VIRTUAL))
2024-04-03T15:05:24.361032Z DEBUG kooha::recording: Selecting sources cursor_mode=CursorMode(EMBEDDED) source_type=SourceType(MONITOR) is_multiple_sources=false restore_token="dec57829-cd64-4955-a93b-b73e18bf09b2" persist_mode=Persistent
2024-04-03T15:05:24.369732Z DEBUG kooha::recording: Starting session window_identifier=wayland:#o+[~73hQ5Ld[_Cq"=4k8JoNH?a1eqq1
[I][43249.092461] pw.context   | [      pipewire.c:  647 pw_init()] version 1.0.4
2024-04-03T15:05:24.393555Z DEBUG kooha::area_selector: Using gl pipeline
0:00:02.293341989 78822 0x570a592cc2e0 WARN                GST_RUST element_factory.rs:259:gstreamer::element_factory::ElementBuilder::build::{{closure}}: element factory 'glsinkbin' not found
2024-04-03T15:05:24.393707Z ERROR kooha::window: Failed to find element factory with name 'glsinkbin' for creating element

Stack backtrace:
   0: <unknown>
   1: <unknown>
   2: <unknown>
   3: <unknown>
   4: <unknown>
   5: <unknown>
   6: g_main_context_iteration
   7: g_application_run
   8: <unknown>
   9: <unknown>
  10: <unknown>
  11: <unknown>
  12: __libc_start_main
  13: <unknown>
SeaDve commented 3 months ago

It seems you are missing a dependency, something like gstreamer-plugins-base

SeaDve commented 3 months ago

It works with flatpak build since every dependencies is bundled

VeldoraTheDragon commented 3 months ago

I see, thank you for the hint. I'll open a bug-report (if not already one present) at Arch Linux to add gst-plugins-base as a dependency. This did the trick.

Thank you for your quick answer.

alerque commented 3 months ago

I've updated the Arch Linux package per the packaging bug report.