Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Screen capture stops working after $HOURS #131

Open
2e0byo opened this issue Nov 18, 2023 · 6 comments
Open

Screen capture stops working after $HOURS #131

2e0byo opened this issue Nov 18, 2023 · 6 comments

Comments

@2e0byo
Copy link

2e0byo commented Nov 18, 2023

At some point (4h < point < 24h) after booting the system, screen capture fails: obs for instance shows

info: [pipewire] Asking for desktop
info: [pipewire] desktop selected, setting up screencast
info: [pipewire] Server version: 0.3.84
info: [pipewire] Library version: 0.3.84
info: [pipewire] Header version: 0.3.84
info: [pipewire] Created stream 0x562bfd558800
info: [pipewire] Stream 0x562bfd558800 state: "connecting" (error: none)
info: [pipewire] Playing stream 0x562bfd558800
info: [pipewire] Stream 0x562bfd558800 state: "paused" (error: none)
info: [pipewire] Stream 0x562bfd558800 state: "error" (error: no more input formats)
error: [pipewire] Error id:2 seq:10 res:-32 (Unknown error -32): no more input

I've traced this down to xdg-desktop-portal-hyprland by restarting services until it worked again. Logs from before restart:

Nov 18 18:05:01 digory xdg-desktop-portal-hyprland[2852]: [LOG] [screencopy] SHAREDATA returned selection 0
Nov 18 18:05:01 digory xdg-desktop-portal-hyprland[2852]: [LOG] [screencopy] Start:
Nov 18 18:05:01 digory xdg-desktop-portal-hyprland[2852]: [LOG] [screencopy]  | /org/freedesktop/portal/desktop/request/1_125/obs3
Nov 18 18:05:01 digory xdg-desktop-portal-hyprland[2852]: [LOG] [screencopy]  | /org/freedesktop/portal/desktop/session/1_125/obs1
Nov 18 18:05:01 digory xdg-desktop-portal-hyprland[2852]: [LOG] [screencopy]  | appid:
Nov 18 18:05:01 digory xdg-desktop-portal-hyprland[2852]: [LOG] [screencopy]  | parent_window:
Nov 18 18:05:01 digory xdg-desktop-portal-hyprland[2852]: [ERR] [screencopy] Couldn't obtain a format from dma
Nov 18 18:05:01 digory xdg-desktop-portal-hyprland[2852]: [LOG] [screencopy] New session:
Nov 18 18:05:01 digory xdg-desktop-portal-hyprland[2852]: [LOG] [screencopy]  | /org/freedesktop/portal/desktop/request/1_118/webrtc_53953641
Nov 18 18:05:01 digory xdg-desktop-portal-hyprland[2852]: [LOG] [screencopy]  | /org/freedesktop/portal/desktop/session/1_118/webrtc_session903947359
Nov 18 18:05:01 digory xdg-desktop-portal-hyprland[2852]: [LOG] [screencopy]  | appid:
Nov 18 18:05:01 digory xdg-desktop-portal-hyprland[2852]: [LOG] [screencopy] SelectSources:
Nov 18 18:05:01 digory xdg-desktop-portal-hyprland[2852]: [LOG] [screencopy]  | /org/freedesktop/portal/desktop/request/1_118/webrtc908602552
Logs from after, with successful screen capture
ov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy] SHAREDATA returned selection 0
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy] Start:
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy]  | /org/freedesktop/portal/desktop/request/1_162/obs3
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy]  | /org/freedesktop/portal/desktop/session/1_162/obs1
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy]  | appid:
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy]  | parent_window:
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [pw] Building modifiers for dma
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy] Sharing initialized
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy] New session:
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy]  | /org/freedesktop/portal/desktop/request/1_168/obs1
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy]  | /org/freedesktop/portal/desktop/session/1_168/obs1
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy]  | appid:
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy] SelectSources:
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy]  | /org/freedesktop/portal/desktop/request/1_168/obs2
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy]  | /org/freedesktop/portal/desktop/session/1_168/obs1
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy]  | appid:
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy] option cursor_mode to 2
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy] option persist_mode to 2
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy] unused option multiple
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy] unused option types
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy] restore data invalid / missing, prompting
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] execAndGet: WAYLAND_DISPLAY=wayland-1 QT_QPA_PLATFORM="wayland" XCURSOR_SIZE=24 HYPRLAND_IN>
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [sc] Selection: /screen:DP-4
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy] SHAREDATA returned selection 0
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy] Start:
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy]  | /org/freedesktop/portal/desktop/request/1_168/obs3
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy]  | /org/freedesktop/portal/desktop/session/1_168/obs1
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy]  | appid:
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy]  | parent_window:
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [pw] Building modifiers for dma
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy] Sharing initialized
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [pw] Building modifiers for dma
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [pw] Building modifiers for dma
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy/pipewire] Out of buffers
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy] New session:
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy]  | /org/freedesktop/portal/desktop/request/1_174/obs1
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy]  | /org/freedesktop/portal/desktop/session/1_174/obs1
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy]  | appid:
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy] SelectSources:
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy]  | /org/freedesktop/portal/desktop/request/1_174/obs2
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy]  | /org/freedesktop/portal/desktop/session/1_174/obs1
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy]  | appid:
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy] option cursor_mode to 2
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy] option persist_mode to 2
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy] unused option multiple
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy] unused option types
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy] restore data invalid / missing, prompting
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] execAndGet: WAYLAND_DISPLAY=wayland-1 QT_QPA_PLATFORM="wayland" XCURSOR_SIZE=24 HYPRLAND_IN>
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [sc] Selection: /screen:DP-4
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy] SHAREDATA returned selection 0
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy] Start:
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy]  | /org/freedesktop/portal/desktop/request/1_174/obs3
Nov 18 18:31:00 digory xdg-desktop-portal-hyprland[556063]: [LOG] [screencopy]  | /org/freedesktop/portal/desktop/session/1_174/obs1

