0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 21:13:04 +02:00
Commit Graph

12464 Commits

Author SHA1 Message Date
tytan652
6181325ed9 flatpak: Add missing CMAKE_BUILD_TYPE
CMake defaults to a type commonly named "None".
Setting the type to "Release" is required to have optimization flags
applied.
2023-03-19 09:16:01 +11:00
Richard Stanway
7e9b071a6c
obs-ffmpeg: Add GeForce MX450 variant to unsupported NVENC list 2023-03-18 13:31:42 +01:00
tytan652
3eab477211 flatpak: Use Github mirror for nv-codec-headers
git.videolan.org repo seems to be inconsitent.
2023-03-18 11:28:00 +01:00
derrod
c971e0ead3 UI: Fix capitalisation of SysTrayEnabled 2023-03-18 10:47:50 +01:00
derrod
13040ad241 obs-ffmpeg: Fix translation key capitalisation 2023-03-18 10:47:50 +01:00
derrod
a41c616b21 libobs: Do not send hotkey_bindings_changed if nothing changed 2023-03-18 10:47:50 +01:00
derrod
e6a7cff034 libobs: Use uthash for hotkeys and hotkey pairs 2023-03-18 10:47:50 +01:00
derrod
78aa4e03dc libobs: Use uthash for properties 2023-03-18 10:47:49 +01:00
derrod
eff3cf134c libobs: Use uthash for hotkey name map 2023-03-18 10:47:49 +01:00
derrod
c68eeaef1d libobs: Use uthash for source objects
All sources are part of a hash table that allows a lookup by UUID.
Public sources additionally are in a hash table allowing lookup by name.
2023-03-18 10:47:49 +01:00
derrod
183fa8c06c libobs: Use uthash for translation lookup 2023-03-18 10:47:49 +01:00
derrod
e720bb4c09 libobs: Use uthash for config 2023-03-18 10:47:49 +01:00
Jim
f4a8814998 libobs: Use uthash for obs data objects
Co-authored-by: Rodney <dennis@obsproject.com>
2023-03-18 10:47:49 +01:00
derrod
2986d36d9b libobs/util: Add uthash
Adds a header including uthash and redefining some of its options for
use withint libobs and plugins (potentially).
2023-03-18 10:47:49 +01:00
derrod
401ae8a570 clang-format: add HASH_ITER to ForEachMacros 2023-03-18 10:46:28 +01:00
derrod
d0554e25c1 deps: Add uthash 2023-03-18 10:46:28 +01:00
jp9000
619edf5e7d libobs: Add pointer to obs_data_item name
Rather than have to look up the string each time, just add a pointer to
the string. Still all stored in the same memory though.
2023-03-18 10:46:28 +01:00
Kurt Kartaltepe
9bde0afc74 linux-pipewire: Report modifiers in hex
Use hex for modifiers because they are generally formed from a high byte
and low bytes. This makes it easier to see these bytes and identify
unusual modifiers.
2023-03-17 10:48:51 -03:00
tytan652
e6873d3278 UI: Refactor integration and browser docks
Use the QAction provided by QDockWidget with new Qt connection rather
than creating a new one for each dock.

Separate extra browser docks from extra docks, the latter is meant for
plugin/integration docks.
2023-03-17 20:21:08 +11:00
tytan652
63e3e0acd0 UI: Refactor main docks toggle action
Use the QAction provided by QDockWidget with new Qt connection rather
than creating a new one for each dock.
2023-03-17 20:21:08 +11:00
cg2121
a870ae2fb9 UI: Remove platform string from title bar
This cleans up the title bar text.
2023-03-17 19:06:50 +11:00
田七不甜
03691eb0a9 win-capture: Remove the redundant "-" in the CSGO launch option and Steam url language code 2023-03-15 22:31:06 +01:00
Robert Mader
0a36dc9d80 linux-pipewire: Clear cursor texture on empty bitmap
If we receive an empty cursor bitmap - one without valid size - we
should hide the cursor. Do so by clearing the texture.

This fixes visible cursors when recording various games with Wayland
compositors.

Closes https://github.com/obsproject/obs-studio/issues/4895
2023-03-14 10:52:17 -03:00
derrod
b31344d82e updater: Fix building in Debug 2023-03-12 20:50:45 +01:00
Norihiro Kamae
baddacc111 Revert "obs-ffmpeg: Use FFmpeg's "fast" AAC encoder by default"
This reverts commit aa58b9cf5f.

