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