Commit graph

12183 commits

Author SHA1 Message Date
Kurt Kartaltepe 041fee0484 libobs-opengl: Accelerate dmabuf import
Previously we would actually initialize a texture memory that would then
also have to be deleted when we bound the EGLImage to the texture during
dmabuf import.

Instead simply do not create the dummy texture memory. One odd thing is
that we must still query the texture to ensure its initialized or
binding the EGLImage will not work. So we leave the TEXTURE_MAX_LEVEL
check.

This makes screencapture up to 100x faster on discrete intel cards and
likely has some performance benefit for amd/integrated cards. Without
this dmabufs are actually slower than shared memory for these intel
cards.
2023-02-12 19:07:05 -03:00
gxalpha 67e6b8649a mac-videotoolbox: Load encoders from system asynchronously
Copying the encoder list takes a while which blocks the main thread.
Doing the copying asynchronously removes instead of blocking the main
thread improves startup performance by about 60ms.
2023-02-12 17:38:21 +01:00
cg2121 7a838e877f UI: Fix scene item edit drag & drop bug
If an user exits the source tree edit mode, without changing the name,
the scene item would become undraggable until the scene is refreshed.
We were setting the focus to just the label, not the whole widget.
2023-02-12 02:46:12 -08:00
Exeldro 3840f92777 win-dshow: Fix virtualcam output a default video format 2023-02-11 16:21:49 -08:00
tytan652 cb6b5cc249 libobs: Add desktop environment to Linux log 2023-02-11 16:19:12 -08:00
tytan652 eacc246584 libobs: Add Flatpak info logging 2023-02-11 16:19:12 -08:00
gxalpha 3e4bbe85c8 UI: Remove workaround for current scene being deselectable on Qt 6.4.3+
Qt 6.2 introduced an issue where SingleSelection item views would
deselect the current item if the user clicked on empty area in the
widget.
This was very confusing in the scene tree as it was now possible to
unselect the current scene. A workaround for this in OBS was added in
08e4ee6 and expanded on in dc30cf0, but being quite hacky it never was
the perfect solution.
I since dug into Qt and fixed the issue upstream in qt/qtbase@f11e5435c7
for Qt 6.4.3 and newer, so we can remove the workaround when using those
versions (with the long term goal of removing the code altogether).
2023-02-11 16:01:27 -08:00
derrod 5bdf492f8a UI: Avoid excessive config reads when drawing preview 2023-02-11 15:58:40 -08:00
Ilya Melamed 213ce75328 UI: Add check for null widgetForAction result
In some cases, `QToolbar::widgetForAction` may return `nullptr`. This
causes a crash on affected system.

To mitigate this, we check for `widgetForAction` result and skip
operating on a NULL widget.
2023-02-11 15:56:19 -08:00
bin d831e9403f obs-vst: Read plugins in symlink 2023-02-11 15:50:29 -08:00
Norihiro Kamae ee6ddeeaed libobs: Avoid position underflow when mixing audio sources
When a variable `pos` became larger than `AUDIO_OUTPUT_FRAMES`, `count`
will get overflowed number. To avoid the overflow, continue the loop
when `AUDIO_OUTPUT_FRAMES - pos` is not positive.
2023-02-11 15:22:17 -08:00
bin 228a170361 obs-filters: Fix preset properties refresh 2023-02-11 15:14:00 -08:00
pkv ad3df88fe3 obs-ffmpeg: Fix encoding of 2.1 with FFmpeg aac encoder
The aac spec has a list of default channel layouts that are implemented
by all aac encoders / decoders.
Unfortunately 2.1 is not in that list. When I wrote the surround sound
support into OBS, as a workaround I decided to encode 2.1 as
AV_CH_LAYOUT_SURROUND = FL+FR+FC.
The LFE channel is encoded as a regular audio channel which uses more
bits but this allows compatibility with all aac decoders.
Recently we updated to the new channel layout API of FFmpeg, but the
mapping of 2.1 to AV_CH_LAYOUT_SURROUND was forgotten in the FFmpeg
native aac encoder. This is remedied here.

