11200 Commits

Author SHA1 Message Date
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 a147315f33edc59c165f8cda1120d6d4219cf6ee
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 d5905039c90959444b93020615a63c82bce9b34a.
2022-06-20 18:29:22 -03:00
gxalpha
6b287dbcc1 Revert "UI: Fix "Add [transition]" not being translated"
This reverts commit 1a1430478479eaf6c93ccb1826da74d69541c4ec.
2022-06-20 18:29:22 -03:00
gxalpha
4feabf227f Revert "UI: Move "Add [transition]" to bottom of combo"
This reverts commit 6460579fb69c6b42db42f47aa6b94972ee0c49dc.
2022-06-20 18:29:22 -03:00
gxalpha
609acca161 Revert "UI: Fix non-default transitions going below add vals"
This reverts commit da8547c11293de41914edc373a66f945ee6215a0.
2022-06-20 18:29:22 -03:00
gxalpha
5fad651b2d Revert "UI: Fix selecting correct transition when deleting"
This reverts commit 3486c0b3633a8ff2b36170d56f37705fe7061349.
2022-06-20 18:29:22 -03:00
gxalpha
6188144cab Partly revert "UI: Fix Qt signal connection warnings"
This partly reverts commit 40f99da8a2be45976f3375555b491d5884a2cc34 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
Vainock
7d2fae69de CI: Update obs-crowdin-sync to 0.2.1 2022-06-18 11:16:22 +10:00
Grzegorz Godlewski
c5015d0e6c linux-v4l2: Add support for H.264 2022-06-17 18:49:12 +10:00
gxalpha
a1f9170180
mac-virtualcam: Free virtualcam data when destroying
Fixes a memory leak introduced in db733032e
2022-06-16 18:45:24 +02:00
Exeldro
e52018f210 win-dshow: Save and restore video device config props 2022-06-15 12:30:09 -07:00
tytan652
a9cb952628 linux-pipewire: Restore PipeWire minimim version requirement
a147315f33 removed it without adding it to linux-pipewire.
2022-06-15 13:50:33 -03:00
jp9000
a31d7acb14 obs-outputs: Fix missing function declaration 2022-06-15 00:52:43 -07:00
jp9000
7ba9db3744 obs-outputs: Reset TLS on reconnect
Reverts e8b2b2092bd3e and properly fixes an issue where bad TLS data
would persist through reconnections when the connection is encrypted.
2022-06-15 00:31:08 -07:00
Patrick Heyer
1f72dad245
Merge pull request #6573 from fabianishere/feat/mac-virtualcam
mac-virtualcam: Avoid transcoding where possible
2022-06-12 15:52:05 +02:00
Clayton Groeneveld
fca727c191 UI: Add eventFilter to media slider
When pressing the up and down arrows or moving the mouse wheel
for the media slider, the slider would move.
2022-06-11 16:28:57 -07:00
Norihiro Kamae
8a41c7298f decklink: Avoid sending 0x0 frame to libobs
When the mode is set to auto, the API sometimes send frames with 0x0
size. Without filtering such frames, which causes libobs to output error
messages.
2022-06-11 16:22:22 -07:00