[vlc-devel] [PATCHv2 1/3] access: Add satip access module

Francois Cartegnie fcvlcdev at free.fr
Thu May 26 13:27:01 CEST 2016


Le 26/05/2016 à 12:22, Julian Scheel a écrit :

> +#define BUFFER_TEXT ("Receive buffer")
> +#define BUFFER_LONGTEXT ("UDP receive buffer size (bytes)")
> +
> +#define MULTICAST_TEXT ("Request multicast stream")
> +#define MULTICAST_LONGTEXT ("Request server to send stream as multicast")

Needs gettext N_() and add access to POTFILES.in

> +#define UDP_ADDRESS_LEN 16
> +typedef struct access_sys_t {
> +    char *content_base;
> +    char *control;
> +    char session_id[64];
> +    int stream_id;

likely uint16_t, same for udp_port

> +    uint16_t last_seq_nr;
> +
> +    bool woken;
> +} access_sys_t;
> +

> +    while (start < end) {
> +        if (strncmp(start, "destination=", 12) == 0) {
> +            pos = 0;
> +            start += 12;
> +            while (*start != ';' && pos < UDP_ADDRESS_LEN - 1)
> +                sys->udp_address[pos++] = *(start++);
> +            sys->udp_address[pos++] = '\0';
> +            start++;
> +        } else if (strncmp(start, "port=", 5) == 0) {
> +            char port[6];
> +            pos = 0;
> +            start += 5;
> +            while (*start != ';' && *start != '-' && pos < 5)
> +                port[pos++] = *(start++);
> +            port[pos++] = '\0';
> +            sys->udp_port = atoi(port);
> +            start++;
> +        } else {
> +            while (*start != ';' && start < end)
> +                start++;
> +            if (start >= end)
> +                return;
> +            start++;
> +        }
> +    }
> +}

don't know if strtok can help here


> +        case ACCESS_GET_SIZE:
> +            pi_64 = (int64_t*)va_arg(args, int64_t *);
> +            *pi_64 = 0;
> +            break;

Live is not 0 sized. Return VLC_EGENERIC.

> +static int satip_open(access_t *access) {
> +    access_sys_t *sys;
> +    vlc_url_t url;
> +
> +    bool multicast = var_InheritBool(access, "satip-multicast");
> +
> +    access->p_sys = sys = calloc(1, sizeof(*sys));
> +    if (sys == NULL)
> +        return VLC_ENOMEM;

> +error:
> +    if (psz_lower_location)
> +        free(psz_lower_location);
> +
> +    vlc_UrlClean(&url);
> +    satip_close(access);
> +    return VLC_EGENERIC;

sys leak.


Francois


More information about the vlc-devel mailing list