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