Signed-off-by: pkv <pkv@obsproject.com>
2023-02-11 15:06:47 -08:00
jpark37 6734167bf1 win-capture: Log display ids 2023-02-11 15:05:28 -08:00
jpark37 35ee1b2ed1 libobs-d3d11: Log display ids 2023-02-11 15:05:28 -08:00
derrod a0b5c1b3f5 UI: Fix properties widget being cut off until resize 2023-02-10 12:04:47 +01:00
tt2468 b2375a0660 obs-ffmpeg: Initialize SRT stats object before requesting stats
The `srt_bstats()` function is not guaranteed to zero the stats object
before filling in stats. If a socket was connected, then disconnected,
without any data being sent over it, the stats object would remain
uninitialized, and weird results could occur.
2023-02-08 11:13:41 -08:00
tytan652 f81f580d26 flatpak: Override PipeWire to 0.3.65
Fixe crashes with 0.3.48/49 daemons.
2023-02-07 12:02:45 -03:00
Jim 4488202247 obs-ffmpeg: Remove unused variables 2023-02-05 02:55:24 -08:00
Jim 1f469e4f7c libobs/media-io: Add get_total_audio_size()
get_audio_size() gets the size of individual planes.
get_total_audio_size() gets the size if you include all planes.
2023-02-05 02:55:24 -08:00
derrod 48b2efdb20 CI: Use cURL for downloading dependency packages 2023-02-05 03:16:14 +01:00
cg2121 26725fa2d5 UI: Disable properties button in source toolbar
If a scene or group is selected, disable the properties button in the
source toolbar. This also does a refactor of the function to enable/disable
the toolbar buttons.
2023-02-04 16:02:04 -08:00
jpark37 148122f5aa graphics-hook: Stop trying to connect early
It never works, and leaves a confusing message behind.
2023-02-04 15:44:16 -08:00
derrod 4fe2a43f00 libobs-d3d11: Log display DPI 2023-02-04 15:33:35 -08:00
Exeldro 2d3013ccdc UI: Add obs_frontend_add_undo_redo_action 2023-02-04 15:30:07 -08:00
PatTheMav 318db2842a obs-scripting: Add PyType_Modified import for Swig 4.1.1 compat 2023-02-04 15:26:38 -08:00
bin 945deec266 UI: Use input validator on resolution line edit in adv tab 2023-02-04 15:25:59 -08:00
Exeldro 46da073aa5 UI: Add obs_frontend_open_sceneitem_edit_transform() 2023-02-04 15:23:26 -08:00
jp9000 2ff210acfd libobs: Update version to 29.0.2 2023-02-04 02:17:49 -08:00
R1CH c36583d794 obs-filters: Ensure gain is positive for upward compressor
The gain should be positive for an upward compressor. Initially, the
gain would be zeroe'd below -60 dB to ensure noise is not amplified by
the upward compressor. This created a discontinuity at -60 dB since
just above -60 dB, the audio is boosted by +20 dB (at default
settings). This was fixed in commit 50db097 which decreased smoothly
the gain so that it's 0 dB at -60 dB. However that commit forgot to
limit the gain decrease which was negative below -60 dB.
This is fixed by the current commit.
Additionally initialization allowed -inf gain. We hard limit to positive
gains only as they should be for an upward compressor.
The bugfix was found by R1ch and put in form by pkv.

Co-authored-by: pkv <pkv@obsproject.com>
Signed-off-by: pkv <pkv@obsproject.com>
2023-02-04 02:05:46 -08:00
Richard Stanway e9a401d898
UI: Remove unsupported Windows versions from manifest 2023-02-01 23:00:50 +01:00
derrod 0a18c006ca CI: Publish docs to Cloudflare Pages 2023-02-01 12:00:50 +01:00
Jim 5d3943ab48 libobs: Update version to 29.0.1 2023-01-31 22:58:37 -08:00
gxalpha 11e9291800 UI: Set macOS appearance on theme change
Makes macOS aware that we're using either light or dark theme to adjust
native dialog colors accordingly.

Co-Authored-By: Patrick Heyer <PatTheMav@users.noreply.github.com>
2023-01-31 18:50:56 +01:00
gxalpha 2272efc91f UI: Use native combobox popup on macOS
As recommended by Qt on QTBUG-106162, this fixes QComboBox popups not
working with VoiceOver.
2023-01-31 18:50:56 +01:00
derrod cd78ecae50 updater: Deduplicate delta patch downloads 2023-01-29 02:24:55 -08:00
derrod cbe3ef7e57 Revert "UI/updater: Fix files with similar hashes clashing"
This reverts commit 7396c211be.
2023-01-29 02:24:55 -08:00
cg2121 52045316b3 UI: Hide menu items if source is only audio
Hides the following items if source is only audio:
- Transform menu
- Resize output (size of source)
- Scale filter menu
- Blending mode menus
- Projector menus
- Screenshots
- Interact
2023-01-29 00:02:40 -08:00
tytan652 918c0c0aeb deps/media-playback: Fix deprecation warning 2023-01-28 23:20:41 -08:00
tytan652 e13e0937a2 obs-scripting: Fix compilation warnings on Clang and GCC
* Fix unused-parameter when Python is disabled
* Calm PySys_SetArgv deprecation since Python 3.11
2023-01-28 23:20:41 -08:00
tytan652 d7fade2c44 cmake: Allow disabling deprecation errors on GCC/Clang 2023-01-28 23:20:41 -08:00
Crocodile Gena a96211a0ee obs-vst: Add reporting of vendor name 2023-01-28 23:07:48 -08:00
Norihiro Kamae e7c40a1d29 obs-ffmpeg: Remove unused macro 2023-01-28 19:03:55 -08:00
Norihiro Kamae 2b4bc03b4c libobs/graphics: Remove unused macros for inputs 2023-01-28 19:03:55 -08:00
Norihiro Kamae 72e7437ce9 win-capture: Remove unused macros 2023-01-28 19:03:55 -08:00
Norihiro Kamae a4a85af787 obs-text: Remove unused macros 2023-01-28 19:03:55 -08:00
Norihiro Kamae d89ca58467 obs-outputs: Remove unused macro 2023-01-28 19:03:55 -08:00
Norihiro Kamae 1069d81019 obs-filters: Remove unused macro 2023-01-28 19:03:55 -08:00
Norihiro Kamae be2e082961 mac-capture: Remove unused macros 2023-01-28 19:03:55 -08:00
Norihiro Kamae 27c7dc9155 docs/sphinx: Add undocumented macros for darray 2023-01-28 19:03:55 -08:00