diff --git a/UI/frontend-plugins/decklink-captions/decklink-captions.cpp b/UI/frontend-plugins/decklink-captions/decklink-captions.cpp index dc15ea35b..53b37a826 100644 --- a/UI/frontend-plugins/decklink-captions/decklink-captions.cpp +++ b/UI/frontend-plugins/decklink-captions/decklink-captions.cpp @@ -153,7 +153,13 @@ void addOutputUI(void) bool obs_module_load(void) { - addOutputUI(); - return true; } + +void obs_module_post_load(void) +{ + if (!obs_get_module("decklink")) + return; + + addOutputUI(); +} diff --git a/UI/frontend-plugins/decklink-output-ui/decklink-ui-main.cpp b/UI/frontend-plugins/decklink-output-ui/decklink-ui-main.cpp index 7be119a34..6e42fbbe9 100644 --- a/UI/frontend-plugins/decklink-output-ui/decklink-ui-main.cpp +++ b/UI/frontend-plugins/decklink-output-ui/decklink-ui-main.cpp @@ -340,10 +340,6 @@ static void OBSEvent(enum obs_frontend_event event, void *) bool obs_module_load(void) { - addOutputUI(); - - obs_frontend_add_event_callback(OBSEvent, nullptr); - return true; } @@ -357,3 +353,13 @@ void obs_module_unload(void) if (main_output_running) output_stop(); } + +void obs_module_post_load(void) +{ + if (!obs_get_module("decklink")) + return; + + addOutputUI(); + + obs_frontend_add_event_callback(OBSEvent, nullptr); +} diff --git a/plugins/decklink/plugin-main.cpp b/plugins/decklink/plugin-main.cpp index ee46edd27..fc87cd256 100644 --- a/plugins/decklink/plugin-main.cpp +++ b/plugins/decklink/plugin-main.cpp @@ -14,7 +14,7 @@ struct obs_source_info decklink_source_info; extern struct obs_output_info create_decklink_output_info(); struct obs_output_info decklink_output_info; -void log_sdk_version() +bool log_sdk_version() { IDeckLinkIterator *deckLinkIterator; IDeckLinkAPIInformation *deckLinkAPIInformation; @@ -24,7 +24,7 @@ void log_sdk_version() if (deckLinkIterator == NULL) { blog(LOG_WARNING, "A DeckLink iterator could not be created. The DeckLink drivers may not be installed"); - return; + return false; } result = deckLinkIterator->QueryInterface( @@ -45,15 +45,18 @@ void log_sdk_version() deckLinkAPIInformation->Release(); } + + return true; } bool obs_module_load(void) { - log_sdk_version(); + if (!log_sdk_version()) + return false; deviceEnum = new DeckLinkDeviceDiscovery(); if (!deviceEnum->Init()) - return true; + return false; decklink_source_info = create_decklink_source_info(); obs_register_source(&decklink_source_info);