G_DEFINE_BOXED_TYPE (GstRTSPUrl, gst_rtsp_url,
(GBoxedCopyFunc) gst_rtsp_url_copy, (GBoxedFreeFunc) gst_rtsp_url_free);
+#define SCHEME_SIZE 7
+
static const struct
{
- const char scheme[6];
+ const char scheme[SCHEME_SIZE];
GstRTSPLowerTrans transports;
} rtsp_schemes_map[] = {
{
const gchar *post_host;
const gchar *pre_query;
const gchar *query;
+ gchar scheme[SCHEME_SIZE] = "rtsp";
g_return_val_if_fail (url != NULL, NULL);
post_host = url->family == GST_RTSP_FAM_INET6 ? "]" : "";
pre_query = url->query ? "?" : "";
query = url->query ? url->query : "";
+ if (url->transports & GST_RTSP_LOWER_TRANS_TLS)
+ g_strlcpy (scheme, "rtsps", SCHEME_SIZE);
if (url->port != 0) {
- uri = g_strdup_printf ("rtsp://%s%s%s:%u%s%s%s", pre_host, url->host,
+ uri = g_strdup_printf ("%s://%s%s%s:%u%s%s%s", scheme, pre_host, url->host,
post_host, url->port, url->abspath, pre_query, query);
} else {
- uri = g_strdup_printf ("rtsp://%s%s%s%s%s%s", pre_host, url->host,
+ uri = g_strdup_printf ("%s://%s%s%s%s%s%s", scheme, pre_host, url->host,
post_host, url->abspath, pre_query, query);
}
return uri;