From 8b4f2666c16bfdc8c3566a6a91b5e772e8ac5a53 Mon Sep 17 00:00:00 2001 From: Florian Zwoch Date: Tue, 1 Feb 2022 12:28:37 +0100 Subject: [PATCH] source: clear old image data on activate --- main.go | 4 ++++ source.go | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/main.go b/main.go index 2a3f0d8..778cc0f 100644 --- a/main.go +++ b/main.go @@ -61,6 +61,9 @@ package main // extern void (filter_update)(uintptr_t data, obs_data_t *settings); // extern void (dummy_update)(uintptr_t data, obs_data_t *settings); // +// typedef void (*activate_t)(uintptr_t data); +// extern void source_activate(uintptr_t data); +// // typedef struct obs_source_frame* (*filter_video_t)(uintptr_t data, struct obs_source_frame *frames); // extern struct obs_source_frame* filter_video(uintptr_t data, struct obs_source_frame *frames); // @@ -136,6 +139,7 @@ func obs_module_load() C.bool { get_properties: C.get_properties_t(unsafe.Pointer(C.source_get_properties)), get_defaults: C.get_defaults_t(unsafe.Pointer(C.source_get_defaults)), update: C.update_t(unsafe.Pointer(C.source_update)), + activate: C.activate_t(unsafe.Pointer(C.source_activate)), }, C.sizeof_struct_obs_source_info) C.obs_register_source_s(&C.struct_obs_source_info{ diff --git a/source.go b/source.go index c41bd5f..81d36d6 100644 --- a/source.go +++ b/source.go @@ -179,6 +179,13 @@ func source_update(data C.uintptr_t, settings *C.obs_data_t) { go source_loop(h) } +//export source_activate +func source_activate(data C.uintptr_t) { + h := cgo.Handle(data).Value().(*teleportSource) + + C.obs_source_output_video(h.source, nil) +} + func source_loop(h *teleportSource) { defer h.Done()