14264 Commits
Author SHA1 Message Date
ExeldroandRyan Foster 1cb1864cc0 libobs: Fix crash when mix is NULL 30.2.0 2024-07-11 17:24:55 -04:00
Ruwen HahnandRyan Foster 3a884277ea UI: Fix qt-helpers.{c,h}pp not being removed from legacy.cmake
Follow-up to https://github.com/obsproject/obs-studio/pull/10957
2024-07-11 13:45:19 -04:00
Warchamp7andRyan Foster da997d9648 UI: Add field growth policy to form layouts 2024-07-10 19:53:30 -04:00
Ruwen HahnandRyan Foster 7327663112 UI: Remove QFuture usage
`QFuture`s are broken on older Qt versions, even with the deadlock
workaround (see <https://github.com/obsproject/obs-studio/issues/10929>)
2024-07-10 16:12:53 -04:00
Ruwen HahnandRyan Foster b74e7ede0e UI: Move code out of unnamed lambdas
This is in preparation of the next change, to hopefully minimize
the resulting diff
2024-07-10 16:12:53 -04:00
tytan652andRyan Foster 5545674e6d CI: Fix flatpak-builder-lint action
- Fix for loops syntax
- Manage jq empty output
2024-07-09 17:10:48 -04:00
derrodandLain 877ddad270 win-wasapi: Remove noisy and useless debug logging 2024-07-06 16:21:21 -07:00
derrodandLain c6a100a980 obs-ffmpeg: Honor preferred format in native NVENC 2024-07-06 16:18:52 -07:00
Kurt Kartaltepeandtt2468 8c71b0b586 libobs: Fix plane heights for odd values 2024-07-03 02:11:48 -07:00
Ryan Foster 9d67bf2662 Revert "plugins/win-dshow: Add CUDA decoder"
This reverts commit ce4c99be4e.

This was causing infinitely looping log errors in systems with no
CUDA-capable hardware when hardware decoding was enabled on video
capture devices with custom config enabled.
30.2.0-rc1
2024-06-26 18:43:09 -04:00
tt2468andRyan Foster 8892edde05 libobs: Merge obs_encoder_stop() and ..._stop_internal()
There is no longer any need for them to be separate functions. This is
just code cleanup.
2024-06-26 16:42:05 -04:00
tt2468andRyan Foster 06291c7201 libobs: Fix race when to-be-destroyed encoder group finishes stopping
Fixes a crash when the following steps occur:
- Encoder group created and then started with encoders, only the group
owning encoder refs
- Encoder group destroy called: group has `destroy_on_stop` set
without actual destroy
- Outputs holding encoders from stopping are stopped
- `remove_connection()` function destroys encoder group, releasing
encoders and causing the currently processed encoder to be destroyed
early
- parent scopes try to access destroyed encoder pointer and crash

This change moves some logic around to improve the release/destruct
order of `obs_encoder_stop()` to fix the race above.

Note: Cases of encoder errors will not destruct the group if it has
`destroy_on_stop` set, as the encoder is also not destroyed if it also
is set to destroy on stop. This part of the code should be revisited
at a later date and fixed up to prevent memory leaks.
2024-06-26 16:42:05 -04:00
tt2468andRyan Foster fb5bbc8575 libobs: Set encoder initialized call closer to shutdown
This is mainly code cleanup.
2024-06-26 16:42:05 -04:00
Ruwen HahnandRyan Foster 7d19add10b UI: Display dialog for multitrack video output audio channels mismatch 2024-06-26 16:10:15 -04:00
VainockandRyan Foster 4830d6903e UI: Fix capitalization of 'OBS' and 'RTMP' 2024-06-26 15:01:01 -04:00
Warchamp7andRyan Foster 47fb194223 UI: Adjust Yami (Classic) styling 2024-06-26 14:58:13 -04:00
derrodandRyan Foster edcda5a825 obs-x264: Ignore stats/qp file and multipass options 2024-06-26 13:58:08 -04:00
derrodandRyan Foster 2e6e79b4f5 obs-outputs: Skip trak box if track has no data 2024-06-26 13:57:59 -04:00
derrodandRyan Foster b34fbb116e obs-ffmpeg: Check if current NVENC configuration supports 4:4:4 encode 2024-06-26 13:57:43 -04:00
PenwywernandRyan Foster 4517918c7a cmake: Fix FFmpeg version regex 2024-06-26 12:26:56 -04:00
derrodandRyan Foster 6cc0e2b803 obs-outputs: Fix file splitting ts offset using video DTS instead of PTS 2024-06-25 23:36:33 -04:00
derrodandRyan Foster ed2478535f obs-outputs: Do not create MP4 track chunks without samples 2024-06-25 23:36:33 -04:00
Ed MasteandRyan Foster fd34bab615 UI: Link Qt::DBus on FreeBSD
As with Linux we need to link Qt::DBus on FreeBSD now that there's a
HighContrastEnabled implementation that makes use of it.

Fixes: 41ba8bdfdd ("UI: Add HighContrastEnabled implementation fo...")
2024-06-25 22:37:14 -04:00
Alex LuccisanoandRodney 5f98d34e2c UI: Fix multitrack-video audio track index
Fix a minor oversight from a recent commit. Audio
track indexing in the UI is 1-based while underlying
code uses 0-based indexing.
2024-06-20 06:44:33 +02:00
tt2468 6c389271b3 obs-ffmpeg: Close VAAPI device on vaInitialize fail
On some systems (eg. mine), VAAPI fails on vaInitialize. Valgrind was
able to spot that the device was not being closed, and it appears to
have been correct. This fixes a memory leak.
2024-06-19 19:46:05 -07:00
Fabien LavocatandRyan Foster 6457d7b429 rtmp-services: Add Dolby Millicast 2024-06-19 13:13:16 -04:00
gxalphaandRyan Foster 92352f18b8 cmake: Add obs-config.h to libobs headers
Adds the header to make it findable in IDEs
2024-06-19 13:08:30 -04:00
Ed MasteandRyan Foster a189489dd2 CI: Fix FreeBSD package installation
FreeBSD's package tool is pkg(8), and install is the command verb passed
to it.

Fixes: fb4d65875e ("CI: Update Linux build scripts to use CMake p...")
2024-06-19 13:06:10 -04:00
Ruwen HahnandRyan Foster aa096e2ad0 UI: Disable multitrack video settings on non-win32 platforms 2024-06-19 12:50:34 -04:00
Ruwen HahnandRyan Foster 9d1ac8816e UI: Add supported codecs to GetClientConfiguration request 2024-06-19 12:27:13 -04:00
Ruwen HahnandRyan Foster 8a8019db3f UI: Only cache multitrack config URL startup argument 2024-06-19 12:08:52 -04:00
derrodandRyan Foster a9b5968552 CI: Add tag subject to Windows patch notes 2024-06-19 10:42:11 -04:00
derrodandRyan Foster fc05ca601a CI: Update Windows patch creation bouf version 2024-06-19 10:42:11 -04:00
Ryan Foster 32b53ea936 CI: Fix Windows Patches action release notes generation
By not specifying a checkout ref, actions/checkout does a second
checkout when this action is invoked by the Publish workflow (release
event). When this happens, it checks out the commit object from the tag,
and git can no longer locate the annotated tag that contains the release
notes. This then causes the release notes to be just the commit message
and not the annotated tag message.

The sparkle-appcast action in general and this actioo when invoked via
the Dispatch workflow do not have this issue, and they both specify the
tag as the ref.
2024-06-19 10:37:11 -04:00
Ruwen HahnandRyan Foster fb3e571ce8 UI: Use advanced mode audio track in multitrack video output 30.2.0-beta4 2024-06-18 14:13:42 -04:00
Ryan Foster 48b1298faf UI: Fix parsing of Multitrack Video stream key query parameters
The code was checking stream_key, but stream_key could be the
user-supplied value (in_stream_key) or the server-supplied value
(endpoint.authentication). The server-supplied value may lack the query
parameters set in the user-supplied value. To ensure that user-specified
query parameters (such as bandwidthtest) are passed along, parse the
user-supplied key instead of the server-supplied key.
2024-06-18 12:39:56 -04:00
derrodandRyan Foster 608d3bfc26 UI: Set default container for beta builds to hybrid MP4 2024-06-17 12:12:20 -04:00
tt2468andLain e215502b62 libobs, UI: Normalize encoder group API
Modifies the encoder group API added previously to better follow the
existing libobs API naming paradigms. This also produces much more
readable code, and allows a few small benefits like only needing to
hold a reference to the encoder group, instead of every encoder.
2024-06-17 08:20:01 -07:00
tt2468andLain 751dbdad10 libobs: Update video encoder group struct member names
Updates the struct member names of the video encoder group to be more
like what is commonly seen in OBS elsewhere.
2024-06-17 08:20:01 -07:00
Ryan Foster 9d88b632ae UI: Add step value to Multitrack Video maximum bitrate control
All other bitrate setting fields in the UI have a single-step value of
50. Without setting this, the single-step value is 1, which makes using
the scroll wheel a bit tedious.

While this could arguably be higher, let's make this consistent first
and then consider changing the values across the application later.
2024-06-17 10:36:17 -04:00
tt2468andRodney 4eef796f80 deps/media-playback: Fix init of swscale with hw decode
Checking the format of the AVCodecContext will result in using the
format of the hardware-side frames, not the software-side frames. This
uses the software frame parameters itself to initialize the swscale
context.
2024-06-16 02:47:06 +02:00
Ryan FosterandLain 0d7478c017 UI: Set Multitrack Video maximum bitrate limit default to 0/Auto
There were some reports that the default value of 8000 was confusing
because it implies that the automaticaly selected and used value is 8000
Kbps. Set it to 0 which should hopefully make it more obvious that OBS
is not sending 0 Kbps.
2024-06-15 16:40:53 -07:00
tt2468andLain d1bf6f951a obs-outputs: Add multitrack flag to null output 2024-06-15 16:35:59 -07:00
Ryan FosterandLain 62830cd8c7 UI: Fix icon-size values in theme files
The Qt docs on icon-size say its Type is Length, which is further
defined as, "A number followed by a measurement unit."

https://doc.qt.io/qt-6/stylesheet-reference.html#icon-size
https://doc.qt.io/qt-6/stylesheet-reference.html#length

This fixes the following logged Qt warning:
QCssParser::sizeValue: Too many values provided
2024-06-15 16:11:49 -07:00
cg2121andLain dcd2f19c83 UI: Remove redundant addAction call
This removes a redundant addAction call in the studio mode program
context menu.
2024-06-15 16:08:24 -07:00
gxalphaandLain 7cd5ede1e0 UI: Initialize YoutubeChatDock chat input members in constructor
Currently, the chat input elements (lineEdit, sendButton, and
chatLayout) are initialized when the QCefWidget gets set. This is
problematic behavior that only happened to work because we're a bit
lucky: The chat is only enabled after a widget is set, and it's only set
once. Without those conditions, the chat dock would crash when enabling
the chat before a widget is set, and the elements would get recreated if
the widget is set a second time, resulting in the original elements not
getting freed and leaking.
Moving the element creation to the constructor fixes both of these
problems, as now they're created immediately and only once.

Detected by PVS-Studio.
2024-06-15 16:06:38 -07:00
gxalphaandLain f462ffb224 UI: Initialize max length of LineEditAutoResize in constructor
LineEditAutoResize didn't have its maxLength initialized in the
constructor, leaving it to be a random value until set via setMaxLength.
The one place where LineEditAutoResize was used immediately set this
after calling the constructor, but if we use this anywhere else in the
future it makes sense to have this initialized.
As it is meant to mostly behave like a QLineEdit, lets use the same
default value of 32767.

Detected by PVS-Studio.
2024-06-15 16:06:38 -07:00
Ruwen HahnandRyan Foster 600a564039 UI: Add composition_gpu_index to multitrack video postdata 2024-06-14 20:08:26 -04:00
Alex LuccisanoandRyan Foster d7e2636316 UI: Change multitrack video configId
Schema has changed this field from "obsConfigId" to
"clientConfigId". Updated the name to match.
2024-06-14 20:08:26 -04:00
derrodandRyan Foster d2a7f01295 updater: Use static blake2 and fix building with Debug runtimes 2024-06-14 18:10:04 -04:00