I've realised I'm on a slightly outdated commit, so I'll rebuild (arch, xdg-desktop-portal-hyprland-git) and see if this goes away, but it's been happening for at least a month.

How do I debug further? If it just failed I'd run in gdb, but I don't want to do that for hours on end until the problem emerges.

@pwfff
Copy link

pwfff commented Dec 27, 2023

for me it's not $HOURS, but literally once and only once. so when I try to screenshare with, say, Discord, the preview works great, but as soon as I choose the screen to actually stream it, I'm prompted twice more to select a screen (regardless of whether or not I manually checked the 'restore token' box), and both attempts fail. trying to share again leaves even the preview broken.

log output with one success and two failures
[LOG] [toplevel] (activate) locks: 1
[LOG] [toplevel] Activated, bound to 563919e7db60, toplevels: 6
[LOG] [screencopy] New session:
[LOG] [screencopy]  | /org/freedesktop/portal/desktop/request/1_24/webrtc_1247569504
[LOG] [screencopy]  | /org/freedesktop/portal/desktop/session/1_24/webrtc_session1436077690
[LOG] [screencopy]  | appid: 
[LOG] [screencopy] SelectSources:
[LOG] [screencopy]  | /org/freedesktop/portal/desktop/request/1_24/webrtc1537828523
[LOG] [screencopy]  | /org/freedesktop/portal/desktop/session/1_24/webrtc_session1436077690
[LOG] [screencopy]  | appid: 
[LOG] [screencopy] option persist_mode to 1
[LOG] [screencopy] unused option multiple
[LOG] [screencopy] unused option types
[LOG] [screencopy] restore data invalid / missing, prompting
[LOG] execAndGet: WAYLAND_DISPLAY=wayland-1 QT_QPA_PLATFORM="wayland" XCURSOR_SIZE=24 HYPRLAND_INSTANCE_SIGNATURE=d74607e414dcd16911089a6d4b6aeb661c880923_1703709085 XDPH_WINDOW_SHARING_LIST="<bunch of stuff>" hyprland-share-picker 2>&1
[LOG] [sc] Selection: /screen:DP-2

[LOG] [screencopy] SHAREDATA returned selection 0
[LOG] [screencopy] Start:
[LOG] [screencopy]  | /org/freedesktop/portal/desktop/request/1_24/webrtc311680905
[LOG] [screencopy]  | /org/freedesktop/portal/desktop/session/1_24/webrtc_session1436077690
[LOG] [screencopy]  | appid: 
[LOG] [screencopy]  | parent_window: 
[LOG] [pw] Building modifiers for dma
[LOG] [screencopy] Sharing initialized
[LOG] [pw] Building modifiers for dma
[LOG] [screencopy] Stream destroyed
[LOG] [screencopy] Session destroyed
[LOG] [toplevel] (deactivate) locks: 0
[LOG] [toplevel] unbound manager
[ERR] [pw] Attempted enqueue on invalid session??
[LOG] [toplevel] (activate) locks: 1
[LOG] [toplevel] Activated, bound to 563919e8fd40, toplevels: 6
[LOG] [screencopy] New session:
[LOG] [screencopy]  | /org/freedesktop/portal/desktop/request/1_24/webrtc_904717317
[LOG] [screencopy]  | /org/freedesktop/portal/desktop/session/1_24/webrtc_session2131647627
[LOG] [screencopy]  | appid: 
[LOG] [screencopy] SelectSources:
[LOG] [screencopy]  | /org/freedesktop/portal/desktop/request/1_24/webrtc874214467
[LOG] [screencopy]  | /org/freedesktop/portal/desktop/session/1_24/webrtc_session2131647627
[LOG] [screencopy]  | appid: 
[LOG] [screencopy] option persist_mode to 1
[LOG] [screencopy] unused option multiple
[LOG] [screencopy] unused option types
[LOG] [screencopy] restore data invalid / missing, prompting
[LOG] execAndGet: WAYLAND_DISPLAY=wayland-1 QT_QPA_PLATFORM="wayland" XCURSOR_SIZE=24 HYPRLAND_INSTANCE_SIGNATURE=d74607e414dcd16911089a6d4b6aeb661c880923_1703709085 XDPH_WINDOW_SHARING_LIST="<bunch of stuff>" hyprland-share-picker 2>&1
[LOG] [sc] Selection: /screen:DP-2

