From 7636aceaee9cff1ec11710848d0822132189a46f Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Wed, 4 Jun 2008 22:30:13 +0300 Subject: [PATCH] RTP: add UDP-Lite support --- modules/demux/rtp.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/modules/demux/rtp.c b/modules/demux/rtp.c index 2652dc7951..4254796866 100644 --- a/modules/demux/rtp.c +++ b/modules/demux/rtp.c @@ -89,6 +89,7 @@ vlc_module_begin (); change_integer_range (0, 32767); add_shortcut ("rtp"); + add_shortcut ("udplite"); vlc_module_end (); /* @@ -99,6 +100,15 @@ vlc_module_end (); * - support for access_filter in case of stream_Demux (MPEG-TS) */ +#ifndef IPPROTO_DCCP +# define IPPROTO_DCCP 33 /* IANA */ +#endif + +#ifndef IPPROTO_UDPLITE +# define IPPROTO_UDPLITE 136 /* from IANA */ +#endif + + /* * Local prototypes */ @@ -112,8 +122,14 @@ static int extract_port (char **phost); static int Open (vlc_object_t *obj) { demux_t *demux = (demux_t *)obj; + int tp; /* transport protocol */ - if (strcmp (demux->psz_access, "rtp")) + if (!strcmp (demux->psz_access, "rtp")) + tp = IPPROTO_UDP; + else + if (!strcmp (demux->psz_access, "udplite")) + tp = IPPROTO_UDPLITE; + else return VLC_EGENERIC; char *tmp = strdup (demux->psz_path); @@ -134,11 +150,11 @@ static int Open (vlc_object_t *obj) dport = 5004; /* avt-profile-1 port */ /* Try to connect */ - int fd = net_OpenDgram (obj, dhost, dport, shost, sport, - AF_UNSPEC, IPPROTO_UDP); + int fd = net_OpenDgram (obj, dhost, dport, shost, sport, AF_UNSPEC, tp); free (tmp); if (fd == -1) return VLC_EGENERIC; + net_SetCSCov (fd, -1, 12); /* Initializes demux */ demux_sys_t *p_sys = malloc (sizeof (*p_sys)); -- 2.39.2