decklink: Don't load modules if Decklink not found

This also modifies decklink-captions and decklink-output-ui.
master
cg2121 2022-02-24 23:30:05 -06:00 committed by Jim
parent 93c2e681ca
commit 8510731f2b
3 changed files with 25 additions and 10 deletions

View File

@ -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();
}

View File

@ -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);
}

View File

@ -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);