Commit graph

12270 commits

Author SHA1 Message Date
PatTheMav 8061652051 mac-videotoolbox: Refactor implementation
Existing code made use of macros which broke parsing in Xcode and
complicated debugging as crucial code was executed within macros and
not actual source code.

Use of mutable CoreFramework data structures (which were never mutated)
is replaced by use of faster non-mutable variants.

When an allocator needs to be used, `kCFAllocatorDefault` is specified
explicitly.

VideoToolbox session properties are also set in bulk instead of
multiple consecutive calls.

Also simplifies detection of Apple Silicon hosts to make code more
readable.
2023-02-21 21:29:12 +01:00
jpark37 09c2a321ce mac-videotoolbox: Add ProRes 4444 (XQ) support
Also leverage P216/P416 pixel formats to retain precision.
2023-02-21 18:48:44 +01:00
jpark37 463bf0dff5 libobs,UI: Add P216/P416 pixel formats
Will be useful for ProRes.
2023-02-21 18:48:44 +01:00
jpark37 0efaf88caf libobs: Add PQ/HLG support for I210/I412 formats
Seen when playing back ProRes files.
2023-02-21 18:48:44 +01:00
gxalpha 433c85bcd7 mac-capture: Fix various SCK memory leaks
Detected by clang analyzer.
2023-02-21 17:40:56 +01:00
derrod e2b80c04e8 CONTRIBUTING: Add language and PR/Issue template notes 2023-02-21 00:44:36 +01:00
derrod 7a02fa8cc8 CONTRIBUTING: Add AI/Machine Learning policy 2023-02-21 00:44:36 +01:00
gxalpha 4bcd86b395 UI: Disable replay buffer checkbox when using custom FFmpeg 2023-02-20 23:46:59 +01:00
derrod 644b73eb46 UI: Add confirmation dialog for resetting properties 2023-02-20 23:46:01 +01:00
gxalpha 8d4a0b3645 UI: Use valueChanged() signal for T-Bar everywhere
The sliderMoved signal doesn't trigger when clicking on the slider, only
the valueChanged signal. According to QTBUG-72995 this is intentional,
since the documentation states that sliderDown also needs to be true for
the sliderMoved signal to be triggered. As for why sliderDown isn't true
when clicking, or why that would even be necessary for a signal that
should trigger when the slider is moved (and it very clearly moves)
remains a mystery.

Also gets rid of the wrong usage of the on_foo_bar slot declaration,
which should only be used for signals where the sender is part of a UI
file and it gets connected automatically. While it of course is possible
to connect it manually, this is against convention and can cause
confusion. In this case it was particularly wrong since even if tBar was
part of a UI file (which it isn't), the method should have been called
on_tBar_valueChanged instead of on_tbar_position_valueChanged.
2023-02-20 19:10:32 +01:00
shiina424 a44700871b UI: Fix window text when disabled in dark theme 2023-02-20 12:15:04 -05:00
derrod 2b33fb3ad2 UI: Massive improve hotkey search performance 2023-02-19 15:41:54 -08:00
gxalpha 19a0afe526 UI: Don't double-delete children of deleted widgets
These widgets are all children of updateSettingsGroupBox, meaning they
get deleted when updateSettingsGroupBox gets deleted. This means that
the first two calls are unnecessary and the third one segfaults as
updateChannelLabel is gone already.
Just delete the parent widget instead.
2023-02-19 20:39:47 +01:00
bin 27981b15e9 UI: Fix compile error when obs-browser disabled 2023-02-19 20:39:23 +01:00
gxalpha e438037960 UI: Use native color dialog on macOS 2023-02-19 04:10:51 +01:00
tytan652 9e6a482c66 UI: Fix button callback in OBSPropertiesView created with an id
Before calling the button callback, two values are null-checked but when
the property is created with an id (const char*). Those values are null
which prevent the callback from being called.
2023-02-18 17:47:19 -08:00
derrod 9d71d2f7fd cmake: Remove ENABLE_SPARKLE_UPDATER option
Since public key and appcast are now options we simply rely on those to
decide whether or not to enable Sparkle.
2023-02-19 01:35:56 +01:00
derrod 12a27d8b99 UI: Add update channels (macOS) 2023-02-19 01:35:56 +01:00
derrod 634fd3231c CI/cmake: Update Sparkle to 2.3.2 2023-02-19 01:35:56 +01:00
derrod 0972da9e1a UI: Merge win-update and nix-update 2023-02-19 01:35:56 +01:00
tytan652 64176daaf4 UI: Force Wayland usage on Ubuntu GNOME
XDG_CURRENT_DESKTOP is set to "ubuntu:GNOME" on Ubuntu custom version of
GNOME.
2023-02-18 16:20:39 -08:00
PatTheMav 8c8a44b26a mac-virtualcam: Fix compiler warnings
CMake build framework 3.0 introduces more strict typing checks, which
require additional code fixes to silence.

* Fixes warnings about implicit casts
* Fixes warnings about weak references used multiple times inside
  blocks
2023-02-18 15:22:33 -08:00
PatTheMav f98c2d2514 mac-capture: Fix compiler warnings
CMake build framework 3.0 introduces more strict typing checks, which
require additional code fixes to silence.

* Fixes warnings about multi-character assignments
* Fixes warnings about implicit casts
* Fixes warnings about shadowing variables
2023-02-18 15:22:33 -08:00
PatTheMav c5bb6218b6 mac-avcapture: Fix compiler warnings
CMake build framework 3.0 introduces more strict typing checks, which
require additional code fixes to silence.

* Fixes warnings about multi-character assignments
* Fixes warnings about implicit casts
2023-02-18 15:22:33 -08:00
PatTheMav 8b0843803e UI: Remove unused variables 2023-02-18 15:22:33 -08:00
PatTheMav 1bb06a8bdc rtmp-services: Fix missing newline at the end of files 2023-02-18 15:22:33 -08:00
PatTheMav f67c1bcceb obs-x264: Fix non-exhaustive switch statements 2023-02-18 15:22:33 -08:00
PatTheMav f4bbe080bf obs-vst: Fix missing newlines at the end of files 2023-02-18 15:22:33 -08:00
PatTheMav bb2a99cec8 obs-transitions: Fix non-exhaustive switch statements 2023-02-18 15:22:33 -08:00
PatTheMav 3175e699ea obs-filters: Fix non-exhaustive switch statements 2023-02-18 15:22:33 -08:00
PatTheMav 19c131c981 obs-ffmpeg: Remove unused variables 2023-02-18 15:22:33 -08:00
PatTheMav 6e0d802874 obs-ffmpeg: Fix non-exhaustive switch statements 2023-02-18 15:22:33 -08:00
PatTheMav c4d60f47c7 decklink: Add missing newlines at the end of files 2023-02-18 15:22:33 -08:00
PatTheMav ce9854a11b aja: Remove unused variables 2023-02-18 15:22:33 -08:00
PatTheMav 41a10b05fd libobs-opengl: Refactor macOS implementation
Replaces macros with actual code and uses more platform-specific code.
As an added benefit this improves debugging and code navigation in
Xcode.
2023-02-18 15:22:33 -08:00
PatTheMav 2f4b611fd7 libobs-opengl: Fix non-exhaustive switch statement 2023-02-18 15:22:33 -08:00
PatTheMav db3a01db6b libobs: Remove unused variables 2023-02-18 15:22:33 -08:00
PatTheMav fb7a9edadc libobs: Fix non-exhaustive switch statements 2023-02-18 15:22:33 -08:00
PatTheMav cfa0dc573e media-playback: Fix non-exhaustive switch statement 2023-02-18 15:22:33 -08:00
PatTheMav 7035ca7964 libcaption: Fix missing newline at the end of file 2023-02-18 15:22:33 -08:00
gxalpha 623af15821 UI: Connect Reset button in Transform dialog with main window directly 2023-02-18 15:19:21 -08:00
cg2121 64d4ae0106 UI: Remove bitness strings
This removes the bitness strings from the title bar and about dialog.
2023-02-18 15:09:11 -08:00
derrod b44910726d UI: Defer Settings window hotkey loading 2023-02-18 15:04:23 -08:00
pkv e355a32066 obs-ffmpeg: Relax 'lookahead' constraint when bitrate is updated
When bitrate is updated, a check against 'lookahead' setting is done.
If 'lookahead' is enabled, the bitrate update is disabled.
We indeed used to observe crashes with nvenc when frequent bitrate
resettings were effected while lookahead option was enabled.
But recent tests have shown that the issue is gone.
As a result this commit allows 'lookahead' with bitrate live update.

Signed-off-by: pkv <pkv@obsproject.com>
2023-02-17 15:41:43 -05:00
Lukáš Cezner 5d1f0efc43 vlc-video: Fix videos larger than 1080p being squished
Fix an overflow in display_width caused by unsafe multiplication of the
video width by Sample Aspect Ratio.
2023-02-17 14:59:08 -05:00
Richard Stanway e280fd6cd0 obs-ffmpeg: Add GeForce MX350 variant to unsupported NVENC list 2023-02-17 11:19:08 -05:00
Richard Stanway 25f01357e6 obs-ffmpeg: Handle NV_ENC_ERR_NO_ENCODE_DEVICE error 2023-02-17 11:19:08 -05:00
Richard Stanway 7dae8d307c obs-ffmpeg: Restore bad GPU index NVENC error message
FFmpeg wipes priv_data if the encoder fails to start, so we need some
way of knowing if the GPU index was non-zero. This is a bit ugly but the
best way to do it for now.
2023-02-17 11:19:08 -05:00
Richard Stanway e593335086 obs-ffmpeg: NVENC error logging improvements
This writes the result of nvEncGetLastErrorString to the last encoder
error instead of just the log file. This makes it user-visible, which
should help users diagnose and solve the problem.

Also strips off leading colons from NVENC error strings as these can
look odd given our format string. An example of such an error:

::NV_ENC_TWO_PASS_FULL_RESOLUTION is only supported multipass encoding
on this architecture.
2023-02-17 11:19:08 -05:00
tytan652 08af16edaf CI: Factorize Github labels checks 2023-02-16 21:30:53 +01:00