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

[BUG] Window capture(Xcomposite) video freezes when switchig between virtual desktops Linux #4160

Closed
AndersonIsaac opened this issue Jan 29, 2021 · 1 comment

Comments

@AndersonIsaac
Copy link

Window capture freezes when switchig between virtual desktops or moving either recorded window or OBS window on another virtual desktop.

Tested on cinnamon, gnome3, mate, plasma (kde), lxde desktop environments and awesome, i3 window managers.

Platform

Operating system and version:
Debian 10 4.19.0-11-amd64
(Tested on ArchLinux on a different PC as well, same results)

OBS Studio version:

OBS Studio - 0.0.1 (linux) // installed via apt

and tested the latest version (26.1.2) built from source following all the instructions.

But strangely enough ./obs -V returns "OBS Studio - 0.0.1 (linux)".

Results do not differ between OBS versions.

Expected Behavior

Recording seamlessly proceeds with no regard toward at which virtual desktop I am, OBS window or recorded window is, and whether the recorded window is fullscreen or not.

Current Behavior

Recording VIDEO freezes.

It would either stop as if I paused the source video or be black screen with sporadic flickering showing another windows, which OBS was not setup to capture.

In both cases the desktop/mic sound recording goes on, that's the video problem.

Tried to log via obs > log.txt, but found nothing relevant, OBS doesn't return any errors.

Steps to Reproduce

See Additional information before attempting to reproduce, results may vary between desktop environments.

  1. Start up OBS. (workspace 1)
  2. Set up Window Capture (Xcomposite) to capture a browser page with youtube video, or any video played locally in mpv or vlc.
  3. Start the recording, start the video (or vice versa).
  4. Move OBS window to a different workspace. (workspace 2)

For desktop environments:
rightclick on the window icon on the menubar
choose something like "Move to workspace"
choose a diferet workspace

For i3/awesome:
shortcut: super+shift+2 (super is usually a win key or alt, unless configured otherwise by the user)

  1. Change the workspace to the 2 workspace (the one we moved OBS to).
    For desktop environments (usually): ctrl+alt+(right or left arrow key), (for gnome ctrl+alt+up/down arrow)
    For i3/awesome: super+2

  2. Switch a couple of times between workspace 1 and 2.

  3. Go to workspace 1 and maximize the video window (fullscreen).

  4. Go back to workspace 2, perform step 6.

  5. Stop OBS recording.

  6. Examine the record.

Additional information

For both Awesome and i3 video freezes, no matter whether fullscreen or not.
Since Awesome is based on i3, maybe that's the case of a shared issue, or maybe the problem lies in how they perform desktop virtualization.

Mate Desktop (version 1.20.4) - freezes the same as i3/awesome.

Plasma (version plasmashell 5.14.5) - freezes occur only when making the recorded window fullscreen and having obs window on different virtual desktop. (Else, if not fullscreen, there's no freezing while moving between virtual desktops)

On Cinnamon (3.8.8) and Gnome3 OBS works as expected - recording seamlessly proceeds with no regard toward at which virtual desktop I am, OBS window or recorded window is.

Used linux standard graphics drivers:

~> glxinfo -B
name of display: :0
display: :0 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: Intel Open Source Technology Center (0x8086)
Device: Mesa DRI Intel(R) Ivybridge Mobile (0x166)
Version: 18.3.6
Accelerated: yes
Video memory: 1536MB
Unified memory: yes
Preferred profile: core (0x1)
Max core profile version: 4.2
Max compat profile version: 3.0
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.0
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile
OpenGL core profile version string: 4.2 (Core Profile) Mesa 18.3.6
OpenGL core profile shading language version string: 4.20
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 3.0 Mesa 18.3.6
OpenGL shading language version string: 1.30
OpenGL context flags: (none)

OpenGL ES profile version string: OpenGL ES 3.0 Mesa 18.3.6
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00

@kkartaltepe
Copy link
Collaborator

Your compositor stops rendering the window so there is nothing for obs to capture. This is the same as minimizing a window on windows for example. File a bug against if your compositor to let all windows render regardless of their visibility if you really want this functionality.

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

2 participants