]> git.sesse.net Git - vlc/blobdiff - src/stream_output/sdp.c
Rework SDP API a little
[vlc] / src / stream_output / sdp.c
index bea5dd6332b4ae0443d39e13c8ebcdd6ae370c78..02ba40ba180e24943c29b6dddd393608e75fa67e 100644 (file)
@@ -87,9 +87,9 @@ static vlc_bool_t IsSDPString (const char *str)
 
 
 char *sdp_Start (const char *name, const char *description, const char *url,
-                const char *email, const char *phone,
-                const struct sockaddr *src, size_t srclen,
-                const struct sockaddr *addr, size_t addrlen)
+                 const char *email, const char *phone,
+                 const struct sockaddr *src, size_t srclen,
+                 const struct sockaddr *addr, size_t addrlen)
 {
     uint64_t now = NTPtime64 ();
     char *sdp;
@@ -244,3 +244,45 @@ char *sdp_AddMedia (char **sdp,
 
     return newsdp;
 }
+
+
+char *vlc_sdp_Start (vlc_object_t *obj, const char *cfgpref,
+                     const struct sockaddr *src, size_t srclen,
+                     const struct sockaddr *addr, size_t addrlen)
+{
+    size_t cfglen = strlen (cfgpref);
+    if (cfglen > 100)
+        return NULL;
+
+    char varname[cfglen + sizeof ("description")], *subvar = varname + cfglen;
+    strcpy (varname, cfgpref);
+
+    session_descriptor_t *p_session = calloc (1, sizeof (*p_session));
+    if (p_session == NULL)
+        return NULL;
+
+    strcpy (subvar, "name");
+    char *name = var_GetNonEmptyString (obj, varname);
+    strcpy (subvar, "description");
+    char *description = var_GetNonEmptyString (obj, varname);
+    strcpy (subvar, "url");
+    char *url = var_GetNonEmptyString (obj, varname);
+    strcpy (subvar, "email");
+    char *email = var_GetNonEmptyString (obj, varname);
+    strcpy (subvar, "phone");
+    char *phone = var_GetNonEmptyString (obj, varname);
+#if 0
+    strcpy (subvar, "group");
+    char *group = var_GetNonEmptyString (obj, varname);
+#endif
+
+    char *sdp = sdp_Start (name, description, url, email, phone,
+                           src, srclen, addr, addrlen);
+    free (name);
+    free (description);
+    free (url);
+    free (email);
+    free (phone);
+
+    return sdp;
+}