Commit Graph

13301 Commits

Author SHA1 Message Date
jpark37
bb12fe9db5 decklink: Add HDR playback support 2023-08-15 13:15:45 -07:00
jpark37
40edda536d libobs/media-io: Relax color space comparison
Allow VIDEO_CS_DEFAULT to avoid slow conversions.
2023-08-15 13:15:45 -07:00
jpark37
3e80fff18e libobs: Add DrawAlphaDivide variant shaders
Useful for future 10-bit HDR DeckLink playback support.
2023-08-15 13:15:45 -07:00
Ryan Foster
f049d04af4 UI: Store dock titles in BrowserDock instead of relying on Qt
Attempting to set the window title of a BrowserDock that is closed, then
opening the BrowserDock, would show that BrowserDock with an incorrect
title. We can handle this by overriding the showEvent of BrowserDock and
manually setting the window title after the showEvent is called,
hopefully ensuring that we are only setting the window title on a window
that exists.
2023-08-15 12:27:18 -04:00
Ryan Foster
25b97df6eb UI: Update text for custom browser dock menu items manually
Instead of relying on the dock's having their window title already set
for the menu items to be updated, let's just manually update the menu
item text ourselves when updating the item.
2023-08-15 12:27:18 -04:00
Ryan Foster
20e4f0cad3 UI: Track custom browser dock names internally
This is a workaround for a change in Qt behavior between 6.5.1 and
6.5.2[1] which affected the outcome of attempting to set the window
title of a window that is not currently open. In Qt 6.4.3 and 6.5.1, the
window title would be set. In Qt 6.5.2, the window title will become
NULL/empty.

Instead of relying on Qt to have valid titles for custom browser dock
windows that we manage, let's track the names ourselves.

[1]: c153066baa
2023-08-15 12:27:18 -04:00
Matt Gajownik
7d9f8e7cac UI: Set browser dock title in constructor
Works around a bug in Qt where setWindowTitle called on a native window
that hasn't been initialised yet causes the title data to be lost,
resulting in the window's title never being set.
2023-08-15 12:27:18 -04:00
Penwywern
c7cba7f803 docs: Add source-specific procedures 2023-08-14 13:17:46 -04:00
Penwywern
9450588486 docs: Add source-specific signals 2023-08-14 13:17:46 -04:00
Penwywern
6f046eb48f docs: Add decl string for media signals 2023-08-14 13:17:46 -04:00
Penwywern
95e36878af image-source: Fix slideshow proc decl strings
Changes the decl strings of the slideshow source procedures to match
pre-existing conventions.
2023-08-14 13:17:46 -04:00
Translation Updater
ecf914dd67 Update translations from Crowdin 2023-08-13 14:09:15 +00:00
Vainock
bb8146bbdc CI: Update obs-crowdin-sync to latest 2023-08-13 23:44:55 +10:00
prgmitchell
2a9b9c9298 UI/importers: Ignore empty Streamlabs hotkeys
Ignore empty hotkeys when importing a scene collection file from
Streamlabs Desktop.
2023-08-12 22:31:01 -04:00
Matt Gajownik
b429d00440 UI: Show link to release notes in Help menu 2023-08-12 16:46:38 -07:00
tytan652
43ae532d2a sndio: Remove variable-length array usage 2023-08-12 16:18:32 -07:00
Friedhelm Birth
a599dd50f6 UI: Add high frame rate 119.88 fps to capture device properties 2023-08-12 16:16:24 -07:00
Friedhelm Birth
11ae49da73 UI: Add high frame rates (120, 144, 240) to general video properties 2023-08-12 16:16:24 -07:00
gxalpha
6721154924 UI: Use QCheckBox::toggled signal for checkbox changes
Like in 4f8b17d61, "toggled" is the signal that listens for changes
however they may have happened (including through things like
accessibility software), whereas clicked only is emitted on mouse
clicks. We should react to any kind of change, whatever prompted it.
2023-08-12 13:58:06 -04:00
gxalpha
d2ef4d21b3 UI: Don't cap auto-config wizard FPS whole number precision at 2
Capping the precision for whole numbers results in scientific notation
being used for any number that's larger than what can be displayed with
the given precision. In case of 2, that would be anything larger than
99, resulting in 120 for example to be shown as 1.2e+02.
Let's not cap the precision for whole numbers ourselves and just use the
default value (which at the time of writing would be 6).
2023-08-11 21:36:44 -04:00
gxalpha
4f8b17d612 UI: Use QGroupBox::toggled signal for group changes
The QGroupBox::clicked is specifically for mouse clicks. This means that
it's not emitted if the "checked" property is modified through other
means than the mouse, for example programatically or through
accessibility software like VoiceOver.
However, we do want to catch such events, so the QGroupBox::toggle
signal (which as per the Qt documentation is the notified signal for the
"checked" property) is the appropriate one to use.
2023-08-11 21:10:11 -04:00
gxalpha
49ef1d4b98 UI: Set loading to true when loading accessibility settings
When loading a settings pane, "loading" should be set to true to stop
signals being emitted by settings changes to trigger while the settings
are loading. This should have always been set here as well, but wasn't
detected so far because currently there are no settings in accessibility
that have signals connected that track changes.
2023-08-11 21:10:11 -04:00
Lain
b79e6d219f UI: Fix YouTube not saving stream key in auto config
Commit 85f9a8661b did not take into account whether YouTube was using a
stream key or not, it would prevent the auto-configuration dialog from
being able to save a YouTube stream key if the user opted to enter in a
stream key instead of connecting their YouTube account.

