-
Notifications
You must be signed in to change notification settings - Fork 228
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
Custom browser dock window under Wayland is transparent #279
Comments
This should probably be disabled on wayland, the browser docks were not updated to work on wayland yet. |
That sounds safest, if doable to avoid this subpar UX. |
When running on Wayland, the browser docks look broken and sometimes they crash OBS Studio. Interestingly, browser sources seem to work just fine. Ideally we'd be able to dig into the issue and find the root cause, but time is short for thr 27 release and disabling the docks until this is figured out seems to be the best alternative for now. Of course this is a temporary workaround, and eventually this commit will be reverted, and browser docks will work just fine, flowers and rainbows and happy unicorns. Disable browser docks on Wayland. Related: obsproject/obs-browser#279
When running on Wayland, the browser docks look broken and sometimes they crash OBS Studio. Interestingly, browser sources seem to work just fine. Ideally we'd be able to dig into the issue and find the root cause, but time is short for the 27 release and disabling the docks until this is figured out seems to be the best alternative for now. Of course this is a temporary workaround, and eventually this commit will be reverted, and browser docks will work just fine, flowers and rainbows and happy unicorns. Disable browser docks on Wayland. Related: obsproject/obs-browser#279
When running on Wayland, the browser docks look broken and sometimes they crash OBS Studio. Interestingly, browser sources seem to work just fine. Ideally we'd be able to dig into the issue and find the root cause, but time is short for the 27 release and disabling the docks until this is figured out seems to be the best alternative for now. Of course this is a temporary workaround, and eventually this commit will be reverted, and browser docks will work just fine, flowers and rainbows and happy unicorns. Disable browser docks on Wayland, which includes both the manually added docks, and the docks OBS Studio creates for authentication for Twitch and Restream.io. Related: obsproject/obs-browser#279
When running on Wayland, the browser docks look broken and sometimes they crash OBS Studio. Interestingly, browser sources seem to work just fine. Ideally we'd be able to dig into the issue and find the root cause, but time is short for the 27 release and disabling the docks until this is figured out seems to be the best alternative for now. Of course this is a temporary workaround, and eventually this commit will be reverted, and browser docks will work just fine, flowers and rainbows and happy unicorns. Disable browser docks on Wayland, which includes both the manually added docks, and the docks OBS Studio creates for authentication for Twitch and Restream.io. Related: obsproject/obs-browser#279
When running on Wayland, the browser docks look broken and sometimes they crash OBS Studio. Interestingly, browser sources seem to work just fine. Ideally we'd be able to dig into the issue and find the root cause, but time is short for the 27 release and disabling the docks until this is figured out seems to be the best alternative for now. Of course this is a temporary workaround, and eventually this commit will be reverted, and browser docks will work just fine, flowers and rainbows and happy unicorns. Disable browser docks on Wayland, which includes both the manually added docks, and the docks OBS Studio creates for authentication for Twitch and Restream.io. Related: obsproject/obs-browser#279 #4436
@GeorgesStavracas Just to clarify, what is needed to actually fix this? Changes on our side? Qt patches? |
I'm not really sure. I suspect this problem exists because CEF is using Xwayland to render, and then passing the contents to a Wayland application. This just can't go well. But it can be something else entirely... |
Hmm Browser Docks should be deactivated from what I remember when you run obs in wayland because of known issues. |
Yes, this was opened before we disabled them on Wayland. I was just asking for clarity on what would need to be done to actually fix the issue rather than temporarily disabling them, which we've already done. |
I actually dont know how the browser sources work at all, but what I think is happening here is.
|
When running on Wayland, the browser docks look broken and sometimes they crash OBS Studio. Interestingly, browser sources seem to work just fine. Ideally we'd be able to dig into the issue and find the root cause, but time is short for the 27 release and disabling the docks until this is figured out seems to be the best alternative for now. Of course this is a temporary workaround, and eventually this commit will be reverted, and browser docks will work just fine, flowers and rainbows and happy unicorns. Disable browser docks on Wayland, which includes both the manually added docks, and the docks OBS Studio creates for authentication for Twitch and Restream.io. Related: obsproject/obs-browser#279 obsproject#4436
When running on Wayland, the browser docks look broken and sometimes they crash OBS Studio. Interestingly, browser sources seem to work just fine. Ideally we'd be able to dig into the issue and find the root cause, but time is short for the 27 release and disabling the docks until this is figured out seems to be the best alternative for now. Of course this is a temporary workaround, and eventually this commit will be reverted, and browser docks will work just fine, flowers and rainbows and happy unicorns. Disable browser docks on Wayland, which includes both the manually added docks, and the docks OBS Studio creates for authentication for Twitch and Restream.io. Related: obsproject/obs-browser#279 obsproject#4436
* UI: Remove Qt5MacExtras QtMacExtras is currently not in Qt6 and there's no word on if/when it will be reintroduced. We don't appear to be using it, so let's remove it. * docs: Document gs_texture_create_from_dmabuf Add some documentation about this new Linux-only function, and its characteristics. * UI: Fix wrong strings for Undo/Redo * UI/installer: Add exit codes for silent installer Code 3 = Unsupported OS (64bit on 32bit or below Windows 7) Code 4 = Missing a dependency (VS 2019 or DirectX redistributables) Code 5 = OBS is already running Code 6 = OBS files are in use by another app (eg virtual camera) * UI: Fix character to prevent VS2019 compiler error Apparently the specific character can cause VS2019 to have compiler errors depending on the system's current character encoding, so just remove it instead. (-Jim) * UI: Fix crash on exit with stuck encoder If the encoder is hung and you try to exit these two values will still be null when obs shutting down. * win-capture: Restore GL capture deduplication Previous fix attempted to place swap_recurse count in gl_data struct, where it could be unexpectedly memset to 0. Separate member from struct, and make thread-local for additional safety. * win-dshow: Fix crashing when using a custom vcam placeholder The scaler assumed the placeholder was the same size as the camera which caused crashes if the user replaced the placeholder with a smaller resolution image (or if the camera was potentially running at > 1080p). This adds a separate scaler for the placeholder and uses the resolution of the virtual camera instead of defaulting to 1080p. * UI: Ignore scene source which has been removed While getting source list, we should ignore scene source which has been removed. If we don't ignore it, a deleted scene source will be added later. Besides, signals of that scene have been sent before, such as "remove" of scene. So we can't remove this scene source by "auto removeItem" defined in SourceTreeItem::ReconnectSignals(). Fixes obsproject#2602 * obs-transitions: Add narrowing casts * libobs/util: Fix warnings for about null usages * libobs/util: Skip pointless free for null * flibobs: Fix unnecessary truncation * libobs: obs-scene type fixes Replace "rot" int usages with double. Add explicit narrowing casts to fix warnings. * rtmp-services: Include format version in update URL * rtmp-services: Update package counter Need to do this because the file needs updating on the server but a certain service has to be excluded because code to actually use it isn't in any version before 27. * UI: Add save notifications to status bar This shows notifications in the status bar with the following: - When screenshot is saved - When replay buffer is saved - When recording is saved - When recording is auto remuxed * obs-browser: Update version to 2.14.1 * UI: Remove unnecessary IS_WIN32 macro * Revert "UI: Remove unnecessary IS_WIN32 macro" This reverts commit 113b631. * flatpak: Use current tree for building OBS We always want to build the current build tree, not the upstream repository. * CI: Enable build cache for the Flatpak workflow This allows caching build objects, and using ccache to skip building them on follow-up runs. * libobs: Remove unnecessary null check * libobs: Don't save temporarily removed sources The only references to these sources exist in the undo buffer, they are not attached to a scene and cause issues when loaded on the next startup. * libobs: Add filter functions for SRGB support This way, legacy filters can use the original functions without triggering SRGB support. * obs-filters: Use new pattern for SRGB support * obs-filters: Perform chroma key in nonlinear space Don't want to deal with regressions from using linear space right now. * win-dshow/libdshowcapture: Update to 0.8.7 * linux-capture: De-escalate assertion to a warning The assertion exposed a bug in the KDE implementation of the Desktop portal. However, it comes with the side effect of exiting OBS Studio in this case, where we can actually make it work (even if buggy). De-escalate the assertion to a warning, and then attempt to find the correct stream to use. * obs-filters: Fix initialization of RTX denoiser This fixes issue obsproject#4441. The issue occurs when adding the noise suppression filter for the first time. Rnnoise or speex are the default noise suppression methods. Line 344 returns which prevents initialization and allocation for nvafx (rtx denoiser). With the fix, initialization of nvafx occurs when swapping methods. * obs-filters: Code cleanup for RTX denoiser This minor code cleanup commit does the following: - sets defaults intensity of RTX denoiser to max. - adds an initialization check of nvafx. - splits nvafx initialization from channel allocation for better readibility of the code. - moves the intensity update from the filter_audio process function to the plugin update function. - logs the error code in case nvafx returns an error when running. (useful for devs; I haven't translated the error codes which are available in the sdk). * UI: Conform transition duration in Scene Transition dock * win-dshow: Fix libdshowcapture formatting * obs-browser: Disable browser panels on Wayland for now When running on Wayland, the browser docks look broken and sometimes they crash OBS Studio. Interestingly, browser sources seem to work just fine. Ideally we'd be able to dig into the issue and find the root cause, but time is short for the 27 release and disabling the docks until this is figured out seems to be the best alternative for now. Of course this is a temporary workaround, and eventually this commit will be reverted, and browser docks will work just fine, flowers and rainbows and happy unicorns. Disable browser docks on Wayland, which includes both the manually added docks, and the docks OBS Studio creates for authentication for Twitch and Restream.io. Related: obsproject/obs-browser#279 obsproject#4436 * UI: Add maximum number of items in undo/redo stack * UI: Wipe undo/redo stack when switching scene collections * UI: Clear undo stack in ClearSceneData() instead Makes more sense to clear it here. * libobs: Add obs_source_enum_full_tree() Allows the ability to enumerate all sources and subsources in a source's hierarchy, regardless of whether they're active or not. * libobs: Add obs_source_load2() Allows loading a source and all of its filters automatically. Previously, the original obs_source_load would not load filters. * libobs: Add obs_obj_is_private() Returns true if an obs object is considered private. (Author's note: the concept of "private" objects is not ideal, but we're stuck with it for now) * libobs: Add obs_source_is_scene() * UI: Fix Undo/Redo holding source references Holding references to sources is never a good idea. Instead, save and restore the scene and its subsources on removal. Co-authored-by: Jim <[email protected]> Closes obsproject#4462 * plugins: Set obs-browser as a default requirement BUILD_BROWSER is set to ON by default. If obs-browser is not present CMake will emit a fatal error. * plugins: Set obs-vst as a default requirement BUILD_VST option is added and set to ON by default. If obs-vst is not present CMake will emit a fatal error. * linux-capture: Ask for PipeWire if deps not found CMake will now emit a fatal error if PipeWire or Gio are not present. * obs-filters: Add color settings to correction v2 Restore color tint/overlay functionality, but with separate controls for tinting (multiply) and overlay (add). * obs-browser: Emit fatal error if CEF or X11 is missing CMake will now emit a fatal error if CEF or X11 is not found rather than disabling obs-browser * flatpak: Disable obs-browser build * UI: Force current scene when using undo/redo The undo/redo functions are setting the current scene. Everytime it would do this, it would actually transition to the scene. This forces the current scene, so it fixes a bug where the transition would be grayed out when undoing/redoing. * UI: Update context bar when using undo/redo The context bar wouldn't update when using undo and redo. * UI: Fix reordering scenes not working properly If the user were reordering scenes, the preview scene would change to a different one, than the one they were currently on. * rtmp-services: Update Mixcloud * UI: Fix wrong behavior with undo/redo and groups * obs-ffmpeg: Expose psycho-aq setting This was changed to default on but is not exposed for ffmpeg nvenc. Where cards without temporal AQ support will fail to initialize and we cannot do checks beforehand. This exposes the parameter to allow users to disable this feature when using the ffmpeg implementation. * README.rst: Replace Azure Pipelines badge with GitHub Actions * azure-pipelines.yml: Remove Replaced completely by GitHub Actions * UI: Fix spamming of log when setting current scene When setting the current scene and if it was the same as the previous, the log would be spammed with switching scene messages. This issue particularly happened when using undo/redo, as their functions were setting the current scene. * libobs: Add transition save/load functions Moves the transition saving/loading to functions, and refactors existing code to use those functions instead. * UI: Add Undo/Redo for source visibility transitions * cmake: Automatically copy datatarget PDBs Helps ensure DLLs associated with game capture, virtual camera, and other such files have their PDBs copied alongside them in any Windows build, and allows the ability to trace crashes that may occur from within those files more easily. * CI: Specify arch for prebuilt deps * vlc-video: Ignore URLs when checking for missing files * UI: Fix undo data being saved when no changes occur obs_scene_save_transform_states was called with all_items = true when starting a transform, but all_items = false when comparing undo data. Fixes obsproject#4510 * UI: Increase float property decimals based on step Values are no longer truncated if a small step is specified. * obs-filters: Increase brightness precision Necessary for adjusting colors near black. * UI: Use newer Twitch Dashboard docks for integration Fixes an issue where the submit button on the Stream Information dock would be cut off at certain resolutions. * mac-virtualcam: Fix memory leaks Fixes some memory leaks Xcode has detected * libobs: Return target vec not current when within EPSILON If current vector is within EPSILON, it would return the current, when logically the target should be returned instead. * mac-capture: Add another virtual output loopback device Adds "GroundControl" fake output device for audio loopback on macOS. * mac-virtualcam: Hide logging behind debug flag Hides the DLog and DLogFunc macros behind the -DDEBUG flag, causing the logs to only appear in testing environments. On production build, calls to these macros will result in nothing happening. * obs-filters: Increase luma key precision * win-dshow: Fix virtual camera CPU usage, add more comments My previous commits would rescale the placeholder for output on every frame which was not CPU efficient. Now we store a copy of the scaled placeholder and update it any time the resolution / FPS / format changes. A new function GetOutputBufferSize was added to allow calculating the output size when needed. The existing code assumed a 12-bit format if the placeholder didn't load, which could cause grey / green output. An optimization was made to only load and scale the placeholder once the virtual output starts, as many applications load and unload the filter multiple times during enumeration of devices. Various comments were also added to help clarify how the filter works. * flatpak: Reenable browser source It seems that the browser source works inside a Flatpak sandbox and/or Wayland with CEF 4280, so let's try and reenable it. This reverts commit e64c617. * UI: Fix missing Files dialog crash loading source icon * libobs: Save obs_data json in compact form * libobs: Add helper func to find a scene by name * UI: Make undo_stack types in-class and private Reduces polluting the global namespace * UI: Add Undo/Redo for source visibility (Author note: This is why I hate supporting undo/redo.) Fixes obsproject#4447 * UI: Fix invalid check for Remove Multiple Sources dialog result Fixes obsproject#4546 * UI: Fix crash when closing missing files window A crash would occur when clicking the 'x' button in the missing files dialog. This seemed to only happen in debug mode and using QT 5.15.0. Closes obsproject#4363 Fixes obsproject#4359 * linux-v4l2: Use flatpak-spawn when inside a Flatpak sandbox It is not possible to run host system executables like modinfo, pkexec, and modprobe inside a Flatpak sandbox. However, Flatpak provides a way to run command on the host system: the flatpak-spawn executable. flatpak-spawn is a tiny helper that, when executed with the '--host' parameter, talks to the org.freedesktop.Flatpak D-Bus interface to run and retrieve the return value of the executable. This provides OBS Studio a way to escape this sandbox limitation without opening large holes in the sandbox. Make v4l2's implementation of VirtualCam run system commands using flatpak-spawn when inside a Flatpak sandbox. The detection of the sandbox is done by checking the existence of the /.flatpak-info file, which is created by Flatpak itself, and only exists inside the sandbox. If OBS Studio is not running inside a Flatpak sandbox, run the exact same command it used to run before this commit. Add the permission to talk to the org.freedesktop.Flatpak D-Bus interface to the Flatpak manifest, so we can run flatpak-spawn with the '--host' parameter. Notice that the same constraints apply with and without Flatpak: the host system needs to have the v4l2loopback kernel module available for the v4l2 implementation of VirtualCam to work. * CI,cmake: Fix macOS version information Fixes an issue where on macOS the app’s Info window in Finder would say "Version: OBS - Free and Open Source Streaming/Recording Software" instead of the version set in CFBundleShortVersionString. Since CFBundleGetInfoString is deprecated anyways, it can safely be removed. * CI: Use flatpak-builder subaction The Flatpak action now contains two subactions: - flatpak-builder: for building and uploading a bundle - flat-manager: for deploying the bundle to a remote repository Use the right action (flatpak-builder) for the Flatpak workflow. This won't affect existing pull requests, except the ones that have the "Seeking Testers" label applied - in which case, they simply need to rebase against the master branch. * UI: Delete unimplemented declaration, LoadProfile() * obs-transitions: Remove scaling of track matte texture * obs-transitions: Crop output of stinger media player This fixes an issue with Track Matte Stingers applied as visibility transitions, where the side-by-side or stacked matte file mode would result in the matte part of the video to "overflow" outside of the transition's zone * rtmp-services: Add Luzento.com * rtmp-services: Update Twitter.com * UI: Fix imported scene collection names duplicating If an imported scene collection has a name that already exists, it will instead be given a name plus an increment (e.g. "name 2", or "name 3", etc) Fixes obsproject#4442 * UI: Add undo/redo for source reordering * UI: Add missing locale text for reorder undo/redo * obs-transitions: Nonlinear SRGB, fade to color Switch back for now. Maybe we want CIELUV, but that's expensive. * obs-transitions: Nonlinear SRGB, fade Switch back for now. Maybe we want CIELUV, but that's expensive. * obs-transitions: Nonlinear SRGB, luma wipe Switch back for now. Maybe we want CIELUV, but that's expensive. * obs-transitions: Nonlinear SRGB, slide Switch back for now. Maybe we want CIELUV, but that's expensive. * obs-transitions: Nonlinear SRGB, swipe Switch back for now. Maybe we want CIELUV, but that's expensive. * libobs: Add obs_data_get_last_json() Helper function to return the last generated json string for this object. * UI: Refactor scene action undo/redo Allows this code to be used for other actions where the scene data needs to be backed up * UI: Use scene backup/undo/redo funcs for reordering Fixes a bug where groups would not be backed up properly * libobs: Add DrawNonlinearAlpha technique This allows OBS to mimic other programs that incorrectly use alpha. Requires premultiplied blend state. * docs: Fix erroneous code example * libobs: Filter using premultiplied alpha Convert incoming straight alpha color to premultiplied at filter begin, and process premultiplied value at filter end. If direct rendering is allowed, we assume the input source outputs premultiiplied alpha. If not, that source will need to be updated. * libobs: Render async video with DrawNonlinearAlpha Match previous OBS alpha behavior. DrawNonlinearAlpha requires premultiplied alpha blend state. * image-source: Use DrawNonlinearAlpha Match previous OBS alpha behavior. DrawNonlinearAlpha requires premultiplied alpha blend state. * obs-filters: Initialize NVIDIA AFX in a thread Initializing NVAFX is slow as it has to load large models and can cause significant impact to OBS' startup time. This moves NVAFX initialization into a separate thread. NVAFX does not appear to be reentrant across threads, hence a global mutex is also used to avoid reentrancy issues. The downside of this change is that the first few seconds of audio after adding the filter or starting OBS will not be filtered, but this is unlikely to cause any real-world issues. * obs-filters: RTX denoiser, initialize only output channels This reduces the initialization from 8 to the actual number of output channels. * obs-filters: Better describe denoiser methods in menu The description of the noise suppression methods was updated to reflect cpu usage and quality in a more accurate manner. * libobs: Fix crash in missingfiles when source is invalid * obs-filters: Check NVAFX is enabled before using mutexes Fixes a crash on destroy if NVAFX wasn't actually available. * text-freetype2: Render in nonlinear space Colors not working properly. Don't want to alter gradients (yet). * UI: Add undo/redo actions for move up/down/top/bottom Fixes obsproject#4567 * UI: Cleanup on_scenes_currentItemChanged function Removed unnecessary lines from the function. Also if the source happened to be null, the SetCurrentScene function would be called anyway. Finally, the UpdateContextBar and api lines were removed, as they are also being called with SetCurrentScene. * obs-filters: Use correct branding for NVIDIA Noise Removal The feature name is "Noise Removal" with that exact capitalization. "NVIDIA Noise Removal" or "Noise Removal, powered by NVIDIA Broadcast" are the two valid options for displaying this feature name in the UI. * UI: Remove unnecessary Undo/Redo cleanup func Since fixing the reference holding issue with scene/source deletion, the undo/redo cleanup function (last param of add_action) is no longer required. * UI: Add repeat protection for Undo/Redo This allows the ability to mark an action as repeatable, which when set, makes it so that it will change only the redo value for the last undo item in the undo stack within the last three seconds. This allows the ability to, for example, scroll a spinbox or change a slider value without creating many unnecessarily duplicated undo/redo actions. * UI: Add Undo/Redo items for adv. audio properties Rather than forcing the user to close the advanced audio properties window in order to obtain an undo/redo action, use explicit undo/redo actions for each widget change in the advanced audio properties dialog. * UI: Add Undo/Redo for volume change/mute via main fader * UI: Use std::bind for visibility undo/redo action This is better and slightly more optimal code over what it was before. * CI: Use a stable version of the Flatpak action * libobs: Don't force premultiplied alpha on filters Many filters need to remultiply alpha on output. * obs-filters: Handle premultiplied alpha input Mostly by converting to straight alpha in shader when necessary. * UI: Fix undo/redo enabling redo with no items in redo * UI: Fix audio filters being deleted not getting added to undo * UI: Fix audio filter changes not being added to undo When a change to an audio filter was done, it would create a timer and wait for no more inputs before saving and adding to undo (this is to prevent spam from sliders). For some reason, the timer would get destroyed before the information is saved, preventing it from going on the undo stack. * UI: Fix missing files dialog starting hidden (macOS) An annoying hack to fix the dialog being hidden behind the main window when the program starts up on macOS. * obs-filters: Fix bad math in Color Key v1 Do not treat incoming color uniform as premultiplied. * libobs: Add functions to backup/restore filters Adds functions to backup and restore filters (along with their order) on a specified source. Useful for undo/redo operations. * UI: Add Undo/Redo for pasting multiple filters Closes obsproject#4616 * UI: Add Undo/Redo for single filter copy/paste Closes obsproject#4616 * obs-filters: Increase opacity precision For v2 filters, switch Opacity settings from integer [0, 100] to floating-point [0.0, 1.0] with four decimal places for granular blacks. Also multiply alpha in shader to maintain precision. * UI: Fix Undo/Redo for pasting multiple filters Fixes bug introduced in commit d7e4945 * UI: Remove duplicate include * libobs: Add obs_source_reset_settings() Allows the ability to reset (erase) a source's existing settings and replace them with new settings. This is useful for things such as reverting to older settings. * text-freetype2: Fix empty text not updating source Fixes a bug where if you update the source with empty text, it would still continue to use the previous text value. * UI: Fix proprty Undo not updating settings properly Settings would not update properly because obs_source_update() can only apply the settings value to the existing settings, so it could not remove values. This change fully erases existing settings and replaces it with the target settings instead. * CI: Remove unneeded runtime deps Removes kernel headers and dkms packages from the CI pipeline. These are only needed when running obs and not when building. This avoids crashing and burning in CI when secureboot is enabled. see: https://github.com/obsproject/obs-studio/pull/4560/checks?check_run_id=2403303957 * UI: Move clearing of copy/paste variables It makes more sense for these to be in the ClearSceneData function. * README.rst: Use High DPI Discord Badge Replaces the official Discord Badge with one from shields.io, which is higher DIP compared to the official one. * obs-browser: Update version to 2.14.2 * Fix bitmask typo when creating OBS version string * Fix memory corruption when translating Refresh text * win-dshow: Add support for ASUS coupled audio * docs: Remove block quotes (obsproject#4621) Removes the indents that cause the text to be interpreted as block quotes * obs-transitions: Remove dead code * UI: Fix rounding truncation Set decimal places before value on QDoubleSpinBox to preserve precision. * libobs, obs-filters: SRGB backwards compatibility Add OBS_SOURCE_SRGB to indicate sources that support SRGB rendering. We can use this flag to know which sources do not know how to handle SRGB, and disable accordingly inside obs_source_main_render(). We can also use this flag to clean up the filter interface and remove the SRGB-specific functions. We also need to disable direct rendering if the filter source wants to render SRGB, but the parent source does not support it. Scenes and groups are marked as having SRGB support, and those are internal sources that we control. * image-source: Add OBS_SOURCE_SRGB flag * linux-capture: Add OBS_SOURCE_SRGB flag * mac-capture: Add OBS_SOURCE_SRGB flag * obs-text: Add OBS_SOURCE_SRGB flag * win-capture: Add OBS_SOURCE_SRGB flag * text-freetype2: Remove SRGB code Not having OBS_SOURCE_SRGB is good enough now. * win-capture: Remove SRGB code Not having OBS_SOURCE_SRGB is good enough now. * obs-browser: Add SRGB flag * image-source: Allow linear space alpha Add support for applying alpha in linear space to match Photoshop behavior in linear mode, and for just overall correctness. The default setting is still nonlinear to match common user expectation though. * obs-filters: Fix shader for LUT on OpenGL * libobs: Add DrawAlphaBlend technique Useful when fixed-function blend does not provide enough precision. * libobs: Support 64 bpp images Useful for loading high-precision alpha channels. * image-source: Premultiply alpha in shader Fixed-function alpha-blend kills precision of 16-bit alpha. * win-capture: Fix WGC disable index for display Previously disabled DXGI because the index is wrong. * libobs-winrt,win-capture: Cursor toggle exceptions A user has reported that toggling the cursor can cause exceptions. Propagate that information upward, so we can reset the capture. Display capture never needed to call the function in the first place. Shuffle around window capture code to make a common reset function. Builds on PR obsproject#4663. * libobs: Fix deadlock removing scene item * libobs: Fix uninitialized variable warning * libobs: Mark unused parameters * obs-filters: Fix unreferenced variable warning * rtmp-services: Add Brime Live service rtmp-services: Add Brime Live service * rtmp-services: Add Odysee.com * UI: Disable transition props menu when transitioning When transitioning, the transitions properties menu would still be enabled. * Revert "flatpak: Disable obs-browser build" This reverts commit c370692. The PR that introduced this commit was opened before the browser plugin was enabled, and when the browser was effectively enabled, this change was already in place and didn't conflict, leaving us with both a -DBUILD_BROWSER=ON *and* -DBUILD_BROWSER=OFF in place. * flatpak: Cleanup unwanted static libraries The CEF static library in special is gigantic (50MB+) and was significantly increasing the bundle size. * cmake: Remove outdated osxbundle files These files have been superseded by files in CI/scripts/macos. They are no longer used, and keeping them around creates confusion and makes people think they are still used. Let's remove them to prevent further confusion. This commit also removes the CMake function `obs_finish_bundle` that was only used with the osxbundle resources and removes calls to that function. * UI: Simplify fade to black code Removes unnecessary function call. * UI: Clear fade to black source If the fade to black was active and the user switched scene collections, or exited studio mode, the source wouldn't be cleared, causing the transition not to work properly when used again. * rtmp-service: Rename "stream key" for dacast (Additional note by Jim: Apparently, dacast doesn't use "stream key" for whatever reason on its website, so this commit apparently changes the text "Stream Key" to "Encoder Key" or whatever for whatever reason I'll never know. I guess we need arbitrary names for things these days because services can't get their names in order or something. Whatever. I'm seriously tired of dealing with this sort of stuff. Seriously, this is just dumb. This is dumb, and I wish I wasn't merging it, but at this point, I'm like, whatever. I don't care. I've stopped caring. Why should I care anymore? I'm losing it. I am absolutely losing it.) * obs-transitions: Blend in linear space Color mismatch is apparent when using source transitions, which lerps against transparent black and blends into the canvas nonlinearly. When the transition is done, the blend switches to linear, leading to a pop. Fix the issue by blending into the canvas in linear space. The lerp is still nonlinear by design. * Revert "rtmp-services: Add Odysee.com" This reverts commit e876ad6. * frontend-plugins: Fix script properties not updating Fixes a bug where script properties would not update correctly after the Undo/Redo changes in the properties view. The properties view was using the wrong callback, and had a bad cast. * Revert transition scaling fix This reverts commit 091bdb9, dc2b00a, and 661256e. These did not fix the problem with track matte scaling. * obs-transitions: Reset track matte texture in tick This causes the track matte render target to only be reset once per frame, rather than potentially multiple times per frame. Palakis most likely did not know that you're supposed to reset only once per frame in order to prevent the render target from being rendered more than once per frame. (Jim note: I probably should have made texrender objects automatically detect new frames internally so it wouldn't require this. Not Palakis' fault.) * obs-transitions: Remove unnecessary matrix push/pop texrender objects already push/pop the matrix internally, so doing this within a texrender rendering code block isn't necessary. * obs-transitions: Free matte texrender when not in use This prevents the texrender object from lingering if the user changes the transition properties. * obs-transitions: Only check matte duration if matte exists The code within this block was being called even when there is no matte source present. Caught by null pointer checks in the log. * obs-transitions: Fix annoying log message This would cause a null pointer check log message because matte_source only exists when using an explicit separate video for track matte stingers. Instead, explicitly set matte_ph to null if matt_source is null to avoid the null pointer check logging. * obs-transitions: Fix track matte rendering improper sizes When using track matte stingers as visibility transitions, it would render the matte portion at the incorrect size. This was due to the fact that texrender render code blocks do not set the projection matrix. You're supposed to do that manually. Thus, it was using whatever the current projection matrix was, which was usually the canvas projection matrix. (Jim note: There were reasons why I didn't make texrender objects do this automatically, mostly scaling and performance reasons, but I realize now I should have at least provided an option for it instead to prevent this "gotcha" situation from happening. Bad design on my part. I do not blame Palakis for falling for this.) * obs-transitions: Use texrender with stacked track mattes When using a stacked track matte stinger transition with a visibility transition, the matte portion of video would also be visible on the right side or below the source. This fixes it by first rendering the video to a texrender object in order to filter out the unwanted portion. (Jim note: So basically, track matte stingers now use two texrenders. I really don't like this. Texrender objects can already cause stalling as it is.) * libobs: Fix direct rendering test Pass test if the filter wants SRGB, and the source supports SRGB. * libobs: Support premultiplying images on load Add gs_image_alpha_mode enum for requested alpha handling: straight, premultiplied with SRGB conversion, and just premultiplied. Both premultiplied settings behave the same if the image is not SRGB, linear is assumed. Add gs_image_file3_t to store the alpha mode. Add srgb.h file with helper functions. Clean up vec4.h to use helpers, and remove unused functionality. Update FFmpeg image loader to perform premultiplication on load. * image-source: Premultiply images on load This ensures correct texture filtering, simplifies the render callback, and allows us to remove the custom draw flag, restoring the direct rendering optimization for filters against image sources. * libobs: Remove DrawAlphaBlend technique * obs-filters: Fix color key distance Was incorrectly computing distance between linear color and nonlinear key. Make color nonlinear to match previous behavior. * decklink: Fix crash during shutdown when output is on The actual crash is caused because obs_module_unload() is called before the decklink outputs are stopped. In obs_module_unload(), the deviceEnum pointer is freed. During decklink_output_stop(), the removed code tries to retrieve a reference of the decklink device from the deviceEnum and crashes because it has already been freed. This code appears to serve no purpose anyway, so we remove it. * cmake: Fix FindJack to support finding PipeWire's libjack FindJack was not using _INCLUDE_DIRS and _LIBRARY_DIRS set by FindPkgConfig, which prevented it from locating the PipeWire version of libjack when it is installed to a non-standard path. In particular, this impacts Fedora Linux, which is the first distribution to have made the change to have all audio routed through PipeWire and eliminate the usage of PulseAudio and JACK by default. Reference: https://fedoraproject.org/wiki/Changes/DefaultPipeWire * UI: Rename enable/disable funcs for undo/redo stack * UI: Use "enabled" instead of "disabled" variable name Avoids double-negative naming. * UI: Add disable push/pop to undo/redo stack This allows disabling and re-enabling in certain situations where these actions doing so might end up being used in recursion. * UI: Add paste source undo/redo actions * obs-transitions: Fix memory leak Fixes a memory leak with stinger texrender objects. These functions must be called while the graphics context is locked. Caught via warnings generated by the destroy functions. * libobs: Add srgb.h to CMakeLists.txt * obs-filters: Premultiply alpha for precision For Apply LUT, and Luma Key, multiply alpha in shader instead of blend unit for extra precision. * obs-filters: Fix blend state for Scale filter Was incorrectly using straight alpha blend instead of premultiplied. * obs-transitions: Make sure gs calls are in graphics context This would cause a memory leak when toggling the track matte transition. * UI: Fix scene collection importer OS translation The OS translation in the Scene Collection Importer seems to have been broken since the feature was added because the translated sources were not added back to the output JSON object. Add the translated sources to the output JSON object to get the feature to work. * UI: Add versioned sources to scene collection importer Versioned sources were added in commit b230290 after the scene collection importer was added in commit 191165c. When a versioned source gets converted in TranslateOSStudio, it can end up with a translated "id" but an untranslated "versioned_id". When OBS loads the resulting JSON, it will rely on the versioned_id, and rewrite the id to the corresponding value. Use obs_get_latest_input_type_id on the translated source id to get the correct versioned_id when using TranslateOSStudio. * decklink-output-ui: Render texrender once per frame To prevent rendering the texrender more than necessary, only render it once per frame in a tick callback. * decklink-output-ui: Stop outputs when unloading When closing OBS, sometimes it would crash if the Decklink outputs were active. * obs-vst: Remove unused code * CI: Add versioning for dependencies zip file * cmake: Add module for Detours * graphics-hook: Link Detours library * graphics-hook: Use Detours for D3D12 hook Will attempt to fully use Detours after 27 ships. * graphics-hook: Fix potential D3D12 device leak * graphics-hook: Prevent recursive free Make sure to set data.swap to null before calling data.free(). Otherwise, we may call data.free() again in the Release() hook. * graphics-hook: Reduce variable scopes * graphics-hook: Give up on DXGI swap chain If a swap chain hasn't been seen in a while, assume it no longer exists, and reset the capture. * graphics-hook: Kill early return * graphics-hook: More logging to help debugging * graphics-hook: Do not persist device unnecessarily * graphics-hook: Try multiple D3D12 queues Keep trying queues until one of them passes D3D11On12CreateDevice. * win-capture: Bump graphics hook version to 1.5.0 * libobs: Add obs_group_or_scene_from_source() Makes it a little bit easier to get a scene from either a source or group. * UI: Fix hide undo/redo not working with group items Fixes obsproject#4702 * win-capture: Remove D3D12 fix toggle The new D3D12 path seems stable enough. Remove the old path. * CI: Add check for code signing credentials used by notarization * graphics-hook: Add Detours include dir * cmake: Fix Detours package name CMake warning Since CMake 3.17, find_package_handle_standard_args (FPHSA) will emit a warning if the package name in the caller and in FPHSA do not match. This normalizes the name "Detours" in CMake calls to prevent this warning. * UI: Add OBSBasic::BackupScene() with scene param Just a little inline helper that automatically converts it to a source so callers don't have to manually do this each time. * UI: Do not allow new undo actions while undo disabled * UI: Add Group/Ungroup Undo/Redo actions * UI: Fix null string being passed to blog() * libobs: Straight alpha blend for filtered inputs This is necessary if the source contains overlapping draws. * UI: Correct add_action repeatable arg type FreeBSD build fix. repeatable is a bool, so pass false instead of NULL. * obs-transitions: Disable separate track matte file for now Because it's not currently possible to guarantee synchronization between two separate media files (yet), disable separated track matte media files for now. It'll just result in support requests that can't be solved. * UI: Fix OBS signal recursion SourceSyncChanged() would call syncOffsetChanged() because it's connected to the widget. This is fixed by blocking signals This bug was discovered because undo/redo actions for sync offset changes were triggering the creation of new undo/redo actions within their own callbacks. Fixes obsproject#4760 * obs-filters: Test if NVAFX is supported on load Prevents situations where the redistributable is installed and OBS enables the RTX denoiser but it is non-functional. Changes were tested on systems with both supported / unsupported GPUs and it adds around 10-20ms to the load time in both cases. * Update translations from Crowdin * UI: Remove scene collection undo/redo actions * libobs: Update version to 27.0.0 * CI: Fix dmgbuild breaking CI by pinning its version number * UI: Disable drag/drop on Linux scenes/sources (for now) Due to a Qt issue on Linux, disable drag/drop on the scenes/sources list on Linux for the time being. * libobs: Restrict direct filtering to SRGB match Fixes issue where color-correction filter v1 changes from v26 to v27. * merge fix submodule * restored PR #252 * vst plugin merge * fix audio device init * fix matte transition options * hide matte options Co-authored-by: Ryan Foster <[email protected]> Co-authored-by: Georges Basile Stavracas Neto <[email protected]> Co-authored-by: tytan652 <[email protected]> Co-authored-by: Richard Stanway <[email protected]> Co-authored-by: wangshaohui <[email protected]> Co-authored-by: Kurt Kartaltepe <[email protected]> Co-authored-by: jpark37 <[email protected]> Co-authored-by: derrod <[email protected]> Co-authored-by: jp9000 <[email protected]> Co-authored-by: Clayton Groeneveld <[email protected]> Co-authored-by: Matt Gajownik <[email protected]> Co-authored-by: Bilal Elmoussaoui <[email protected]> Co-authored-by: pkv <[email protected]> Co-authored-by: Lukáš Mojžíš <[email protected]> Co-authored-by: Ford Smith <[email protected]> Co-authored-by: Ford Smith <[email protected]> Co-authored-by: Mat Clayton <[email protected]> Co-authored-by: Joel Bethke <[email protected]> Co-authored-by: Exeldro <[email protected]> Co-authored-by: Colin Edwards <[email protected]> Co-authored-by: tt2468 <[email protected]> Co-authored-by: gxalpha <[email protected]> Co-authored-by: GingerAudio <[email protected]> Co-authored-by: SCG82 <[email protected]> Co-authored-by: Stéphane Lepin <[email protected]> Co-authored-by: Joe Flateau <[email protected]> Co-authored-by: VodBox <[email protected]> Co-authored-by: Anton Bershanskiy <[email protected]> Co-authored-by: geekenmd <[email protected]> Co-authored-by: iamflorencejay <[email protected]> Co-authored-by: Developer <[email protected]> Co-authored-by: Neal Gompa <[email protected]> Co-authored-by: PatTheMav <[email protected]> Co-authored-by: Ed Maste <[email protected]> Co-authored-by: Gol-D-Ace <[email protected]>
Hi every one, may I suggest to improve the user experience of concerned user and adapt the current workaround (hiding under "Docks menu" the option "add Custom browser Docks")? Well... I did not wait for the response of if I may suggest, or not. Therefore, if the response is no, please ignore the below lines. My suggestion would be to leave the option in the menu. It opens a popup, explaining, it is not supported yet on Wayland, and the user should go back to x11/x.org from the loging screen, to be able to use this. At least, one quickly knows from the application itself, that its problem is known and there is a quickfix. Of course, if the solution is already on the pipe, please ignore this silly suggestion. Of course also: You are all doing an amazing work and I thank you all for this! |
Just spent an entire day trying to figure out why my build wasn't showing the custom docks option. logged in to X11 after seeing this bug and magically everything worked of course. sigh. Hope this gets fixed soon |
That's on XWayland and can result in some other weird behaviour. If it works for them that's great but it is not supported. (and yes that's been known for a while ;) ) |
yeah i noticed it breaks obs-vkcapture on nvidia (works fine on amd) |
OK, I got it to work, and found other behavior that you might be interested in. Operating System InfoUbuntu 22.10 OBS Studio VersionGit OBS Studio Log URLhttps://obsproject.com/logs/4WXvjRYBshjkFrRA Expected BehaviorExpected behavior would be to NOT work without the temporary commit that disable custom browser docks on wayland. Current BehaviorIt DOES work, therefore the disabling of custom browser docks is useless. If you build OBS with the commit reverted, and you start OBS without the flags, it works but browser-docks are disabled, so there's no difference with what we have now. If you start with the flags, it also add the browser-docks to the already working OBS setup on xwayland (with pipewire screen-capture and any wayland specific other features) Steps to Reproduce
Anything else we should know?(I tested it on Arch and the last Ubuntu, they both worked) |
This was mentioned by GE above and does not need the patch reverted. And as stated above, if it works for you, good on you, that's your business. That doesn't make it a universal/acceptable solution though as you were told in obsproject/obs-studio#9369. |
@mihawk90 that's odd because it didn't work before the revert. I tested this solution in 2 of my setups and it unlocked the situation in both of them. And even if it didn't worked, the reverted commit didn't make any difference unless obs was started with the flag aswell. |
Apologies for my previous (now deleted) comment in case you read it, it came off more rough then intended. Either way, for future reference: We're waiting on chromiumembedded/cef#2804 Specifically, see the comments from on Jan 31, 2022:
As I understand this comment there is currently no way for the OBS team to embed CEF "natively" into OBS on Wayland. XWayland via edit: Matt also addressed this in a comment on the video. |
Is there a reason we use CEF directly over QtWebengine? (other than the porting work) The latter would be trivially embeddable, either as the widget or textures can be retrieved and used in any way. |
Short answer is that QtWebengine doesn't offer us anything over the existing implementation, and is missing core functionality that we have patched in to CEF (OSR, hardware accel, shared textures, audio routing). It would be a lot of extra work to port it for reduced functionality. QtWebengine also tends to lag behind CEF proper. |
What about now in 2024? Is there any alternatives that fix this simple solution of no custom browser docks for Wayland? (Without using an external app.) |
any news? |
Fedora 41 will exclusively use Wayland. Is there any workaround available or has there been any progress on this? Thank you! |
For now, the workaround is starting obs for X (or xwayland) with theses arguments :
|
Thank you - will this make docks working on the Wayland? |
It's forcing OBS to run under xwayland which will bring back the browser docks so yes it will work |
We are still waiting on CEF.
Not true. You can still install the X sessions manually.
This is not supported as noted multiple times above. If it works for you, great, but if you run into issues, you're on your own. |
Operating System Info
Other
Other OS
Fedora 33
OBS Studio Version
Other
OBS Studio Version (Other)
OBS 4074e68-modified (Flatpak bundle of obsproject/obs-studio#4431)
OBS Studio Log URL
https://obsproject.com/logs/FJfJkTBIEjv7KI55
OBS Studio Crash Log URL
No response
Expected Behavior
The content of the window should be visible.
Current Behavior
The content of the window is transparent, only the border and titlebar is visible.
Steps to Reproduce
Anything else we should know?
No response
Screenshot:
CC @GeorgesStavracas
The text was updated successfully, but these errors were encountered: