Commit Graph

11010 Commits (5a298106bc0ac75b19d5027f013236aa5ef80ad0)

Author SHA1 Message Date
gxalpha 5a298106bc UI: Add vertically expanding LineEdit Widget
Meant to behave like a QLineEdit (disallowing newlines and having a
maximum length), but show multiple lines.
2022-06-27 14:35:01 -04:00
columbarius e14f6280c2 linux-pipewire: Log modifier
The used modifier is important to debug subtle issues when the imported
buffer appears to be currupt.
2022-06-27 13:56:16 -03:00
tytan652 bf985946a4 libobs,UI,docs: Add info as text property sub-type in the property API 2022-06-26 17:31:59 +10:00
gxalpha cd900d7091 UI: Try closing remux before initiating shutdown
Makes OBS try to close the remux dialog before Clearing Scene data since
in case a remux might still be going on and the user does want to abort
closing OBS.
2022-06-25 21:44:58 -04:00
Clayton Groeneveld 3cfd30ae2a UI: Add ability to reset whole UI
Users for example disable all of the items in the view menu.
This allows them to easily reset them all.
2022-06-25 21:24:35 -04:00
tytan652 bc80d0ca95 UI: Hide network features if a non-RTMP service is set
Only rtmp_output has those features implemented.
2022-06-25 17:11:29 -07:00
tt2468 81003b2c64 UI: Change default reconnect values
- Base reconnect delay is now 2 seconds
- Max retry count is now 25
2022-06-25 17:06:00 -07:00
tt2468 bb55cfbc05 libobs: Improve exponential backoff functionality
- Changes the default base exponent value to 1.5 from 2.0
- Applies a random skew of +-0.05 to the exponent to lessen the
"water hammer" effect caused by predictable backoff techniques
- Fixes the logging associated with exponential backoff to log the
true reconnect delay value
2022-06-25 17:06:00 -07:00
gxalpha 7475eff13a UI: Only offer ultrafast-fast x264 presets in Simple Mode 2022-06-25 16:30:27 -07:00
gxalpha cc5e5cbb94 UI: Move Simple Mode encoder preset out of Advanced 2022-06-25 16:30:27 -07:00
gxalpha b2895496c7 UI: Move Simple Mode audio bitrate above encoder 2022-06-25 16:30:27 -07:00
derrod 59e91d2091 CI: Use static 7zip build instead of PPA 2022-06-25 16:25:16 -07:00
Jim 7c493ea035
Merge pull request #6645 from GeorgesStavracas/gbsneto/pipewire-cleanup
Various cleanups to linux-pipewire
2022-06-25 16:21:00 -07:00
Norihiro Kamae bf97248a81 mac-vth264: Fix PTS passed to the encoder
It is reported that the encoder does not follow the bitrate settings.
This commit tries to correct the timestamps so that the bitrate control
in the encoder works.
2022-06-25 16:17:09 -07:00
kevin.dww ee59905be1 rtmp-services: Add Mildom and Nonolive 2022-06-25 16:12:50 -07:00
Fabian Mastenbroek b02e4b109b mac-virtualcam: Fix IOSurface memory leak
This change fixes a memory leak in the mac-virtualcam plugin that causes
OBS to not release the CVPixelBuffers (and underlying IOSurfaces)
it emits to the virtual camera consumers.

Pull request https://github.com/obsproject/obs-studio/pull/6573 (Avoid
transcoding where possible) updated the mac-virtualcam to share the
virtual camera feed with other processes via IOSurfaces.

Although the changes work correctly, users have observed that OBS memory
usage keeps increasing when the virtual camera is active until OBS runs
out of memory or the consuming application is closed.
See the report by @SciTechNick for more information:
https://github.com/obsproject/obs-studio/pull/6573#issuecomment-1161979765

After some debugging, I have found that the plugin is leaking Mach ports
associated with IOSurfaces, preventing them from being re-used. The
previous approach using `NSMachPort` does not seem to properly release
the Mach port allocated via `CVPixelBufferGetIOSurface` and
`IOSurfaceLookupFromMachPort`. Instead, we must explicitly deallocate
the port using `mach_port_deallocate`.

I have tested the changes on a Macbook Pro (M1) running macOS Monterey with
Google Chrome, Zoom, and Cameo. OBS shows no signs of memory leakage
after multiple minutes.
2022-06-25 16:12:26 -07:00
gxalpha 72830ea553 mac-avcapture: Make "High" preset default 2022-06-25 16:10:28 -07:00
Norihiro Kamae fcf6b24e44 UI: Fix crash if missing module in context bar
If a module is not found in context bar, it crashed when resolving
source type name. This is same change as 41367bb2b but fixes
window-capture and display-capture.
Also removes an unnecessary pair of braces.
2022-06-25 16:09:30 -07:00
Richard Stanway 17c39ccb07 obs-ffmpeg, obs-outputs: Check return of obs_encoder_get_extra_data
A race condition can occur in obs-outputs where the send_thread is in
the process of (re)connecting but the encoder was shut down in the
meantime. This causes the expected header data to be garbage, resulting
in a crash.
2022-06-25 16:03:12 -07:00
tytan652 066f0defcf UI: Fix cut transition not being initialised
78bdd4cb01 removed it accidentally
2022-06-25 12:12:39 +02:00
Matt Gajownik 2bb780468c UI: Fix formatting 2022-06-25 14:46:05 +10:00
Matt Gajownik 76cc739c7f UI: Support pressing space to open MenuButton 2022-06-25 14:39:30 +10:00
Matt Gajownik 0135af9c34 UI: Use existing IsThemeDark() in more places 2022-06-25 14:33:52 +10:00
Georges Basile Stavracas Neto f740033c93 linux-pipewire: Shuffle screencast D-Bus proxy around
Move the screencast D-Bus proxy, and related functions, to where
they fit in now: screencast-portal.c.
2022-06-24 10:29:10 -03:00
Georges Basile Stavracas Neto 6f1521e944 linux-pipewire: Cleanup includes
We can remove and shuffle some includes now.
2022-06-24 10:28:47 -03:00
Georges Basile Stavracas Neto 0e9c208fc5 linux-pipewire: Move all portal code to screencast-portal.c
Sorry this is such a massive commit. The entangled nature of the
code in pipewire.c makes it impossible to reasonably split this
in smaller commits.

Move all D-Bus / portals code from pipewire.c into the recently
introduced screencast-portal.c.
2022-06-24 10:28:45 -03:00
Georges Basile Stavracas Neto 45afcf1997 linux-pipewire: Introduce proxy struct for screencast portal
Right now it's completely useless, but this commit lays out the
foundational steps to populate this struct.
2022-06-24 10:27:56 -03:00
Georges Basile Stavracas Neto 5ffc8ef663 linux-pipewire: Shuffle some code around
This is the start of what will be a rather incisive surgery on
pipewire.c. Move a couple of functions to portal.c, since they're
not really related to the PipeWire code.
2022-06-24 10:26:51 -03:00
Georges Basile Stavracas Neto 8a46b9e455 linux-pipewire: Rename pipewire-capture to screencast-portal
As we slowly split portal code from PipeWire code, what is currently
called pipewire-capture will become the screencast portal specific
code.

Preemptively rename the corresponding files and functions. Next commits
will continue the excision of portal code from pipewire.c.
2022-06-24 10:26:33 -03:00
Georges Basile Stavracas Neto 042c6c078c linux-pipewire: Always load PipeWire captures
After the removal of GLX, we effectively always load the PipeWire
captures. Remove the switch statement.
2022-06-22 11:44:16 -03:00
Georges Basile Stavracas Neto d00d1e2926 linux-pipewire: Remove unused variable
A fallout from a147315f33
2022-06-22 11:37:01 -03:00
gxalpha 889ca0fc04 UI: Regroup and Reorder source right-click menus
Visually, the Scale Filtering, Blending Mode & Method, and Deinterlacing
menus are now grouped together, with "Hide in Mixer" being its own group
until a better place for it has been found.
Projector and Screenshot menus have been moved down.

