ArmCord / ArmCord

ArmCord is a custom client designed to enhance your Discord experience while keeping everything lightweight.
https://armcord.app
Open Software License 3.0
1.38k stars 70 forks source link

Screenshare broken on 3.1.6 #359

Open h4rldev opened 1 year ago

h4rldev commented 1 year ago

Describe the bug Can't screenshare when in discord call, Returns with a "DOMException: Not supported".

To Reproduce Steps to reproduce the behavior:

  1. Be in a call/gc call
  2. Click on the screenshare button
  3. See that it does nothing.
  4. Look in console to see error.

Expected behavior Be able to screenshare to my friends.

Screenshots https://user-images.githubusercontent.com/98224660/221689217-92937e98-88ee-402c-b8b6-587f77b4ebb2.mp4

Desktop (please complete the following information):

Additional context None

tmkcell commented 1 year ago

doesn't work on linux either, it worked fine on 3.1.4

smeagolthellama commented 1 year ago

Can confirm that the issue also exists on NixPkgs

$ nix-env -q
armcord-3.1.6
tmkcell commented 1 year ago

i found a fix, you should go into the settings of armcord and change the screenshare option to the other option

still means the newest implementation doesn't actually work

h4rldev commented 1 year ago

That unfortunately didn't resolve the issue after speaking to the dev on the discord server

smartfrigde commented 1 year ago

Can't reproduce, if you're on Windows, try reinstalling ArmCord

h4rldev commented 1 year ago

Have reinstalled 3.1.5 and 3.1.6 twice, both raise the same exception.

red-star-fighter commented 1 year ago

reproduced on Project Nobara/Fedora, using the nixpkgs version. trying to use legacy capturer results in [1] 25804 segmentation fault (core dumped) armcord in terminal and the program crashes.

CorneliusCornbread commented 1 year ago

reproduced on Project Nobara/Fedora, using the nixpkgs version. trying to use legacy capturer results in [1] 25804 segmentation fault (core dumped) armcord in terminal and the program crashes.

Same issue on Nobara via the Flatpak, can confirm

starchyunderscore commented 1 year ago

same result on Nobara using rpm from github releases, both options crash

matijakljajic commented 1 year ago

reproduced on Project Nobara/Fedora, using the nixpkgs version. trying to use legacy capturer results in [1] 25804 segmentation fault (core dumped) armcord in terminal and the program crashes.

Same issue on Nobara via the Flatpak, can confirm

Same result on Fedora Silverblue. Tried to see if I could downgrade to a commit where it works over flatpak with flatpak remote-info --log flathub xyz.armcord.ArmCord, but to no avail unfortunately.

I'm also getting a segfault where the program just crashes, the same error I was getting back when I was using Webcord.

orowith2os commented 1 year ago

3.1.7 on Flathub should be working now, it's using some working Electron builds.

matijakljajic commented 1 year ago

3.1.7 on Flathub over Fedora Silverblue on Electron 21.4.4: While it did indeed stop segfaulting into oblivion, the screenshare button when clicked does literally nothing now.

Going around the problem: Screenshare somewhat works when I switch to legacy screenshare module. Somewhat because screensharing Armcord itself does not work well (it only captures the upper left part of the client for some reason). Haven't tested it in detail.

hideki2k02 commented 1 year ago

Using ArmCord 3.1.7 on X11 (Arch) and Screenshare only works till you close the ArmCord Screen Share Window, if you do you have to restart the app.

You can work around this issue by starting a Share Session, then ending it and trying to share again.

orowith2os commented 1 year ago

@matijakljajic yes, you're supposed to enable the legacy screen capture for it to work on the current Flathub builds. That's all I can do on my end.

So long as screen sharing everything else works, I'm not going to worry about it.

smartfrigde commented 1 year ago

Can this be reproduced again on 3.2.1 (Windows/Linux Only X11 since Wayland is a different case)?

zastrixarundell commented 1 year ago

