* Update libvpl to version 2.12.0
* Update vpl-gpu-rt to version 24.2.5
* 24.3 requires VVC from libva which is not the case with the actual
runtime in use
* Update nv-codec to version 12.2.72.0
The ComPtr, WinHandle, and obfuscate source files are shared with
multiple sub-projects and thus need to be moved into the shared
directory to uncouple their availability from libobs itself.
The same applies to d3d8-api, inject-library, and hook-config
(from win-capture), as well as comutils (from the virtualcam-module).
CMake doesn't expect CMake package files to be separated in
subdirectories on Windows and instead expects all files to be put in
a single directory `cmake` found within one of the PREFIX paths.
Also fixes circular dependency in w32-pthreads CMake package config
file.
List widgets are currently used as playlists in source properties,
but only contain the file paths and no other identifying information.
This can lead to files being added multiple times, so when changes to
list order occurs, plugins cannot uniquely identify which duplicate
item was actually changed (because they're only identified by the path).
By adding a UUID to the user data role of a list item, an additional
unique information is added that allows plugins to de-duplicate list
items.
This adds scrollbars to the preview, so users can move around the
preview without using the spacebar + clicking.
Co-Authored-By: Clayton Groeneveld <19962531+cg2121@users.noreply.github.com>
Notable changes:
* deps.ffmpeg: Enable Media Foundation
* deps.ffmpeg: Update nv-codec to 12.2.72.0
* deps.macos: Use correct CMake vars for libajantv2
* deps.macos: Add SIMD Everywhere to macOS deps
* deps.windows: Add SIMD Everywhere to Windows deps
* deps.windows: Update VPL to v2.12.0
On Windows, shutdown() will not interrupt a blocking connect() call, so
happy_eyeballs_destroy could block until the remaining candidates timed
out. As happy_eyeballs_destroy is called in the RTMP connect path, this
would stall the RTMP connection and cause the winning candidate's socket
to be disconnected due to a timeout.
The code currently assumes that the array does not change during
execution, this assumption is violated when the darray resizes causing
previous pointers to point to invalid memory and cause undefined
behavior and crashes.
This may need refactoring in the future, this commit simply fixes the
issue for now.
Fixes#10504.
There was a bug in FFmpeg implementation which was hidden by a bug in
libsrt; it was fixed in a recent commit [1].
When we ported FFmpeg libsrt.c to obs, we brought the said bug along.
When starting an SRT stream in listener mode, if no connection is made
by a client, there were two issues:
- 1) obs was stuck into a connecting loop,
- 2) the socket was not closed when exiting OBS.
This fixes the issue so that SRT is displaying that a stream started
when in listener mode even if NO client is connected.
This is the correct behaviour for a listener.
The stream now closes properly.
[1] https://git.videolan.org/?p=ffmpeg.git;a=commit;h=87677c2195e86b126c3438439a05d0a46ae5bb50
Signed-off-by: pkv <pkv@obsproject.com>