obs-browser: Update default size #202
Open
cg2121 wants to merge 1 commit from
cg2121/browser-defaults into master
pull from: cg2121/browser-defaults
merge into: gh-obsproject:master
gh-obsproject:master
gh-obsproject:archive/20261011T065042Z-force/pull/546
gh-obsproject:archive/20261007T214921Z-force/pull/539
gh-obsproject:archive/20260923T145539Z-rescue/blastorg/fix/source_tearing
gh-obsproject:archive/20260923T145539Z-rescue/SoprachevAK/fix/browser-premultiplied-srgb-blending
gh-obsproject:archive/20260923T145539Z-rescue/Arkkis/media-access-checkbox
gh-obsproject:archive/20260923T145539Z-rescue/WizardCM/inspect-browser-source
gh-obsproject:archive/20260923T145539Z-rescue/PatTheMav/browser-focus-fix
gh-obsproject:archive/20260923T145539Z-rescue/fauxnik/source-visibility
gh-obsproject:archive/20260923T145539Z-rescue/exeldro/browser_signal
gh-obsproject:archive/20260923T145539Z-rescue/exeldro/browser_size
gh-obsproject:archive/20260923T145539Z-rescue/tytan652/proc_handler_api
gh-obsproject:2.23.x
gh-obsproject:archive/20260923T145539Z-rescue/tt2468/fix/browser-logging
gh-obsproject:archive/20260923T145539Z-rescue/alyssais/zoom
gh-obsproject:2.22.x
gh-obsproject:hack-and-a-half
gh-obsproject:on-accelerated-paint2
gh-obsproject:archive/20260923T145539Z-rescue/cg2121/browser-defaults
gh-obsproject:test
gh-obsproject:archive/20260923T145539Z-rescue/tags/20.3.8.603
gh-obsproject:archive/20260923T145539Z-rescue/tags/20.2.28.571
gh-obsproject:archive/20260923T145539Z-rescue/tags/20.2.13.559
gh-obsproject:archive/20260923T145539Z-rescue/tags/20.2.14.563
gh-obsproject:archive/20260923T145539Z-rescue/tags/20.2.3.551
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.12.17.537
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.10.24.511
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.10.16.502
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.10.14.499
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.9.21.487
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.9.21.483
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.9.18.466
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.9.8.457
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.8.19.444
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.7.14.421
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.7.1.416
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.6.17.410
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.6.7.407
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.6.7.401
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.5.29.397
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.5.29.398
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.5.27.394
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.5.26.390
gh-obsproject:qt-message-pump
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.4.21.384
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.3.17.363
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.3.13.359
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.3.13.356
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.3.8.351
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.3.6.348
gh-obsproject:archive/20260923T145539Z-rescue/StreamElements/flush_cookies_on_exit
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.3.6.346
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.2.26.339
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.2.18.331
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.2.12.327
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.2.10.323
gh-obsproject:panel-update-final
gh-obsproject:panel-update
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.1.28.319
gh-obsproject:audio_support
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.1.8.305
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.1.6.301
gh-obsproject:archive/20260923T145539Z-rescue/tags/18.12.25.297
gh-obsproject:archive/20260923T145539Z-rescue/tags/18.8.21.183
gh-obsproject:archive/20260923T145539Z-rescue/tags/18.8.8.165
gh-obsproject:archive/20260923T145539Z-rescue/tags/18.8.2.151
gh-obsproject:archive/20260923T145539Z-rescue/tags/18.7.25.133
gh-obsproject:osx
No reviewers
Labels
Clear labels
area/accessibility
Improves accessibility of the program
area/dependency
Issue is in external library or dependency, not OBS itself
Confirmed
Crash Report
Delayed
Merging has been delayed due to an issue
Design Issue
There is an issue with incorporating this pull request's design. It may take some time to finalize.
Duplicate
Feedback required
Issue does not contain enough information or is missing the template
Good first issue
New to contributing to OBS? Start here!
kind/bug
Categorizes issue or PR as related to a bug.
kind/cleanup
Non-breaking change which makes code smaller or more readable
kind/enhancement
Enhancements are not bugs or new features but can improve usability or performance.
platform/linux
platform/macos
platform/windows
priority/high
This is an important PR
Question
Request for Comments
More feedback & discussion is requested
Seeking Other Contributors
This PR needs help from any other developers who are willing to give a crack at this code
Seeking Testers
Won't Fix / By Design
No labels
area/accessibility
area/dependency
Confirmed
Crash Report
Delayed
Design Issue
Duplicate
Feedback required
Good first issue
kind/bug
kind/cleanup
kind/enhancement
platform/linux
platform/macos
platform/windows
priority/high
Question
Request for Comments
Seeking Other Contributors
Seeking Testers
Won't Fix / By Design
Milestone
Clear milestone
No items
No milestone
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set
Reference
gh-obsproject/obs-browser!202
Loading…
Reference in a new issue
No description provided.
Delete branch "cg2121/browser-defaults"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Description
Changes default size to size of canvas.
Motivation and Context
A better default.
How Has This Been Tested?
Created browser source.
Types of changes
Checklist:
Could this technically call
browser_source_get_defaults()first, then set the width/height in this function?I prefer something like this, but it's probably down to personal preference.
https://github.com/RytoEX/obs-browser/tree/change-default-size
Do we even need a v2 here? We're not changing anything except the default value so users shouldn't experience any unexpected issues as the defaults are only used on source creation or reset.
In the event a user does restore the browser source back to defaults (and is thus presumably OK with losing all their settings and getting new defaults), it would be confusing that the defaults of a legacy browser source do not match the defaults of a newly added browser source, with no visible way to distinguish between them.
Yes, v2 is required because the defaults aren't saved on source creation. It's the reason v2 exists at all.
The feedback I provided in my previous review has not yet been responded to, so I don't believe this should be merged as-is.
Ah I see, I didn't realise our defaults worked like that.
I was also thinking this as code duplication is generally bad, but after realising our defaults work in the way they do, it does also seem somewhat fitting to keep them separated. If we're committed to never changing v1 defaults then I think removing the duplication is OK.
Would it also make sense to default to the canvas FPS here?
Updated function to remove duplicate code.
This fps setting is only used if 'use custom fps' is checked.
I'm aware of that, but in those situations wouldn't it also make sense to default to the current FPS?
So, extending what I said above, today I learned that if you create a browser source and click "OK", all settings are saved because of the way the functions in the browser source are written (this should not actually be the case, but it is). So it's safe to assume that any browser made since the v2 rewrite (at least) has the current default resolution saved.
I personally have reservations about this. I use OBS on very lightweight machines and browser sources account for most of the resource utilization on them. Making the default size the size of the canvas will end up leading to our users creating larger browser sources than necessary, and therefore increasing the performance footprint of OBS.
If I were to tackle this issue, I would add a way for the content in the browser source itself to announce a "optimal resolution" to obs-browser, and obs-browser could queue an
obs_source_update()with the new width/height settings. This would improve user experience and make browser integrations more seamless.This proposed change is the result of conversations at TwitchCon and in our Discord server where users mentioned that overlay tools expect/encourage you to build the overlay at canvas size or that they build them this way unprompted because that is intuitive. The fact that our default browser source size is neither the canvas size nor even the same aspect ratio, means that they have to change it in the settings manually each time. Resizing the scene item with transform settings produces sub-par results.
It has been suggested before that obs-browser should support meta tags that specify width, height, and FPS. It was just never implemented. See here:
github.com/obsproject/obs-browser@e54c9f14b3/data/error.htmlIf you wanted to try to implement something like that, be my guest. Though that wouldn't necessarily help with alerts or overlays unless the providers also then implemented them.
Fair enough. I do believe in the meta tags idea, so I'll try to find time to work on that.
View command line instructions
Manual merge helper
Use this merge commit message when completing the merge manually.
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.