Commit Graph
12637 Commits
Author SHA1 Message Date
derrod 5a375defa8 UI: Rework recording format handling 2023-04-04 00:54:28 +00:00
Ryan Foster a4f3eb7fcf obs-qsv11: Log selected codec 2023-04-04 00:48:03 +00:00
Ryan Foster 6aa28c8667 CI: Specify branches for merge groups 2023-04-03 20:23:41 -04:00
Ryan Foster a973b97036 obs-ffmpeg: Set framerate for AVCodecContext outputs
In avcodec.h, the docs for AVCodecContext->framerate say:
encoding: May be used to signal the framerate of CFR content to an
          encoder.

OBS is designed to always output Constant Frame Rate (CFR) content.
Instead of letting this be implied, let's explicitly set the framerate
per the docs.
2023-04-03 23:28:31 +00:00
Ryan Foster 855d9cba4a CI: Update deps to 2023-04-03 release
Notable changes:
 * deps.ffmpeg: Update FFmpeg to a6dc92968a
 * deps.qt: Backport macOS disabled combobox items fix

The FFmpeg update is to fix an issue with DTS when using b-frames with
FFmpeg NVENC. In particular, we wanted this commmit:
 * https://github.com/FFmpeg/FFmpeg/commit/a6dc92968a325d331bb6dcf9b3b2248026cd1d6c
2023-04-03 23:28:17 +00:00
Ryan Foster 4454bc5d5a CI: Enable main workflow to run on merge queue items 2023-04-03 19:04:47 -04:00
derrod c2e66942d0 obs-ffmpeg: Allow specifying audio sample format 2023-04-03 23:37:22 +02:00
tt2468 d2902c1316 obs-ffmpeg: Compensate for invalid NVENC DTS when using b-frames
When using FFmpeg-based NVENC, with b-frames, and a non-1 framerate
numerator (eg. `1001/60000` aka 59.94fps), the DTS values outputted
by FFmpeg result in invalid DTS values.

Detect when using an unpatched FFmpeg build and correct the values
accordingly.
2023-04-03 16:42:31 -04:00
Richard Stanway a781f4a887 UI: Don't std::move main in SetUndoProperties
main is used later in the function, making this undefined behavior.
Though we can move the scene_name string.

Detected by PVS Studio.
2023-04-03 21:47:14 +02:00
derrod 288dfd2660 UI: Remove unused uppercase format string 2023-04-03 16:18:48 +02:00
tt2468 57e6053c81 deps/media-playback: Remove unnecessary log line
Every time a media player instance would be initialized, it would
create a new `Set FFmpeg options:` log message. With lots of looping
media sources, this gets incredibly spammy. It's already being logged
by the media source itself, so this line is pretty much unnecessary.
2023-04-02 17:41:34 -07:00
Matt Gajownik b620dd4c50 obs-ffmpeg: Don't use standard newlines in HTML error messages
Qt by default will render strings that contain new line characters as
plain text, bypassing the HTML renderer.
2023-04-02 04:09:54 +02:00
Jim d166bee3b6 Revert "UI: Fix preview rendering order"
This reverts commit bb34315f90.
2023-04-01 18:00:44 -07:00
cg2121 3a610c698e UI: Remove UNUSED_PARAMETER where unnecessary
Since cpp allows removing the unused parameters from the function name,
UNUSED_PARAMETER is not needed, unless it is in an ifdef.
2023-04-01 16:54:02 -07:00
jpark37 b2a83a3145 decklink: Pass frames between threads using queues
Eliminates the stalls that have been seen when waiting for frame copies.

We shouldn't be copying at all ideally, but that would break the API.
2023-04-01 16:49:12 -07:00
cg2121 7475261542 UI: Fix rotation handle when source is flipped
The rotation handle and cursor would be drawn at the wrong spot
if the source was flipped.
2023-04-01 16:48:24 -07:00
cg2121 30682e999e UI: Use UUIDs for QDataStream
UUIDs are more robust than names as they can't be changed.
2023-04-01 16:45:48 -07:00
cg2121 bb34315f90 UI: Fix preview rendering order
The spacing helpers were being rendered above the preview
safe areas.
2023-04-01 16:44:38 -07:00
gxalpha 2f2fc33f91 UI: Disallow closing settings without selected codec or format 2023-04-01 16:43:07 -07:00
Ryan Foster 60139cbdfe Revert "UI: Remove bitness strings"
This reverts commit 64d4ae0106.
2023-04-01 16:35:10 -07:00
derrod 7cb9f10c61 CI: Fix Steam workflow not finding win asset 2023-04-02 09:26:35 +10:00
gxalpha 240a718818 UI: Guard ResetInvalidSelection check behind Qt < 6.5.1 2023-04-01 16:25:49 -07:00
derrod 61efa3cbeb UI: Fix replay buffer with fragmented formats 2023-04-01 16:24:40 -07:00
Richard Stanway 0f614034ca obs-ffmpeg: Handle mux errors when writing replay buffer
Without this, we could continuously call signal_failure in write_packet,
crashing OBS with a stack overflow with all the error callbacks.
2023-04-01 16:21:37 -07:00
derrod c8d274edac UI: Only use FFmpeg compat check for external codecs
For all the codecs we ship with OBS we can use a hardcoded lookup
instead as the FFmpeg one is unreliable.
2023-04-01 16:19:27 -07:00
gxalpha 6fc9235b09 cmake: Enable "sortable" flag in UI for large lists 2023-04-01 16:15:41 -07:00
gxalpha caccd86092 cmake: Sort libobs target_sources alphabetically 2023-04-01 16:15:41 -07:00
gxalpha eaf6444236 mac-capture: Simplify coreaudio_get_device_id
The current method would enum though all devices looking for a matching
uid instead of directly asking for kAudioHardwarePropertyDeviceForUID.
Asking directly instead would also enable finding hidden devices that
can only be found directly via uid and not via enumerating (were we ever
to need to find such a device).
2023-04-01 16:13:17 -07:00
Asahi Lina 584de6b264 linux-pipewire: Use premultiplied alpha
Pipewire desktop portal capture assumes premultiplied alpha, so make
sure to use the right blend equation to make translucent pixels work
correctly.

