rtmp-services: Add auth settings for custom server
Username and Password prompts have been added to the custom RTMP server UI and saved in the config file alongside server and key.
This commit is contained in:
parent
132e58fb31
commit
65d7f3b63f
@ -3,3 +3,6 @@ CustomStreamingServer="Custom Streaming Server"
|
|||||||
Service="Service"
|
Service="Service"
|
||||||
Server="Server"
|
Server="Server"
|
||||||
StreamKey="Stream key"
|
StreamKey="Stream key"
|
||||||
|
UseAuth="Use authentication"
|
||||||
|
Username="Username"
|
||||||
|
Password="Password"
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
struct rtmp_custom {
|
struct rtmp_custom {
|
||||||
char *server, *key;
|
char *server, *key;
|
||||||
|
bool use_auth;
|
||||||
|
char *username, *password;
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char *rtmp_custom_name(void)
|
static const char *rtmp_custom_name(void)
|
||||||
@ -18,6 +20,9 @@ static void rtmp_custom_update(void *data, obs_data_t *settings)
|
|||||||
|
|
||||||
service->server = bstrdup(obs_data_get_string(settings, "server"));
|
service->server = bstrdup(obs_data_get_string(settings, "server"));
|
||||||
service->key = bstrdup(obs_data_get_string(settings, "key"));
|
service->key = bstrdup(obs_data_get_string(settings, "key"));
|
||||||
|
service->use_auth = obs_data_get_bool(settings, "use_auth");
|
||||||
|
service->username = bstrdup(obs_data_get_string(settings, "username"));
|
||||||
|
service->password = bstrdup(obs_data_get_string(settings, "password"));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rtmp_custom_destroy(void *data)
|
static void rtmp_custom_destroy(void *data)
|
||||||
@ -26,6 +31,8 @@ static void rtmp_custom_destroy(void *data)
|
|||||||
|
|
||||||
bfree(service->server);
|
bfree(service->server);
|
||||||
bfree(service->key);
|
bfree(service->key);
|
||||||
|
bfree(service->username);
|
||||||
|
bfree(service->password);
|
||||||
bfree(service);
|
bfree(service);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -38,16 +45,35 @@ static void *rtmp_custom_create(obs_data_t *settings, obs_service_t *service)
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool use_auth_modified(obs_properties_t *ppts, obs_property_t *p,
|
||||||
|
obs_data_t *settings)
|
||||||
|
{
|
||||||
|
bool use_auth = obs_data_get_bool(settings, "use_auth");
|
||||||
|
p = obs_properties_get(ppts, "username");
|
||||||
|
obs_property_set_visible(p, use_auth);
|
||||||
|
p = obs_properties_get(ppts, "password");
|
||||||
|
obs_property_set_visible(p, use_auth);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
static obs_properties_t *rtmp_custom_properties(void *unused)
|
static obs_properties_t *rtmp_custom_properties(void *unused)
|
||||||
{
|
{
|
||||||
UNUSED_PARAMETER(unused);
|
UNUSED_PARAMETER(unused);
|
||||||
|
|
||||||
obs_properties_t *ppts = obs_properties_create();
|
obs_properties_t *ppts = obs_properties_create();
|
||||||
|
obs_property_t *p;
|
||||||
|
|
||||||
obs_properties_add_text(ppts, "server", "URL", OBS_TEXT_DEFAULT);
|
obs_properties_add_text(ppts, "server", "URL", OBS_TEXT_DEFAULT);
|
||||||
|
|
||||||
obs_properties_add_text(ppts, "key", obs_module_text("StreamKey"),
|
obs_properties_add_text(ppts, "key", obs_module_text("StreamKey"),
|
||||||
OBS_TEXT_PASSWORD);
|
OBS_TEXT_PASSWORD);
|
||||||
|
|
||||||
|
p = obs_properties_add_bool(ppts, "use_auth", obs_module_text("UseAuth"));
|
||||||
|
obs_properties_add_text(ppts, "username", obs_module_text("Username"),
|
||||||
|
OBS_TEXT_DEFAULT);
|
||||||
|
obs_properties_add_text(ppts, "password", obs_module_text("Password"),
|
||||||
|
OBS_TEXT_PASSWORD);
|
||||||
|
obs_property_set_modified_callback(p, use_auth_modified);
|
||||||
return ppts;
|
return ppts;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -63,6 +89,22 @@ static const char *rtmp_custom_key(void *data)
|
|||||||
return service->key;
|
return service->key;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const char *rtmp_custom_username(void *data)
|
||||||
|
{
|
||||||
|
struct rtmp_custom *service = data;
|
||||||
|
if (!service->use_auth)
|
||||||
|
return NULL;
|
||||||
|
return service->username;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const char *rtmp_custom_password(void *data)
|
||||||
|
{
|
||||||
|
struct rtmp_custom *service = data;
|
||||||
|
if (!service->use_auth)
|
||||||
|
return NULL;
|
||||||
|
return service->password;
|
||||||
|
}
|
||||||
|
|
||||||
struct obs_service_info rtmp_custom_service = {
|
struct obs_service_info rtmp_custom_service = {
|
||||||
.id = "rtmp_custom",
|
.id = "rtmp_custom",
|
||||||
.get_name = rtmp_custom_name,
|
.get_name = rtmp_custom_name,
|
||||||
@ -71,5 +113,7 @@ struct obs_service_info rtmp_custom_service = {
|
|||||||
.update = rtmp_custom_update,
|
.update = rtmp_custom_update,
|
||||||
.get_properties = rtmp_custom_properties,
|
.get_properties = rtmp_custom_properties,
|
||||||
.get_url = rtmp_custom_url,
|
.get_url = rtmp_custom_url,
|
||||||
.get_key = rtmp_custom_key
|
.get_key = rtmp_custom_key,
|
||||||
|
.get_username = rtmp_custom_username,
|
||||||
|
.get_password = rtmp_custom_password
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user