Changeset bc650c59ca6d2edbf555dc0cec11091f274b42f5

Show
Ignore:
Timestamp:
15/09/07 21:14:11 (1 year ago)
Author:
Rémi Denis-Courmont <rem@videolan.org>
git-committer:
Rémi Denis-Courmont <rem@videolan.org> 1189883651 +0000
git-parent:

[d5f7a3c170acf5e7a565f552220a6185cd29db10]

git-author:
Rémi Denis-Courmont <rem@videolan.org> 1189883651 +0000
Message:

Rework SDP API a little

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • include/vlc_sout.h

    r8287b68 rbc650c5  
    223223/** SDP */ 
    224224 
     225VLC_EXPORT( 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 ) ); 
    225226VLC_EXPORT( char *, sdp_Start, (const char *name, const char *description, const char *url, const char *email, const char *phone, const struct sockaddr *orig, size_t origlen, const struct sockaddr *addr, size_t addrlen) ); 
    226227VLC_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) ); 
  • modules/stream_out/rtp.c

    rfb2512e rbc650c5  
    7070    "This is the name of the session that will be announced in the SDP " \ 
    7171    "(Session Descriptor)." ) 
    72 #define DESC_TEXT N_("Session description") 
     72#define DESC_TEXT N_("Session descriptipn") 
    7373#define DESC_LONGTEXT N_( \ 
    74     "This allows you to give a broader description of the stream, that will " \ 
    75     "be announced in the SDP (Session Descriptor)." ) 
     74    "This allows you to give a short description with details about the stream, " \ 
     75    "that will be announced in the SDP (Session Descriptor)." ) 
    7676#define URL_TEXT N_("Session URL") 
    7777#define URL_LONGTEXT N_( \ 
     
    8181#define EMAIL_TEXT N_("Session email") 
    8282#define EMAIL_LONGTEXT N_( \ 
    83    "This allows you to give a contact mail address for the stream, that will " \ 
    84    "be announced in the SDP (Session Descriptor)." ) 
     83    "This allows you to give a contact mail address for the stream, that will " \ 
     84    "be announced in the SDP (Session Descriptor)." ) 
     85#define PHONE_TEXT N_("Session phone number") 
     86#define PHONE_LONGTEXT N_( \ 
     87    "This allows you to give a contact telephone number for the stream, that will " \ 
     88    "be announced in the SDP (Session Descriptor)." ) 
     89 
    8590#define PORT_TEXT N_("Port") 
    8691#define PORT_LONGTEXT N_( \ 
     
    142147    add_string( SOUT_CFG_PREFIX "email", "", NULL, EMAIL_TEXT, 
    143148                EMAIL_LONGTEXT, VLC_TRUE ); 
     149    add_string( SOUT_CFG_PREFIX "phone", "", NULL, PHONE_TEXT, 
     150                PHONE_LONGTEXT, VLC_TRUE ); 
    144151 
    145152    add_integer( SOUT_CFG_PREFIX "port", 1234, NULL, PORT_TEXT, 
     
    171178static const char *ppsz_sout_options[] = { 
    172179    "dst", "name", "port", "port-audio", "port-video", "*sdp", "ttl", "mux", 
    173     "description", "url", "email", 
     180    "description", "url", "email", "phone", 
    174181    "dccp", "tcp", "udplite", 
    175182    "mp4a-latm", NULL 
     
    687694    } 
    688695 
    689     psz_sdp = sdp_Start( p_sys->psz_session_name, 
    690                          p_sys->psz_session_description, 
    691                          p_sys->psz_session_url, p_sys->psz_session_email, 
    692                          NULL, NULL, 0, (struct sockaddr *)&dst, dstlen ); 
     696    psz_sdp = vlc_sdp_Start( VLC_OBJECT( p_stream ), SOUT_CFG_PREFIX, 
     697                             NULL, 0, (struct sockaddr *)&dst, dstlen ); 
    693698    if( psz_sdp == NULL ) 
    694699        return NULL; 
    695  
    696700 
    697701    /* TODO: a=source-filter */ 
  • src/libvlc.sym

    r0500053 rbc650c5  
    258258resolve_xml_special_chars 
    259259secstotimestr 
    260 sdp_Start 
     260vlc_sdp_Start 
    261261sdp_AddAttribute 
    262262sdp_AddMedia 
  • src/stream_output/sdp.c

    r8287b68 rbc650c5  
    8888 
    8989char *sdp_Start (const char *name, const char *description, const char *url, 
    90                 const char *email, const char *phone, 
    91                 const struct sockaddr *src, size_t srclen, 
    92                 const struct sockaddr *addr, size_t addrlen) 
     90                const char *email, const char *phone, 
     91                const struct sockaddr *src, size_t srclen, 
     92                const struct sockaddr *addr, size_t addrlen) 
    9393{ 
    9494    uint64_t now = NTPtime64 (); 
     
    245245    return newsdp; 
    246246} 
     247 
     248 
     249char *vlc_sdp_Start (vlc_object_t *obj, const char *cfgpref, 
     250                     const struct sockaddr *src, size_t srclen, 
     251                     const struct sockaddr *addr, size_t addrlen) 
     252{ 
     253    size_t cfglen = strlen (cfgpref); 
     254    if (cfglen > 100) 
     255        return NULL; 
     256 
     257    char varname[cfglen + sizeof ("description")], *subvar = varname + cfglen; 
     258    strcpy (varname, cfgpref); 
     259 
     260    session_descriptor_t *p_session = calloc (1, sizeof (*p_session)); 
     261    if (p_session == NULL) 
     262        return NULL; 
     263 
     264    strcpy (subvar, "name"); 
     265    char *name = var_GetNonEmptyString (obj, varname); 
     266    strcpy (subvar, "description"); 
     267    char *description = var_GetNonEmptyString (obj, varname); 
     268    strcpy (subvar, "url"); 
     269    char *url = var_GetNonEmptyString (obj, varname); 
     270    strcpy (subvar, "email"); 
     271    char *email = var_GetNonEmptyString (obj, varname); 
     272    strcpy (subvar, "phone"); 
     273    char *phone = var_GetNonEmptyString (obj, varname); 
     274#if 0 
     275    strcpy (subvar, "group"); 
     276    char *group = var_GetNonEmptyString (obj, varname); 
     277#endif 
     278 
     279    char *sdp = sdp_Start (name, description, url, email, phone, 
     280                           src, srclen, addr, addrlen); 
     281    free (name); 
     282    free (description); 
     283    free (url); 
     284    free (email); 
     285    free (phone); 
     286 
     287    return sdp; 
     288}