This simply fixes that by checking to see whether or not the user fully
connected their account or not.

Fixes obsproject/obs-studio#6406
2023-08-11 16:01:37 -07:00
Jack Karamanian
21f2a7718e obs-ffmpeg: Set avg_frame_rate for AVStream outputs
This sets the framerate on container files when
recording using "Custom Output (FFmpeg)".
2023-08-11 18:15:46 -04:00
tytan652
7f4fd99f91 linux-pipewire: Replace dynamic arrays with allocations
Replace dynamic arrays added by 27630a8c0e
by allocations
2023-08-11 14:56:36 -03:00
gxalpha
b962daa3c8 UI: Use static function instead of macro to set color
Macros can be hard to read and are usually not very friendly to use in a
debugger. Using a static function instead gives the advantage of better
syntax highlighting in IDEs and better debugger support.
2023-08-11 11:42:18 -04:00
gxalpha
e02f782bc6 .git-blame-ignore-revs: Add clang-format 16 update 2023-08-10 19:12:26 -04:00
derrod
014f7683cf updater: Pass through parameters to restarted OBS instance 2023-08-11 00:34:36 +02:00
derrod
38f41f4f94 UI: Copy OBS command line arguments to updater launch 2023-08-11 00:34:36 +02:00
PatTheMav
cf8a8cce72 CI: Simplify build scripts for CI-only use 2023-08-10 18:21:09 -04:00
PatTheMav
914392fcc0 mac-virtualcam: Fix crash on macOS when starting virtualcam output 2023-08-10 17:53:59 -04:00
PatTheMav
7628265099 Update .clang-format rules for ObjC files for version 16 2023-08-10 17:12:30 -04:00
Ryan Foster
64139a6bbd CI: Update to clang-format 16
This commit also modifies UI, libobs, and plugins.
2023-08-10 16:07:25 -04:00
aggresss
c81f531edb obs-webrtc: Improve WHIP compliance
Location header is now required. Support relative and absolute URLs
2023-08-10 12:04:18 -05:00
aggresss
34e57a0496 obs-webrtc: Follow HTTP redirects 2023-08-10 12:04:18 -05:00
Ryan Foster
046560eadc obs-qsv11: Fix adapter enumeration in test app
MFXEnumImplementations expects the adapter index to be within a range of
valid Intel adapters produced by MFXLoad and the config filter. If a
system has one non-Intel high performance GPU and one Intel iGPU, OBS
and the test app will see the Intel iGPU as index 1 due to high
performance hints, but MFXEnumImplementations will expect only one valid
index, 0. In this scenario, passing a value of 1 to
MFXEnumImplementations will cause it to abort and return
MFX_ERR_NOT_FOUND (Provided index is out of possible range). This causes
subsequent capabilities testing to fail.

To avoid this, let's track how many non-Intel adapters we see and
subtract that number from adapterIdx to only pass valid index to
MFXEnumImplementations.
2023-08-10 11:47:15 -04:00
Ryan Foster
8b85ecbec1 Revert "obs-outputs: Enable HDR for HEVC over RTMP"
This reverts commit 8137eb5f56.
2023-08-09 21:47:30 -04:00
Amin Mahmoudi
e77fc96cfa rtmp-services: Add MasterStream.iR to ingest list (#9330) 2023-08-09 20:26:13 -05:00
gxalpha
2404036575 UI: Make simple mode settings warnings float at bottom of page 2023-08-09 20:38:59 -04:00
Gale
550ccc63f2 obs-qsv11: Fix RepeatPPS bug 2023-08-09 18:12:47 -04:00
Gale
5bfc2e5150 obs-qsv11: Remove AVBR, QVBR, and VCM 2023-08-09 18:12:47 -04:00
Gale
a790302dbd obs-qsv11: Refactor and tune Look-ahead settings
Enable Low Power Look-ahead (VDENC LA) after Intel Arc Graphics. Change
LA_DEPTH defaults (60 frames for normal latency and 30 frames for low
latency). Keep VME Look-ahead only for certain Intel platforms (ICL,
TGL, ADL, and RPL). Disable VME LA for HEVC
2023-08-09 18:12:47 -04:00
Gale
1d95575088 obs-qsv11: Update Target Usage options
Update target usage setting names from legacy names to VPL names.
2023-08-09 18:12:47 -04:00
Gale
c9fd128d74 obs-qsv11: Fix bitstream bug
Fix InitBufferSize and BufferSize bug: change Bit to Byte.
2023-08-09 18:12:47 -04:00
Gale
6533b3e138 obs-qsv11: Adjust Gop and keyint_sec parameters
* Change GopPicSize default to 240
 * Remove GopOptFlag
 * Change keyint_sec default from 3 to 0
 * Reduce keyint_sec minimum value from 1 to 0 (for auto)
2023-08-09 18:12:47 -04:00
Gale
6dada921c9 obs-qsv11: Adjust Subjective Video Enhancements
Disable MBBRC (macro block level bitrate control) because it can reduce
objective quality metrics like VMAF.

Use AdaptiveCQM for CBR and VBR.
2023-08-09 18:12:47 -04:00
Gale
99c456b777 obs-qsv11: Add AV1 meta data
Enable content light meta data over the AV1 stream.
2023-08-09 18:12:47 -04:00
Gale
5b6967c359 obs-qsv11: Improve AV1 quality parameters
Enable B-frames for AV1 for Intel Arc Graphics and Meteor Lake Platform.
2023-08-09 18:12:47 -04:00
Ryan Foster
39b4df12c8 libobs/util: Define PRAGMA_WARN_DEPRECATION for MSVC
Define PRAGMA_WARN_DEPRECATION for MSVC to enable using that define for
cross-platform code, which allows us to write slightly less code when we
need to suppress this warning.
2023-08-09 13:47:05 -04:00
Ryan Foster
f9054371fc CI: Update peter-evans/create-pull-request GitHub Action
We're currently using peter-evans/create-pull-request v4.0.3 which is
still using the deprecated set-output command. This was fixed in v4.1.4,
so let's update to that version for now.
2023-08-09 12:13:32 -04:00