Currently we use signals based on os_event's but the udev code blocks in
a 1s select (now poll) that cannot be signalled without an FD. This adds
an extra eventfd which will be signalled along with the os_event to
trigger the poll.
Also switches from select to poll to avoid issues with large fd values.
Converting the color space was likely accidental as it isn't explicitly
set. Unfortunately, not setting it means that it gets set to the
default, which is Rec. 709 and thus a conversion takes place when having
any other space. This conversion leads to a massive performance penalty
that isn't necessary.
Adding all windows manually means that any windows opened after the
session was started won't appear. This instead excludes the Control
Center from Display Capture. While unfortunate, it seems to be the only
thing on the display that can't be disabled.
Since this was included in things like the inject helper and game
capture DLLs, it added an additional export to those programs. Instead,
simply share the source files directly in the projects that need it.
Co-authored-by: jpark37 <jpark37@users.noreply.github.com>
This resets the RTX greenscreen filter if the FX returns a CUDA error.
In case of a CUDA error 1099, the error can keep repeating locking up
the filter which is inoperant. So if such an error is detected we reset
the FX.
Signed-off-by: pkv <pkv@obsproject.com>
Replace TRANSCONDING with TRANSCODING, because it is likely that the
typo compatibility will be removed in a future AMF header update. This
should also minimize confusion and improve search.
This reverts commit 0532a5c1f0296098a268dc43d889a08c932e1c48.
Ubuntu 21.10 is from OBS 28 onwards not longer supported and as such we
can raise the requirement of the PipeWire dependency to 0.3.33.
If the test process freezes for whatever reason, OBS would block
indefinitely on reading the pipe. This commit adds a 2.5 second timeout
on the AMF test process after which it will self-terminate.
In the event that simply loading the AMF DLL causes initialization code
to run that might crash, don't load the DLL before the AMF test process
has succeeded. Instead, we load the DLL as data to see if it exists,
then run the AMF test, then load the DLL for real.