22 Commits
Author SHA1 Message Date
Ryan Foster a1fbf1015f clang-format: Increase column limit from 80 to 120 2024-10-04 18:19:27 -04:00
jpark37andLain bb12fe9db5 decklink: Add HDR playback support 2023-08-15 13:15:45 -07:00
gxalphaandLain 79822a58c3 libobs,plugins: Remove new obs_output_*2 functions
Effectively reverting parts of d314d47, this commit removes the new
functions that got added to remove the flags parameter. Instead, it just
marks the parameter as unused and documents this. Having what is
effectively an API break just to remove a parameter is a bit overkill.
The other parts of d314d47 which cleaned up the usage of the flags
parameter are untouched here.
2023-06-10 16:13:05 -07:00
tt2468andLain d314d4725d libobs, plugins: Deprecate obs_output_t functions with flag parameters
This deprecates the following functions, replacing them with new
versions:
- `obs_output_can_begin_data_capture()` - now `*capture2()`
- `obs_output_initialize_encoders()` - now `*encoders2()`
- `obs_output_begin_data_capture()` - now `*capture2()`

The flags parameter was initially designed to support audio-only or
video-only operation of an output which had the `OBS_OUTPUT_AV` flag,
however, full support for that was never implemented, and there are
likely fundamental issues with an implementation, mainly that most
outputs are programmed assuming that there will always be at least one
audio and one video track. This requires new flags specifying support
for optional audio/video, among other things.

An implementation to allow audio/video to be optional is best done
using the flag technique above, with audio/video enablement specified
by whether media (raw, `video_t/audio_t`) or encoder (`obs_encoder_t`)
objects are specified.

Since every implementation I could find always specifies `flags` as 0,
I was able to safely conclude that immediately removing the parameter's
functionality is safe to do.
2023-05-20 16:41:55 -07:00
jpark37andJim 5adcd51a68 decklink: Ignore "default" output device
obs_get_output_properties leads to a callback with an empty settings
object, so ignore it to avoid adding a dummy entry to the device list.
2023-04-09 11:53:12 -07:00
jpark37andJim 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
jpark37andJim ac87106f03 decklink: Schedule video frames for playback
DisplayVideoFrameSync is unusable at 4K, over 20 milliseconds per call.
ScheduleVideoFrame is probably what we should have been using all along.
2023-03-28 11:19:43 -07:00
jpark37 06b8cef665 decklink: Set video conversion earlier
Owner needs this info set sooner to move rescale from CPU to GPU.
2023-02-19 11:46:20 -08:00
jpark37andJim 0c4e7c4142 decklink: Always output BGRA 2022-11-19 15:24:26 -08:00
jpark37andJim 6a29cc5876 decklink: Set output range and color space 2022-09-10 15:36:27 -07:00
PatTheMav 49e9d49943 plugins: Update CMakeLists.txt for included plugins 2022-03-16 23:11:08 +01:00
tt2468andJim 0698eeda94 decklink: Don't show incompatible formats
Changes the formats dropdown for decklink output to only show formats
using the same framerate as OBS does. OBS cannot perform framerate
conversions, meaning that if OBS's framerate is set to 45fps, and
decklink output is set to 60fps, the output will either lag heavily
or simply not function.
2021-07-15 07:29:13 -07:00
tt2468andJim ca88ba8bbc decklink: Fix crash during shutdown when output is on
The actual crash is caused because obs_module_unload() is called before
the decklink outputs are stopped. In obs_module_unload(), the deviceEnum
pointer is freed. During decklink_output_stop(), the removed code tries
to retrieve a reference of the decklink device from the deviceEnum and
crashes because it has already been freed. This code appears to serve no
purpose anyway, so we remove it.
2021-05-11 21:09:22 -07:00
Hans Petter Selasky 0e4ea14ba1 libobs: Implement and use better scaling function for 64-bit integers
As os_gettime_ns() gets large the current scaling methods, mostly by casting
to uint64_t, may lead to numerical overflows. Sweep the code and use
util_mul_div64() where applicable.

Signed-off-by: Hans Petter Selasky <hps@selasky.org>
2020-04-05 20:27:28 +02:00
Afriza N. AriefandGitHub f7332b467a Decklink: Fix crash when no matching device
OBS crashes when decklink output is auto started and the device is
removed or changed to different model while OBS is not running.

Fixes https://github.com/obsproject/obs-studio/issues/2494
2020-04-03 00:32:33 +07:00
Clayton Groeneveld e57d542625 Decklink: Fix crash when no device selected 2020-02-27 01:27:46 -06:00
Clayton Groeneveld daf552096e decklink: Fix crash when no outputs are available 2020-02-17 18:58:26 -06:00
jpark37 592ff852a5 Decklink: Explicit casts for truncation warnings 2019-12-06 22:35:52 -08:00
jp9000 f53df7da64 clang-format: Apply formatting
Code submissions have continually suffered from formatting
inconsistencies that constantly have to be addressed.  Using
clang-format simplifies this by making code formatting more consistent,
and allows automation of the code formatting so that maintainers can
focus more on the code itself instead of code formatting.
2019-06-23 23:49:10 -07:00
Colin Edwards e296855d14 Decklink: only use RGBA when using keyer 2019-01-04 22:25:08 -06:00
Colin Edwards 19bc92d267 Decklink: Keyer support 2019-01-04 17:34:00 -06:00
Colin Edwards 21b67cff64 Decklink: add output support 2018-09-25 19:13:25 -05:00