Changeset 02859f76a72ee583ed6d77953b0651e8364504b7

Show
Ignore:
Timestamp:
10/02/07 22:32:28 (2 years ago)
Author:
Rémi Denis-Courmont <rem@videolan.org>
git-committer:
Rémi Denis-Courmont <rem@videolan.org> 1171143148 +0000
git-parent:

[fe1670bd6436b85002b873bcd8ec69081c4b768a]

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

Repair SAP + SSM

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/stream_output/sap.c

    r6af77cd r02859f7  
    322322            } 
    323323 
    324             /* FIXME FIXME FIXME */ 
    325324            if( ipv4 == 0 ) 
    326325            { 
     
    601600 
    602601     char *head = StartSDP (p_session->psz_name, p_session->description, 
    603         p_session->url, p_session->email, p_session->phone, 
     602        p_session->url, p_session->email, p_session->phone, b_ssm, 
    604603        (const struct sockaddr *)&p_session->orig, p_session->origlen, 
    605604        (const struct sockaddr *)&p_session->addr, p_session->addrlen); 
     
    614613     || (asprintf (&plgroup, "a=x-plgroup:%s\r\n", psz_group) == -1)) 
    615614        plgroup = NULL; 
    616  
    617     char *sfilter; 
    618 #if 0 
    619     if ((!b_ssm) 
    620      || (asprintf (&sfilter, "a=source-filter: incl IN IP%c * %s\r\n", 
    621                    ipv, p_addr->psz_machine) == -1)) 
    622 #else 
    623 # warning FIXME: repair Source Specific Multicast 
    624 #endif 
    625         sfilter = NULL; 
    626615 
    627616    const char *comedia = NULL; 
     
    631620                  "a=connection:new\r\n"; 
    632621 
    633     int res = asprintf (&psz_sdp, "%s" "%s" "%s" "%s" 
     622    int res = asprintf (&psz_sdp, "%s" "%s" "%s" 
    634623                        "m=video %d %s\r\n", 
    635624                        head, 
    636625                        plgroup ?: "", 
    637                         sfilter ?: "", 
    638626                        comedia ?: "", 
    639627                        net_GetPort ((const struct sockaddr *)&p_session->addr), 
    640628                        p_session->sdpformat); 
    641629    free (plgroup); 
    642     free (sfilter); 
    643630 
    644631    if (res == -1) 
  • src/stream_output/sdp.c

    rea71409 r02859f7  
    8686 
    8787char *StartSDP (const char *name, const char *description, const char *url, 
    88                 const char *email, const char *phone, 
     88                const char *email, const char *phone, vlc_bool_t ssm, 
    8989                const struct sockaddr *orig, socklen_t origlen, 
    9090                const struct sockaddr *addr, socklen_t addrlen) 
    9191{ 
    9292    uint64_t t = NTPtime64 (); 
    93     char *sdp, machine[MAXSDPADDRESS], conn[MAXSDPADDRESS]; 
     93    char *sdp, machine[MAXSDPADDRESS], conn[MAXSDPADDRESS], 
     94         sfilter[MAXSDPADDRESS + sizeof ("\r\na=source-filter: incl * ")]; 
    9495    const char *preurl = "\r\nu=", *premail = "\r\ne=", *prephone = "\r\np="; 
    9596 
     
    111112        return NULL; 
    112113 
     114    if (ssm) 
     115        sprintf (sfilter, "\r\na=source-filter: incl IN IP%c * %s", 
     116                 machine[5], machine + 7); 
     117    else 
     118        *sfilter = '\0'; 
     119 
    113120    if (asprintf (&sdp, "v=0" 
    114121                    "\r\no=- "I64Fu" "I64Fu" %s" 
     
    128135                    "\r\na=type:broadcast" 
    129136                    "\r\na=charset:UTF-8" 
     137            "%s" // optional source filter 
    130138                    "\r\n", 
    131139               /* o= */ t, t, machine, 
     
    135143               /* e= */ premail, email, 
    136144               /* p= */ prephone, phone, 
    137                /* c= */ conn) == -1) 
     145               /* c= */ conn, 
     146    /* source-filter */ sfilter) == -1) 
    138147        return NULL; 
    139148    return sdp; 
  • src/stream_output/stream_output.h

    r23333fe r02859f7  
    112112 
    113113char *StartSDP (const char *name, const char *description, const char *url, 
    114                 const char *email, const char *phone, 
     114                const char *email, const char *phone, vlc_bool_t ssm, 
    115115                const struct sockaddr *orig, socklen_t origlen, 
    116116                const struct sockaddr *addr, socklen_t addrlen);