26 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
jpark37
6aaf0358ca decklink-output-ui: Decouple DeckLink output state
Didn't realize OBS could output both program and preview views at the
same time with multiple devices.

Also remove render callbacks earlier on stop to avoid use-after-free.
2023-10-25 01:11:32 -05:00
jpark37
bb12fe9db5 decklink: Add HDR playback support 2023-08-15 13:15:45 -07:00
derrod
593664dcdb clang-format: Set AllowShortLambdasOnASingleLine to Inline 2023-07-15 16:14:55 -07:00
jpark37
bad13c90e0 decklink-output-ui: Don't crash on missing device
Noticed OBS crashing after I removed DeckLink hardware that I enabled
auto-start output against.
2023-04-09 11:53:12 -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
ddee7ff6fe decklink-output-ui: Align render output paths
Use the render path that preview uses for non-preview rendering, which
uses the GPU to rescale rather than the CPU and pulls the image from the
GPU before pixel format conversion happens. This means it's no longer
necessary to select BGRA to use the keyer anymore.
2023-03-24 15:18:45 -07:00
jpark37
593a0f034c decklink-output-ui: Move preview rescale to GPU
Internal keyer computes with straight alpha, so use DrawAlphaDivide.
2023-02-19 11:46:20 -08:00
jpark37
4a108a6935 decklink-output-ui: Pipeline GPU data for preview
Mapping a GPU resource for CPU read immediately after GPU write creates
a large stall on the graphics thread. Use a small circular buffer, and
read the oldest frame instead.
2022-11-09 18:49:38 -08:00
jpark37
cfd8f06122 decklink-output-ui: Set preview color range 2022-09-10 15:36:27 -07:00
Ryan Foster
ff58d35df3 decklink-output-ui: Fix crash when stopping preview
Removing the first call to `video_output_stop` prevents the `data_mutex`
field in `struct video_output` from being destroyed while still in use.
The `render_preview_source` function will call `video_output_lock_frame`
upon that mutex and encounter a NULL pointer exception.

Co-authored-by: Paul Hindt <paulh@aja.com>
2022-05-20 21:15:53 -04:00
cg2121
8510731f2b decklink: Don't load modules if Decklink not found
This also modifies decklink-captions and decklink-output-ui.
2022-02-26 15:44:00 -08:00
Colin Edwards
ed329c433d decklink-output-ui: Stop outputs on OBS_FRONTEND_EVENT_EXIT 2022-01-12 06:53:49 -08:00
Richard Stanway
e8d4de6bec decklink-output-ui: Don't update UI during shutdown
Fixes a crash on exit if the user exited with the outputs running as the
parent window will have already destroyed doUI.
2021-08-19 00:04:52 +02:00
Clayton Groeneveld
f4c36460c8 decklink-output-ui: Stop outputs when unloading
When closing OBS, sometimes it would crash if the Decklink outputs
were active.
2021-05-15 14:08:49 -07:00
Clayton Groeneveld
b28f99d4cd decklink-output-ui: Render texrender once per frame
To prevent rendering the texrender more than necessary, only
render it once per frame in a tick callback.
2021-05-15 14:08:49 -07:00
Fred Emmott
e5f05473e7
decklink-ui: fix double free of settings
This leads to a crash when the output is stopped, either by clicking the
stop button or when exiting OBS studio.

This crash is:
- intermittent in release builds
- reliable for me in debug builds

It is held by an `OBSData`, which, if not null, will automatically
call `obs_data_release()` on scope exit.
2021-02-08 14:46:38 -06:00
Clayton Groeneveld
fa9dccb7be frontend-plugins: Refactor Decklink out UI 2020-02-26 23:06:20 -06:00
Jim
fc54a3b708
Merge pull request #1974 from DDRBoxman/state
decklink-ui: Show the state of outputs in the decklink dialog
2019-11-11 07:13:52 -08:00
Colin Edwards
a469d14264 decklink-ui: Show the state of outputs in the decklink dialog 2019-11-09 14:48:24 -06:00
Clayton Groeneveld
5f7f2c1c97 UI: Fix compiler/Acri warnings 2019-08-15 03:00:06 -05: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
jp9000
d2b107bc9d decklink-output-ui: Fix memory leak 2019-04-20 01:43:01 -07:00
Colin Edwards
6d07885b08 Decklink: inital preview out work 2019-04-17 21:21:39 -05:00
Colin Edwards
1af8789ce0 decklink-output-ui: Fix memory leak
Closes obsproject/obs-studio#1656
2019-02-10 18:16:10 -08:00
Colin Edwards
22fdda311d Decklink: add UI to control output 2018-10-23 18:57:17 -05:00