obsproject/obs-studio

"Display" Capture Mode Fails to Handle Monitor Scaling [Linux / Cinnamon Desktop]. [Low Priority].

Opened this issue · 2 comments

Operating System Info

Other

Other OS

Linux Mint 21.3 / Virginia . AMD64 [based on Ubuntu Jammy]

OBS Studio Version

Other

OBS Studio Version (Other)

30.2.3

OBS Studio Log URL

https://obsproject.com/logs/GrwBDNh3O6IOJ4Ii

OBS Studio Crash Log URL

No response

Expected Behavior

Attempting to use Display Capture Mode, I would expect to see the resultant capture file set with a resolution that matches my desktop display [2560x1440 pixels]. This is the native resolution of my monitors.

This would seem to be the most logical / least surprising way to employ this option in the application.

Current Behavior

When OBS captures display-level data, it records this as being of resolution 4096x2304 pixels, not the actual screen resolution of 2560x1440.

I am not sure if it is relevant, but as my attached example shows, I am using a "display zoom" feature of Cinnamon desktop to allow me to enlarge on-screen font sizes, given the high resolution of my displays. I have this set to "125%", but if you take my native resolution - 2560x1440 - and apply a 25% scaling factor, you do not get to the claimed resolution of 4096x2304.

I do not understand why OBS considers my display to be set to 4096x2304... but would like to see it scale/set to my actual display resolution.

The net operational impact is that when I am "capturing" the monitor output, approximately the bottom third of the capture is not visible in the OBS window. I would expect OBS to do the "least surprising thing" - i.e. when I have set it to "Display Capture", I should be able to see the whole display in the capture window.

Image

Steps to Reproduce

  1. Set up a Linux/Cinnamon desktop with "Display Zoom"
  2. Use OBS to capture data from a "Display Capture" source
  3. Note that only part of the captured feed is visible in the OBS preview window.
    ...

Anything else we should know?

No response

When using display scaling on X11 this is expected behavior afaik

When using display scaling on X11 this is expected behavior afaik

That's my question though, _is_this X11 scaling?

The native resolution of my monitors is 2560x1440 pixels - they're Gigabyte 27" panels. But as you can see from the above screen shot, I have my display scaling set to 125%. However, OBS "thinks" that my resolution is 4096x2304 pixels.

If you do the math, you see that 4096 = 2560 x 1.6 and 2304 = 1440 x 1.6.

So in other words, the scaling be applied here isn't from X11 display, but is coming from somewhere else.

In composing this reply, I realise that one thing I didn't try before posting my original report was to reset my display scaling from 125% to 100% and then re-testing to see what results I get. I'll have a go at that.

But there is something here that doesn't make sense... and - not wishing to seem like I'm arguing with you... which is not my intent... if OBS is capturing the display then it should be capturing what is actually being shown on the screen and not just part of it.

Or put another way... it seems like OBS is intercepting the video traffic from the "wrong" location in the rendering chain. And of course I don't know what I'm talking about, I'm just trying to observe that the behaviour I see isn't simply "incorrect", but "illogical" too.