This is still broken for emissive pixels (alpha < color) since OBS seems
to unpremultiply at some point during blending, but it works properly
for translucent pixels (emissive pixel support requires an end-to-end
premultiplied pipeline).
2023-04-01 16:11:19 -07:00
jpark37 7a3beec87b decklink: Avoid swscale for color space
Any color space adjustments should be done on the GPU.
2023-04-01 16:08:54 -07:00
jpark37 e4a80d0396 decklink: Query for preroll frame count
Three is recommended though, so use at least that many.
2023-04-01 16:08:54 -07:00
Friedhelm Birth b3b5e7eae8 win-dshow: Change buffering for Elgato devices
The default is now buffering disabled except for very old devices
accessed through virtual capture filter "Elgato Game Capture HD".
2023-04-01 16:03:33 -07:00
Ryan Foster 1be1f51635 CI: Update deps to 2023-03-30 release
Notable changes:
 * deps.ffmpeg: Update FFmpeg to 3980415627

This update is to fix a crash when using FFmpeg NVENC. In particular, we
wanted these commmits:
 * https://github.com/FFmpeg/FFmpeg/commit/0981053c294f8a0edf1a06c329574fb2ebb5d5da
 * https://github.com/FFmpeg/FFmpeg/commit/916bdc0f197de7ea24d30f3f3c284e4332dd3720
2023-03-31 17:59:02 -04:00
Richard Stanway d71fa5248f obs-ffmpeg: Fix memory corruption during cleanup
We were calling avio_close on a field that might have held an
AVIOContext. This commit checks which type was allocated so we
can call the appropriate cleanup function.
2023-03-31 13:19:48 -04:00
Richard Stanway e0f674de86 UI: Add AMD AV1 encoder to simple output mode
Fixes https://github.com/obsproject/obs-studio/issues/8584
2023-03-30 22:04:07 -04:00
Richard Stanway 9a24b1ad06 UI: Update Windows DLL blocklist
- Add Bandicam
- Add VirtualMotionCapture (unity capture)
- Add HolisticMotionCapture (unity capture)

Fixes https://github.com/obsproject/obs-studio/issues/8552
2023-03-30 21:16:35 -04:00
Simon Rost a144a736f9 libobs: Remove dependency on Visual Studio 2019+
In util_uint64.h the intrinsic function _udiv128 is used.
The implementation is only available in Visual Studio 2019+
2023-03-30 19:51:08 -04:00
gxalpha c2b4142720 CI: Update service check PR job to remove set-output 2023-03-30 19:25:14 -04:00
Ryan Foster 94cf1cd2c8 CI: Fix GitHub labels check
github.event.pull_request.labels contains the labels at the time the
pull_request event was triggered. Modifications made during the workflow
(or after the PR was submitted and before a CI re-run) won't show up
there. To reliably check the labels on CI re-runs, switch back to
checking the API.
2023-03-30 18:55:57 -04:00
tytan652 0315c357f6 flatpak: Remove jack2 module
jack2 is already part of the runtime that we rely on and we use only its
headers.
2023-03-29 19:13:58 -03:00
tytan652 f47524b5f8 CI: Remove useless toJSON in Flatpak workflow 2023-03-29 19:13:58 -03:00
derrod aea0867945 obs-outputs: Do not strip AV1 padding for RTMP/FLV 2023-03-29 16:53:33 -04:00
derrod d98abf8ce9 obs-ffmpeg: Enable padding for NVENC CBR modes 2023-03-29 16:53:33 -04:00
derrod 2560187611 UI: Remux fragmented containers to regular counterparts
Also disables record-as-MKV when using fmp4.
2023-03-29 19:17:24 +00:00
derrod 8e1cae4f02 UI: Remux mp4/mov to mp4/mov with suffix 2023-03-29 19:17:08 +00:00
derrod 624a0da302 UI: Only adjust size of properties on first draw 2023-03-29 19:16:56 +00:00
tytan652 0d9f15cf3d UI: Improve AV1 fallbacks while changing services
This makes AV1 encoders fallback to their H264 counterpart rather than
just falling back to x264 while changing services.
2023-03-29 19:16:46 +00:00
PatTheMav d5e894ebb3 deps: Fix lower version boundary for file-updater
Version 3.16 required for Linux compatibility.
2023-03-29 13:11:33 -04:00
PatTheMav 84057ba93d CI: Update macOS packaging to use Xcode archiving and extraction 2023-03-29 10:31:57 -04:00
PatTheMav a0000412fa cmake: Add changes required to use Xcode archiving 2023-03-29 10:31:57 -04:00