Explorar el Código

UI: Fix parsing of Multitrack Video stream key query parameters

The code was checking stream_key, but stream_key could be the
user-supplied value (in_stream_key) or the server-supplied value
(endpoint.authentication). The server-supplied value may lack the query
parameters set in the user-supplied value. To ensure that user-specified
query parameters (such as bandwidthtest) are passed along, parse the
user-supplied key instead of the server-supplied key.
Ryan Foster hace 1 año
padre
commit
48b1298faf
Se han modificado 1 ficheros con 4 adiciones y 2 borrados
  1. 4 2
      UI/multitrack-video-output.cpp

+ 4 - 2
UI/multitrack-video-output.cpp

@@ -116,13 +116,15 @@ create_service(const GoLiveApi::Config &go_live_config,
 
 
 	/* The stream key itself may contain query parameters, such as
 	/* The stream key itself may contain query parameters, such as
 	 * "bandwidthtest" that need to be carried over. */
 	 * "bandwidthtest" that need to be carried over. */
+	QUrl parsed_user_key{in_stream_key};
+	QUrlQuery user_key_query{parsed_user_key};
+
 	QUrl parsed_key{stream_key};
 	QUrl parsed_key{stream_key};
-	QUrlQuery key_query{parsed_key};
 
 
 	QUrl parsed_url{url};
 	QUrl parsed_url{url};
 	QUrlQuery parsed_query{parsed_url};
 	QUrlQuery parsed_query{parsed_url};
 
 
-	for (const auto &[key, value] : key_query.queryItems())
+	for (const auto &[key, value] : user_key_query.queryItems())
 		parsed_query.addQueryItem(key, value);
 		parsed_query.addQueryItem(key, value);
 
 
 	if (!go_live_config.meta.config_id.empty()) {
 	if (!go_live_config.meta.config_id.empty()) {