Fedora Kinoite Ublue version (specifically ostree-image-signed:docker://ghcr.io/ublue-os/kinoite-nvidia:38-530) when running the 3.2.3 version via the flatpak and with the legacy screen capture gives a core dump and exists the whole process.

Here are the logs:

$ flatpak run xyz.armcord.ArmCord 
F: Not sharing "/usr/share/icons" with sandbox: Path "/usr" is reserved by Flatpak
Using Wayland, enabling PipeWire for video capture.
Screenshare may be broken on first start.
Make sure you have the legacy screencapturer enabled.
Wayland socket not available, running through Xwayland.
Using NVIDIA on Wayland, applying workaround
Passing the following arguments to Electron: --enable-gpu-rasterization --enable-zero-copy --enable-gpu-compositing --enable-native-gpu-memory-buffers --enable-oop-rasterization --disable-gpu-blocklist --disable-gpu-sandbox --enable-features=UseSkiaRenderer,WebRTCPipeWireCapturer,WebRTCPipeWireCapturer
[3:0826/033003.703820:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
Wayland detected, using PipeWire for video capture.
[Config manager] doneSetup: true
[Config manager] performanceMode: none
ArmCord has been run before. Skipping setup.
No performance modes set
[Config manager] windowStyle: default
Gtk-Message: 03:30:03.851: Failed to load module "colorreload-gtk-module"
Gtk-Message: 03:30:03.851: Failed to load module "window-decorations-gtk-module"
[3:0826/033003.864769:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
[3:0826/033003.864798:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
[Config manager] armcordCSP: true
[Config manager] doneSetup: true
[Config manager] customIcon: /app/bin/armcord/resources/app.asar/assets/desktop.png
Setting up CSP unstricter...
[Config manager] trayIcon: default
[Config manager] customIcon: /app/bin/armcord/resources/app.asar/assets/desktop.png
[Config manager] tray: true
[Config manager] skipSplash: false
[Config manager] clientName: ArmCord
[Config manager] windowStyle: default
[Window state manager] [object Object]
[Window state manager] [object Object]
[Config manager] mods: vencord
[Window state manager] [object Object]
[Config manager] noBundleUpdates: undefined
[Window state manager] [object Object]
Downloading mod bundle
[Config manager] mods: vencord
[Config manager] spellcheck: true
[Config manager] customJsBundle: https://armcord.app/placeholder.js
[Mod loader] Loaded ArmCord Mod Loader made by Vendicated
[Window state manager] [object Object]
[Config manager] customCssBundle: https://armcord.app/placeholder.css
[Config manager] windowStyle: default
https://github.com/Vendicated/Vencord/releases/download/devbuild/browser.js
[Config manager] ignoreProtocolWarning: undefined
[Config manager] 0: undefined
[Config manager] mobileMode: false
[Config manager] useLegacyCapturer: true
[Config manager] trayIcon: default
[Config manager] keybinds: 
[Config manager] alternativePaste: false
undefined
[Config manager] inviteWebsocket: true
[arRPC] arRPC v3.1.0 ArmCord
[arRPC > ipc] checking /run/user/1002/discord-ipc-0
[Config manager] skipSplash: false
[arRPC > ipc] checked if socket is available: true 
[arRPC > ipc] listening at /run/user/1002/discord-ipc-0
[arRPC > websocket] trying port 6463
[arRPC > websocket] listening on 6463
[arRPC > process] started
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
KMS: DRM_IOCTL_MODE_CREATE_DUMB failed: Permission denied
[Config manager] channel: stable
[Config manager] mods: vencord
[Config manager] automaticPatches: false
[Config manager] channel: stable
[Config manager] mods: vencord
[Config manager] automaticPatches: false
[Config manager] useLegacyCapturer: true
[Config manager] mobileMode: false
[Config manager] tray: true
[Config manager] trayIcon: default
[Config manager] dynamicIcon: false
[Config manager] startMinimized: false
[Config manager] tray: true
[Config manager] trayIcon: default
[Config manager] dynamicIcon: false
[Config manager] tray: true
[Config manager] trayIcon: default
[Config manager] dynamicIcon: false
[Config manager] disableAutogain: false
[3:0826/033011.762801:ERROR:egl_dmabuf.cc(407)] Error during eglInitialize: EGL_NOT_INITIALIZED
[3:0826/033013.742873:ERROR:egl_dmabuf.cc(407)] Error during eglInitialize: EGL_NOT_INITIALIZED
's->loop == &impl->loop' failed at ../spa/plugins/support/loop.c:423 loop_iterate()
[0826/033013.765218:ERROR:scoped_ptrace_attach.cc(27)] ptrace: Operation not permitted (1)
/app/bin/startarmcord: line 39:     3 Aborted                 (core dumped) zypak-wrapper /app/bin/armcord/armcord "${FLAGS[@]}" "$@"

It asks for both which window I want to share and the screen I want to share. If I select both window and screen it crashes. If I select either screen or window and close the other nothing happens.

zastrixarundell commented 1 year ago

When running nvidia wayland with the latest update 3.2.4 streaming DOES work via Nvidia + Wayland.

I had to go into flatseal to enable the Wayland socket and streaming now works. It does open the prompt (which has the window and application tabs), I select what I want to do, then see the notification for streaming and then additionally again select when I want to stream.

I have an issue personally with OBS (and capturing in general, probs because of Nvidia) where my mouse stutters but here's how it works:

https://github.com/ArmCord/ArmCord/assets/30195425/c5fbbb53-f0d7-4a49-83e5-dfb18acae7ce

image

Edit: But it seems that I can't change streaming quality at all.

zastrixarundell commented 1 year ago

It's a so-so situation on Nvidia. On an RTX 2070 running F38 and Nvidia 530 drivers it works under wayland. On a 1650 with F38 and also Nvidia 530 it's a black screen (from one friend) and someone else using a different setup (with nvidia and flatpak) only saw the top-left corner.

Heus-Sueh commented 5 months ago

I can confirm that screenshare works when activating wayland socket on flatseal, but I can't select any option, the window to choose which app to share simply doesn't appear

OS: Ublue Sericea (Sway)