Changeset fe63f4c516d7a328fc743a90ec08e1df725376c0
- Timestamp:
- 09/11/07 19:05:09 (1 year ago)
- git-parent:
- Files:
-
- include/vlc_sout.h (modified) (1 diff)
- src/libvlc.sym (modified) (1 diff)
- src/stream_output/sap.c (modified) (1 diff)
- src/stream_output/sdp.c (modified) (3 diffs)
- src/stream_output/stream_output.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
include/vlc_sout.h
r7681a9b rfe63f4c 221 221 VLC_EXPORT(void, sout_MethodRelease, (announce_method_t *) ); 222 222 223 /** SDP */ 224 225 VLC_EXPORT( char *, sdp_Start, (const char *name, const char *description, const char *url, const char *email, const char *phone, const struct sockaddr *orig, socklen_t origlen, const struct sockaddr *addr, socklen_t addrlen) ); 226 VLC_EXPORT( char *, sdp_AddMedia, (char **sdp, const char *type, const char *protocol, int dport, unsigned pt, vlc_bool_t bw_indep, unsigned bw, const char *rtpmap, const char *fmtp) ); 227 VLC_EXPORT( char *, sdp_AddAttribute, (char **sdp, const char *name, const char *fmt, ...) ); 228 229 223 230 #ifdef __cplusplus 224 231 } src/libvlc.sym
r27e278e rfe63f4c 256 256 resolve_xml_special_chars 257 257 secstotimestr 258 sdp_Start 259 sdp_AddAttribute 260 sdp_AddMedia 258 261 sout_AccessOutDelete 259 262 sout_AccessOutNew src/stream_output/sap.c
r0a84a03 rfe63f4c 598 598 char *psz_group, *psz_name, *psz_sdp; 599 599 600 char *head = StartSDP(p_session->psz_name, p_session->description,600 char *head = sdp_Start (p_session->psz_name, p_session->description, 601 601 p_session->url, p_session->email, p_session->phone, 602 602 (const struct sockaddr *)&p_session->orig, p_session->origlen, src/stream_output/sdp.c
rf96cead rfe63f4c 87 87 88 88 89 char * StartSDP(const char *name, const char *description, const char *url,89 char *sdp_Start (const char *name, const char *description, const char *url, 90 90 const char *email, const char *phone, 91 91 const struct sockaddr *src, socklen_t srclen, … … 158 158 159 159 160 char *vAddSDPMedia (char **sdp, 161 const char *type, int dport, const char *protocol, 162 unsigned pt, const char *rtpmap, 163 const char *fmtpfmt, va_list ap) 160 static char * 161 vsdp_AddAttribute (char **sdp, const char *name, const char *fmt, va_list ap) 162 { 163 size_t oldlen = strlen (*sdp); 164 size_t addlen = 165 sizeof ("a=:\r\n") + strlen (name) + vsnprintf (NULL, 0, fmt, ap); 166 char *ret = realloc (*sdp, oldlen + addlen); 167 168 if (ret == NULL) 169 return NULL; 170 171 oldlen += sprintf (ret + oldlen, "a=%s:", name); 172 sprintf (ret + oldlen, fmt, ap); 173 return *sdp = ret; 174 } 175 176 177 char *sdp_AddAttribute (char **sdp, const char *name, const char *fmt, ...) 178 { 179 char *ret; 180 181 if (fmt != NULL) 182 { 183 va_list ap; 184 185 va_start (ap, fmt); 186 ret = vsdp_AddAttribute (sdp, name, fmt, ap); 187 va_end (ap); 188 } 189 else 190 { 191 size_t oldlen = strlen (*sdp); 192 ret = realloc (*sdp, oldlen + strlen (name) + sizeof ("a=\r\n")); 193 if (ret == NULL) 194 return NULL; 195 196 sprintf (ret + oldlen, "a=%s\r\n", name); 197 } 198 return ret; 199 } 200 201 202 char *sdp_AddMedia (char **sdp, 203 const char *type, const char *protocol, int dport, 204 unsigned pt, vlc_bool_t bw_indep, unsigned bw, 205 const char *rtpmap, const char *fmtp) 164 206 { 165 207 char *newsdp, *ptr; … … 178 220 type, dport, protocol, pt); 179 221 222 newsdp = realloc (*sdp, outlen + 1); 223 if (newsdp == NULL) 224 return NULL; 225 226 *sdp = newsdp; 227 ptr = newsdp + inlen; 228 229 ptr += sprintf (ptr, "m=%s %u %s %d\r\n" 230 "b=RR:0\r\n", 231 type, dport, protocol, pt); 232 180 233 /* RTP payload type map */ 181 234 if (rtpmap != NULL) 182 outlen += snprintf (NULL, 0, "a=rtpmap:%u %s\r\n", pt, rtpmap); 183 235 sdp_AddAttribute ("rtpmap", "%u %s", pt, rtpmap); 184 236 /* Format parameters */ 185 if (fmtpfmt != NULL) 186 { 187 outlen += sizeof ("a=fmtp:123 *\r\n"); 188 outlen += vsnprintf (NULL, 0, fmtpfmt, ap); 189 } 190 191 newsdp = realloc (*sdp, outlen + 1); 192 if (newsdp == NULL) 193 return NULL; 194 195 *sdp = newsdp; 196 ptr = newsdp + inlen; 197 198 /* RTP payload type map */ 199 ptr += sprintf (ptr, "a=rtpmap:%u %s\r\n", pt, rtpmap); 200 201 /* Format parameters */ 202 if (fmtpfmt != NULL) 203 { 204 ptr += sprintf (ptr, "a=fmtp:%u ", pt); 205 ptr += vsprintf (ptr, fmtpfmt, ap); 206 } 237 if (fmtp != NULL) 238 sdp_AddAttribute ("fmtp", "%u %s", pt, fmtp); 207 239 208 240 return newsdp; 209 241 } 210 211 212 char *AddSDPMedia (char **sdp, const char *type, int dport, const char *proto,213 unsigned pt, const char *rtpmap, const char *fmtpfmt, ...)214 {215 va_list ap;216 char *ret;217 218 va_start (ap, fmtpfmt);219 ret = vAddSDPMedia (sdp, type, dport, proto, pt, rtpmap, fmtpfmt, ap);220 va_end (ap);221 222 return ret;223 }src/stream_output/stream_output.h
rf96cead rfe63f4c 116 116 void announce_SAPHandlerDestroy( sap_handler_t *p_sap ); 117 117 118 #include <stdarg.h>119 120 char *StartSDP (const char *name, const char *description, const char *url,121 const char *email, const char *phone,122 const struct sockaddr *orig, socklen_t origlen,123 const struct sockaddr *addr, socklen_t addrlen);124 125 char *vAddSDPMedia (char **sdp, const char *type, int dport, const char *prot,126 unsigned pt, const char *rtpmap,127 const char *fmtpfmt, va_list ap);128 char *AddSDPMedia (char **sdp, const char *type, int dport, const char *proto,129 unsigned pt, const char *rtpmap, const char *fmtpfmt, ...);130 131 118 #endif