FFmpeg has reverted their default AAC encoder from fast to twoloop,
which has much better rate control management, making it closer to CBR,
and it sounds much better.
2023-03-12 10:21:27 -07:00
derrod
02225aa8bf UI: Reset UUIDs in duplicated collection 2023-03-12 01:11:38 +01:00
derrod
1fd50a9324 libobs: Add obs_reset_source_uuids 2023-03-12 01:11:38 +01:00
derrod
29db52ad27 libobs: Save/Load source UUID in scene item data 2023-03-12 01:11:38 +01:00
derrod
30519768ad libobs: Add UUIDs to obs_source objects 2023-03-12 01:11:38 +01:00
derrod
f72cc4498f libobs: Add os_generate_uuid() to platform utils 2023-03-12 01:11:38 +01:00
derrod
11f88af880 cmake: Add libuuid finder 2023-03-12 01:11:38 +01:00
gxalpha
ab04bb1f55 UI: Don't show Update section in settings when built without Sparkle 2023-03-11 15:37:28 -08:00
gxalpha
aee268c944 UI: Don't show video-only async filters for synchronous sources
Expands the filter_compatible check to return false if the source isn't
async and the filter is not an audio filter, filtering out e.g. the
"Video Delay (Async)" filter from browser sources (which have audio but
don't have async video).
Amends 845e056551.
2023-03-11 15:24:07 -08:00
cg2121
b82c8ccdcf UI: Limit preview scrolling
This prevents the preview from being scrolled on forever.
2023-03-11 15:22:23 -08:00
derrod
f55b251fa8 UI: Sort and pretty-print exported collections 2023-03-10 23:55:42 +01:00
derrod
4b062a7147 libobs: Add functions for getting/saving pretty JSON 2023-03-10 23:55:42 +01:00
gxalpha
bb4e6f9e51 UI: Don't try to make OBSBasic parent of ControlsSplitButton
Passing the parent of a QLayout sets it directly as the top-level layout
(as per the QLayout docs). This is obviously not what is intended here.
Luckily it doesn't even work since the main window of course already has
a layout which would need to be explicitly removed before, but it makes
Qt yell at us for trying.
2023-03-11 09:38:46 +11:00
derrod
705173a0c3 UI: Add fragmented MP4/MOV formats 2023-03-10 17:12:36 -05:00
derrod
05b1be4f27 UI: Add MP4 to remuxable extensions 2023-03-10 17:12:36 -05:00
gxalpha
4c9ebc753c UI: Create OBSPermissions on stack
This fixes the window leaking and may improve performance.
2023-03-10 13:49:52 -05:00
Stefan Murawski
95cbd21a3b UI/installer: Add quotes around UninstallString
This follows recommended practice from NSIS documentation.

This fixes issue #7935.
2023-03-10 12:58:33 -05:00
derrod
198c2b9e86 media-playback: Fix libavutil version check 2023-03-10 08:15:54 +01:00
Bartłomiej Piotrowski
853ae5ea6e UI: Set flathub::manifest
Currently, the manifest URL on Flathub Beta website points to the
deprecated manifest hosted on Flathub. The flathub::manifest key
is undocumented attribute that will update the website to use the
proper location.

This key will not affect appstream other than providing enough
information to the Flathub website.
2023-03-09 20:33:44 -03:00
gxalpha
b1c96bba86 UI: Re-raise remux dialog after selecting file on macOS 2023-03-09 16:05:40 -05:00
gxalpha
9c6a3a1d49 obs-vst: Fix memory leaks on macOS when VST's fail to load
Detected by clang-analyzer.
2023-03-09 15:18:38 -05:00
Richard Stanway
9d4a7f01dd UI: Add DLL blocking functionality for Windows
Adds a NtMapViewOfSection hook which we can use before DLLs are loaded
to decide whether to abort the process. This is useful for blocking
known problematic DLLs that cause crashes. In addition, the PE timestamp
can be checked to block only older DLLs such as older versions of Vtuber
virtual cameras with known deadlock bugs.

A simple counter of each DLL is used for logging purposes. Since DLLs
can be blocked at any time, the output is only logged on exit of OBS.
2023-03-09 14:16:34 -05:00
Mathijs Kadijk
970c284a65 mac-virtualcam: Prevent PTS rounding
All presentation time stamps are rounded to whole seconds during the
conversion from nanoseconds to seconds, because of the immediate cast
to `int64_t`. This results in the same presentation time stamp being
send to consumers for a whole second.

In previews/live streams this isn't super visible as last frame is
often assumed to be the newest and the stream is updated. It's more
problematic when recording since APIs like Apple's AVFoundation don't
allow duplicate presentation time stamps or it can look like frames are
produced in huge bursts once per second.

In this PR `CMTimeMakeWithSeconds` is used instead of `CMTimeMake` to
make sure the conversion is done correctly and simplify the calculation
we have to do a little.
2023-03-09 15:45:48 +01:00
Mathijs Kadijk
ecaa5466cb mac-virtualcam: Fix incorrect PTS on Apple Silicon
The `fillFrame` method of the mac-virtualcam plugin is creating samples
directly using the value from `mach_absolute_time()` as `hostTime`.
This assumes this value is in nanoseconds, while it is in fact in mach
tick units. On Intel Macs mach tick units will be exactly 1 nanosecond
resulting in valid values, but on Apple Silicon macs this is no longer
the case.

This results in sample buffers with the placeholder image that have
much lower presentation time stamps than the samples containing content
produced by OBS. In previews/live streams this shows due to the last
content sample being shown frozen until the whole buffer is filled with
samples containing the placeholder image. Applications recording the
video stream are even more confused and crash or record videos with
wildly incorrect lengths.

In this PR `clock_gettime_nsec_np` is used to convert from mach tick units
to nanoseconds. This will make sure the `hostTime` value is correct on
both Apple Silicon and Intel macs. Making sure we produce stable
presentation time stamps from the virtual camera plugin at all times.
2023-03-09 15:45:48 +01:00
derrod
f3b1a1cf1f UI: Use bilinear scaling for YT thumbnail 2023-03-08 18:41:20 -05:00
derrod
c99256cf21 UI: Do not set default locale 2023-03-08 18:06:51 -05:00