As a related code cleanup, the creation of sourceProjector and
sourceWindow has been moved down and partially inlined.
2022-06-20 19:31:31 -03:00
gxalpha bb69883bd0 UI: Only show "Interact" menu for interactable sources
Most sources can't be interacted with, so always showing this menu only
takes up space and makes the menu stack bigger.
2022-06-20 19:31:31 -03:00
gxalpha 829e906ac2 UI: Remove "Resize output (source size)" menu 2022-06-20 19:31:31 -03:00
gxalpha 1c7062c3a4 UI: Move transition duration above Add/Remove buttons 2022-06-20 18:29:22 -03:00
gxalpha 78bdd4cb01 Revert "UI: Redesign transitions dock"
This reverts commit d5905039c9.
2022-06-20 18:29:22 -03:00
gxalpha 6b287dbcc1 Revert "UI: Fix "Add [transition]" not being translated"
This reverts commit 1a14304784.
2022-06-20 18:29:22 -03:00
gxalpha 4feabf227f Revert "UI: Move "Add [transition]" to bottom of combo"
This reverts commit 6460579fb6.
2022-06-20 18:29:22 -03:00
gxalpha 609acca161 Revert "UI: Fix non-default transitions going below add vals"
This reverts commit da8547c112.
2022-06-20 18:29:22 -03:00
gxalpha 5fad651b2d Revert "UI: Fix selecting correct transition when deleting"
This reverts commit 3486c0b363.
2022-06-20 18:29:22 -03:00
gxalpha 6188144cab Partly revert "UI: Fix Qt signal connection warnings"
This partly reverts commit 40f99da8a2 so
that conflicts are gone.
2022-06-20 18:29:22 -03:00
Richard Stanway dada82fec1
obs-outputs: Don't shutdown RTMP session when silently reconnecting
The silent reconnect (GOAWAY) is supposed to be used for switching the
connection to a different server. As such, cleanly shutting down the
RTMP connection can destroy state that needs to be preserved in order
for the GOAWAY-enabled server to properly resume the same stream on
reconnect.

This commit closes the TLS/TCP connection before calling RTMP_Close,
causing librtmp to skip the FCUnpublish and deleteStream messages.
2022-06-20 22:10:06 +02:00
PatTheMav aec31a9e6d cmake: Fix handling of optional debug wrapper libraries for obs-browser 2022-06-20 14:24:52 -04:00
Matt Gajownik 0744e260e3 obs-browser: Don't auto-focus, remove init hack
a4e163e - Remove CefInitialize hack argument on Windows
a6df681 - cmake: Fix handling of debug wrapper libraries
a707cb7 - Don't allow browser panels to steal focus on navigate
2022-06-20 18:30:53 +10:00
Patrick Heyer 3ea8dbb392
Merge pull request #6622 from tommyvct/new-rosetta-detection
libobs/util: Add function to get Rosetta translation status
2022-06-19 16:04:50 +02:00
gxalpha 0fa7834bfc UI: Use libobs rosetta detection 2022-06-19 01:37:15 +02:00
Tommy Vercetti 3b64e74660 libobs/util: Add function to get Rosetta translation status 2022-06-19 01:37:15 +02:00
Norihiro Kamae a255b0f742 aja: Implement buffering property
Buffering inside libobs is enabled by default and it causes latency of
video. This commit provides a property to switch the buffering.
Since the latency of the buffering changes every startup, set the
default to unbuffered mode, though the previous implementation was
enabled buffering.
2022-06-18 16:12:20 -07:00
jpark37 22fde5cdcd deps/media-playback: Fix metadata for hw_accel
av_hwframe_transfer_data doesn't seem to transfer metadata, so do it
manually.
2022-06-18 16:03:34 -07:00
Clayton Groeneveld 295386781f UI: Cleanup advanced audio window
This converts the advanced audio window to use
a ui form, so it is easier to modify in the future.

This also fixes sizing issues with the control widgets,
as before the audio tracks would be clipped, because the
widgets in the window were too wide.
2022-06-18 23:13:13 +10:00