[LOG] [screencopy] SHAREDATA returned selection 0
[LOG] [screencopy] Session destroyed
[LOG] [toplevel] (deactivate) locks: 0
[LOG] [toplevel] unbound manager
[LOG] [toplevel] (activate) locks: 1
not a valid new object id (4278190098), message toplevel(n)
[LOG] [toplevel] Activated, bound to 563919e8fd40, toplevels: 0
[LOG] [screencopy] New session:
[LOG] [screencopy]  | /org/freedesktop/portal/desktop/request/1_24/webrtc_603111804
[LOG] [screencopy]  | /org/freedesktop/portal/desktop/session/1_24/webrtc_session847136615
[LOG] [screencopy]  | appid: 
[LOG] [toplevel] (activate) locks: 2
[LOG] [screencopy] New session:
[LOG] [screencopy]  | /org/freedesktop/portal/desktop/request/1_24/webrtc_356998718
[LOG] [screencopy]  | /org/freedesktop/portal/desktop/session/1_24/webrtc_session1926349320
[LOG] [screencopy]  | appid: 
[LOG] [screencopy] SelectSources:
[LOG] [screencopy]  | /org/freedesktop/portal/desktop/request/1_24/webrtc1122189795
[LOG] [screencopy]  | /org/freedesktop/portal/desktop/session/1_24/webrtc_session847136615
[LOG] [screencopy]  | appid: 
[LOG] [screencopy] option persist_mode to 1
[LOG] [screencopy] unused option multiple
[LOG] [screencopy] unused option types
[LOG] [screencopy] restore data invalid / missing, prompting
[LOG] execAndGet: WAYLAND_DISPLAY=wayland-1 QT_QPA_PLATFORM="wayland" XCURSOR_SIZE=24 HYPRLAND_INSTANCE_SIGNATURE=d74607e414dcd16911089a6d4b6aeb661c880923_1703709085 XDPH_WINDOW_SHARING_LIST="" hyprland-share-picker 2>&1
[LOG] [sc] Selection: /screen:DP-2

[LOG] [screencopy] SHAREDATA returned selection 0
[LOG] [screencopy] Start:
[LOG] [screencopy]  | /org/freedesktop/portal/desktop/request/1_24/webrtc5153249
[LOG] [screencopy]  | /org/freedesktop/portal/desktop/session/1_24/webrtc_session847136615
[LOG] [screencopy]  | appid: 
[LOG] [screencopy]  | parent_window: 
[ERR] [screencopy] Couldn't obtain a format from dma
[LOG] [screencopy] Stream destroyed
[LOG] [screencopy] Session destroyed
[LOG] [toplevel] (deactivate) locks: 1

@ellwoodb
Copy link

ellwoodb commented Dec 28, 2023

I'm having the same problem. After streaming once, it's broken, until I logout and login again. That should restart xdg-desktop-portal-hyprland and then it works again.

Edit: The error is exactly the same as @pwfff : [ERR] [screencopy] Couldn't obtain a format from dma

@higor-dev
Copy link

Having the exact same problem as @pwfff. First screen share works properly, stops working soon as I start sharing again. My logs are equal to @2e0byo's.

As a workaround I'm using the nuclear script from the wiki, https://wiki.hyprland.org/Useful-Utilities/Hyprland-desktop-portal/
everytime I need to screenshare.

@jh-devv
Copy link

jh-devv commented Jan 3, 2024

Having the same issue, seems to be somewhat related to #11 #123,

I'm having the same problem. After streaming once, it's broken, until I logout and login again. That should restart xdg-desktop-portal-hyprland and then it works again.

Edit: The error is exactly the same as @pwfff : [ERR] [screencopy] Couldn't obtain a format from dma

Yea, I noticed this from the menu becoming "empty" in my duplicate issue here #152 😂

@jh-devv
Copy link

jh-devv commented Jan 3, 2024

@ellwoodb I have managed to fix the [ERR] [screencopy] Couldn't obtain a format from dma by having OBS open before doing the screencast on Discord? It's weird, maybe something related to dma?

@ellwoodb
Copy link

ellwoodb commented Jan 3, 2024

@jh-devv I sadly don't have enough knowledge about how the portal works to know about dma stuff.

Despite that, opening OBS before Discord seems to "keep it alive" somehow. Interesting...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants