11200 Commits

Author SHA1 Message Date
jpark37
8e2e1e212c obs-x264: Convey lack of Rec. 2100 support 2022-05-28 08:36:18 -07:00
jpark37
f21ea744f8 obs-ffmpeg: Localize NVENC error dialog messages
Localize messages for lack of 10-bit support, and exceeding the hardware
B-frame limit.
2022-05-28 08:36:18 -07:00
jpark37
699e89d859 obs-ffmpeg: Improve dialog text for NVENC errors
Add dialog messages for lack of 10-bit support, and exceeding the
hardware B-frame limit. Also move code around to test these just once.
2022-05-28 06:48:27 -07:00
cg2121
1dd406107c UI: Add suffixes to transform dialog
This makes it easier to understand what the
values in the dialog mean.
2022-05-28 14:19:26 +10:00
jpark37
fa8f1c33e9 win-dshow: Removed used UNUSED_PARAMETER 2022-05-27 14:56:47 -07:00
jpark37
54f09fe6a7 deps/media-playback: Use metadata for HDR EETF
Used in situations where source luminance is greater than HDR nominal
peak setting to avoid clipping by applying BT.2408 maxRGB EETF.
2022-05-27 14:56:47 -07:00
jpark37
11da542a0d libobs: Add max_luminance to obs_source_frame
Used in situations where source luminance is greater than HDR nominal
peak setting to avoid clipping by applying BT.2408 maxRGB EETF.
2022-05-27 14:56:47 -07:00
jpark37
235e025570 win-capture: Rename Rec. 2020 to Rec. 2100 2022-05-27 04:38:02 -07:00
Georges Basile Stavracas Neto
55811c1cb9 deps/glad: Drop glad-glx
It is now unused
2022-05-24 14:31:51 -03:00
Georges Basile Stavracas Neto
ca2d02c2ce Drop GLX renderer
"They must often change, who would be constant in happiness or wisdom"

 - Confucius
2022-05-24 14:31:48 -03:00
Georges Basile Stavracas Neto
ddb692ab2d linux-capture: Drop GLX code paths
Default to EGL and remove the sad amount of hacks from xcomposite.
2022-05-24 14:30:14 -03:00
Kurt Kartaltepe
fb639e303c linux-capture: Fix map-like behavior for watcher
The original PR missed assigning the `idx` variable in unregister. When
compiled without asserts this would silently not delete sources. Instead
correctly assign idx and skip unregistration if the source doesnt appear
registered.

fixes #6532
2022-05-24 08:16:10 -03:00
gxalpha
cedc397b9f mac-avcapture: Capture audio if supported
Some webcams, or other AVCaptureDevices like connected iOS devices which
are supported since 162450c, have an audio output which so far got
ignored.
Now, if supported, the audio will be captured alongside the video. For
existing sources, the properties have a button enabling this; while new
sources have it enabled by default.
2022-05-23 08:59:24 -04:00
derrod
a07cf955b2 CI: Update service-removal PR description 2022-05-23 05:50:58 -04:00
derrod
abf383f264 CI: Ping authors of failed services in removal PR 2022-05-22 01:00:55 -04:00
Norihiro Kamae
3099b59c2c libobs: Fix hotkey with right-side modifiers
However the hotkeys can be configured with right-side modifiers in UI,
the right modifiers did not work when hitting the hot keys.
This is because `query_hotkeys` in `obs-hotkey.c` was querying states of
only left modifiers.
2022-05-21 16:32:22 -07:00
Richard Stanway
108d32c0c6 UI: Remove m3u8 format from simple output mode
This option regularly confuses users, who accidentally select it and
then ask why they have hundreds of 2-4 second video clips in their
output folder. HLS output format to file is a pretty niche use case,
so let's keep it in advanced mode only.
2022-05-21 15:46:40 -07:00
gxalpha
bfa7f1a88e obs-ffmpeg: Remove duplicate "FFmpeg Options" locale 2022-05-21 15:45:17 -07:00
gxalpha
8328609b20 UI: Don't transition in studio mode if scenes are the same
Fixes an issue where when "Duplicate Scenes" and "Switch Preview/Program
after Transitioning" were disabled and preview and program were the same
scene, pressing "Transition" would just disable the menus without
anything happening. This is because a transition is initiated, but never
actually starts transitioning (since both scenes are the same). The
check for this already exists, but was only triggered in swapScenesMode.

Also renames the newScene variable to lastScene to make it more obvious
what it actually is (especially since now, it's not only the new scene
anymore).
2022-05-21 15:42:36 -07:00
tt2468
a8c481a80e libobs: Only warn when releasing non-NULL source
Only warn when the pointer provided to obs_source_release() is
non-NULL. In some custom usages of libobs, libobs may be freed before
OBS* smart pointers (like OBSSource) are destructed, leading to a
misleading warning if the pointers have already been cleared with
nullptr.

Previous behavior is basically:
- Clear OBS* pointers with nullptr
- Unload libobs
- Those smart pointers that were cleared will still call
obs_source_release() on destruct
- Warning appears
2022-05-21 15:33:39 -07:00
jpark37
226249e1c3 deps/media-playback: Fix video looping
Previous FFmpeg deprecation fix, and optimization attempt causes short
videos to loop badly. Keep deprecation fix, and fix the rest later.

Fixes d528f6cafa24e4ed9c85ada87084b748b3bffa21
2022-05-21 15:28:08 -07:00
Ryan Foster
ff58d35df3 decklink-output-ui: Fix crash when stopping preview
Removing the first call to `video_output_stop` prevents the `data_mutex`
field in `struct video_output` from being destroyed while still in use.
The `render_preview_source` function will call `video_output_lock_frame`
upon that mutex and encounter a NULL pointer exception.

Co-authored-by: Paul Hindt <paulh@aja.com>
2022-05-20 21:15:53 -04:00
Claude Heiland-Allen
06f66f3120 libobs: Clamp audio NaN to 0.0f
Add comparison check so that NaN is caught.
Comparisons with NaN always result in false.
NaNs cause problems later in audio encoder.

Note: may break with -ffast-math compiler flag.

Fixes #4885.
2022-05-21 02:24:43 +02:00
derrod
56264befab rtmp-services: Apply automatic formatting to JSON 2022-05-20 08:55:56 -04:00
derrod
ccff8040fa CI: Add services check job 2022-05-20 08:55:56 -04:00
gxalpha
741bade4ec UI: Use correct terminology for Program in Studio Mode 2022-05-20 07:38:30 -04:00
Matt Gajownik
de11632a9c CI: Validate JSON Schema of Services files 2022-05-20 20:25:19 +10:00
Matt Gajownik
2960669f9a rtmp-services: Add JSONSchema definitions for services 2022-05-20 20:25:19 +10:00
gxalpha
41521b2816 UI: Move taskbar overlay functions into platform.hpp
Refactors the existing implementation for Windows into
platform-windows.cpp, allowing for other OS implementations in the
future.
2022-05-20 20:16:56 +10:00
Torge Matthies
5ac6c03a8a obs-ffmpeg: Initialize mapped_res field in nv_texture_init
Otherwise it might never be initialized and nv_texture_free might unmap
a non-existant resource.
2022-05-19 16:36:14 -07:00
Torge Matthies
fe776a83eb obs-ffmpeg: Reserve jim-nvenc textures buffer space
Textures dynamic array buffer space was not reserved.
2022-05-19 16:36:14 -07:00
Ryan Foster
5a3e68a359 CI: Remove extra whitespace from Steam workflow 2022-05-19 18:50:03 -04:00
Ryan Foster
b1c7d4eb4b CI: Update first-party GitHub Actions 2022-05-19 18:50:03 -04:00
tytan652
831fe03048 vlc-video: Fix sign-compare warning 2022-05-19 17:10:47 -04:00
derrod
5dcabaf5cf UI: Make OAuth base URL configurable 2022-05-19 09:31:38 -07:00
Matt Gajownik
73e6df5d09 obs-ffmpeg: Fix memory leak 2022-05-17 23:13:17 +10:00
jp9000
50c174df07 deps/opts-parser: Add missing c extern for cpp 2022-05-17 05:37:04 -07:00
jpark37
d70c6b9dfb obs-ffmpeg: Set 1000 nits for HLG metadata 2022-05-17 05:18:46 -07:00
Richard Stanway
c7e83518e1 win-wasapi: Log source name when showing device errors
Sometimes users have a forgotten source pointing to an invalid device,
which is very difficult to locate without us showing the source name.
2022-05-17 02:47:08 -07:00
jpark37
d233065d60 libobs: Default 10-bit video to sRGB instead of PQ
Matches how VLC operates. HDR is only in effect with proper metadata.
2022-05-17 02:46:52 -07:00
jpark37
4304329d0c libobs: Ignore lower six bits for P010 sources 2022-05-17 02:46:41 -07:00
Ryan Foster
6a2e2aba03 cmake: Use correct capitalization for Qt in messages 2022-05-16 20:28:01 -04:00
Ryan Foster
872c6cd58c cmake: Normalize path to QtCore_DIR
Resolve the relative path to an absolute path once and then use that for
all other Qt file paths.
2022-05-16 20:28:01 -04:00
Ryan Foster
4d741833f8 cmake: Teach CopyMSVCBins to use Qt 5 or 6
Make CopyMSVCBins.cmake work with either Qt 5 or Qt 6 depending on what
version the user has chosen.
2022-05-16 20:28:01 -04:00
Ryan Foster
75d0f44551 docs: Update speaker_layout enum values
A documentation update was missed. Bring these values up to date with
the current reality.
2022-05-16 17:15:11 -04:00
Ryan Foster
dbdf82da80 UI: Fix memory leak with Manage Broadcast dialog
When OBS has been connected to a YouTube account, the Manage Broadcast
dialog becomes available. Opening and closing this dialog leaks about
2-3 MB of memory each time. This happens because the dialog is never
deleted, and a new object is created every time the dialog opens.

If we set Qt::WA_DeleteOnClose on the dialog, then the dialog->exec()
call would call delete this. However, if the dialog->Valid() call
returned false (this should currently be impossible), then exec is never
called, so it would not clean up.

To fix this, make the dialog stack-allocated instead of using new and
delete.

Detected by clang-analyzer.
2022-05-16 22:46:50 +02:00
pkv
12d1f1c335 obs-ffmpeg: Fix 4 channel layout in ffmpeg-mux
Previously SPEAKER_4POINT0 was assigned to AV_CH_LAYOUT_QUAD, but later
was changed to AV_CH_LAYOUT_4POINT0 [1]. The change was forgotten in
obs-ffmpeg-mux. This is remedied here.
[1] 67e48ecc2c

Signed-off-by: pkv <pkv@obsproject.com>
2022-05-16 16:17:32 -04:00
pkv
5b6cc73c24 obs-ffmpeg: Fix for channel layout API change
The channel_layout API was overhauled by FFmpeg [1-4]. The previous
bitmask channel_layout is replaced by a struct ch_layout which combines
the number of channels, a bitmask and other infos. This struct must now
be supplied to AVframes since avutil >= 57.24.100 and to
AVCodecContext since avcodec 59.24.100 per (1].
This commit provides the required info to ffmpeg-mux,
obs-ffmpeg-output & to obs-ffmpeg-audio-encoders.

[1] Bump minor versions after the channel layout changes
cdba98bb80
[2] lavc: switch to the new channel layout API
548aeb9383
[3] avutil/channel_layout: Add a new channel layout API
086a804806
[4] avframe: switch to the new channel layout API db6efa18
db6efa1815

Signed-off-by: pkv <pkv@obsproject.com>
2022-05-16 16:17:32 -04:00
pkv
e66542075d libobs: Fix missing include due to FFmpeg 5 changes
Since [1], avcodec/version.h is not included anymore in codec.h and
therefore is not included any more  in avformat.h.
As a result, LIBAVCODEC_VERSION_INT is no longer defined. This commit
fixes the include.
Since obviously we can't ifdef the avcodec include by referring to an
avcodec version, we ifdef it with the avformat version which was bumped
at the same time [2].

[1] libavcodec: Split version.h
f2da2e1458
[2] doc: Add an entry to APIchanges about changes to version.h and
 version_major.h
f3a0e2ee2b

Signed-off-by: pkv <pkv@obsproject.com>
2022-05-16 16:17:32 -04:00
Richard Stanway
377af35016
UI: Move scene import dialog to the stack
Changed for consistency as almost every other dialog in the application
is stack-allocated.
2022-05-16 21:51:01 +02:00