Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-2-2
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-2-2
Commits
9979fb83
Commit
9979fb83
authored
Feb 14, 2007
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Single service DCCP/RTP/AVP input
parent
761669f1
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
45 additions
and
12 deletions
+45
-12
NEWS
NEWS
+3
-2
include/vlc_network.h
include/vlc_network.h
+1
-0
modules/access/udp.c
modules/access/udp.c
+41
-10
No files found.
NEWS
View file @
9979fb83
...
...
@@ -29,7 +29,8 @@ Playlist:
* Audioscrobbler/last.fm support
Input/Demuxers:
* UDP-Lite (requires OS support) for raw and RTP encapsulation
* UDP-Lite protocol (requires OS support) for RTP/AVP
* DCCP protocol (requires OS support) for RTP/AVP
Decoders:
* VP60/VP61 codecs support
...
...
@@ -44,7 +45,7 @@ Video output:
* New sharpen video filter (increase the contrast of adjacent pixels)
Stream output:
* UDP-Lite (requires OS support) for
raw and
RTP/TS encapsulation
* UDP-Lite (requires OS support) for RTP/TS encapsulation
Interfaces:
* Windows/Linux
...
...
include/vlc_network.h
View file @
9979fb83
...
...
@@ -70,6 +70,7 @@ extern "C" {
/* Portable networking layer communication */
int
net_Socket
(
vlc_object_t
*
obj
,
int
family
,
int
socktype
,
int
proto
);
#define net_Connect(a, b, c, d, e) __net_Connect(VLC_OBJECT(a), b, c, d, e)
VLC_EXPORT
(
int
,
__net_Connect
,
(
vlc_object_t
*
p_this
,
const
char
*
psz_host
,
int
i_port
,
int
socktype
,
int
protocol
)
);
VLC_EXPORT
(
int
*
,
net_Listen
,
(
vlc_object_t
*
p_this
,
const
char
*
psz_host
,
int
i_port
,
...
...
modules/access/udp.c
View file @
9979fb83
...
...
@@ -37,6 +37,7 @@
#include <vlc_access.h>
#include <vlc_network.h>
/* Big pile of stuff missing form glibc 2.5 */
#if defined (HAVE_NETINET_UDPLITE_H)
# include <netinet/udplite.h>
#elif defined (__linux__)
...
...
@@ -44,6 +45,16 @@
# define UDPLITE_RECV_CSCOV 11
#endif
#ifndef SOCK_DCCP
/* provisional API */
# ifdef __linux__
# define SOCK_DCCP 6
# endif
#endif
#ifndef IPPROTO_DCCP
# define IPPROTO_DCCP 33
/* IANA */
#endif
#ifndef IPPROTO_UDPLITE
# define IPPROTO_UDPLITE 136
/* from IANA */
#endif
...
...
@@ -96,6 +107,7 @@ vlc_module_begin();
add_shortcut
(
"rtp6"
);
add_shortcut
(
"udplite"
);
add_shortcut
(
"rtptcp"
);
add_shortcut
(
"dccp"
);
set_callbacks
(
Open
,
Close
);
vlc_module_end
();
...
...
@@ -140,7 +152,6 @@ static int Open( vlc_object_t *p_this )
const
char
*
psz_server_addr
,
*
psz_bind_addr
=
""
;
int
i_bind_port
,
i_server_port
=
0
;
int
fam
=
AF_UNSPEC
,
proto
=
IPPROTO_UDP
;
vlc_bool_t
b_framed
=
VLC_FALSE
;
if
(
strlen
(
p_access
->
psz_access
)
>=
3
)
{
...
...
@@ -156,11 +167,12 @@ static int Open( vlc_object_t *p_this )
}
if
(
strcmp
(
p_access
->
psz_access
+
3
,
"lite"
)
==
0
)
proto
=
IPPROTO_UDPLITE
;
else
if
(
strcmp
(
p_access
->
psz_access
+
3
,
"tcp"
)
==
0
)
{
proto
=
IPPROTO_TCP
;
b_framed
=
VLC_TRUE
;
}
else
if
(
strcmp
(
p_access
->
psz_access
,
"dccp"
)
==
0
)
proto
=
IPPROTO_DCCP
;
}
i_bind_port
=
var_CreateGetInteger
(
p_access
,
"server-port"
);
...
...
@@ -213,10 +225,30 @@ static int Open( vlc_object_t *p_this )
p_access
->
info
.
b_prebuffered
=
VLC_FALSE
;
MALLOC_ERR
(
p_access
->
p_sys
,
access_sys_t
);
p_sys
=
p_access
->
p_sys
;
p_sys
->
fd
=
b_framed
?
net_ConnectTCP
(
p_access
,
psz_server_addr
,
i_server_port
)
:
net_OpenDgram
(
p_access
,
psz_bind_addr
,
i_bind_port
,
psz_server_addr
,
i_server_port
,
fam
,
proto
);
switch
(
proto
)
{
case
IPPROTO_UDP
:
case
IPPROTO_UDPLITE
:
p_sys
->
fd
=
net_OpenDgram
(
p_access
,
psz_bind_addr
,
i_bind_port
,
psz_server_addr
,
i_server_port
,
fam
,
proto
);
break
;
case
IPPROTO_TCP
:
p_sys
=
net_ConnectTCP
(
p_access
,
psz_server_addr
,
i_server_port
);
p_sys
->
b_framed_rtp
=
VLC_TRUE
;
break
;
case
IPPROTO_DCCP
:
#ifdef SOCK_DCCP
p_sys
->
fd
=
net_Connect
(
p_access
,
psz_server_addr
,
i_server_port
,
SOCK_DCCP
,
IPPROTO_DCCP
);
#else
p_sys
->
fd
=
-
1
;
msg_Err
(
p_access
,
"DCCP support not compiled-in!"
);
#endif
break
;
}
free
(
psz_name
);
if
(
p_sys
->
fd
==
-
1
)
{
...
...
@@ -234,8 +266,7 @@ static int Open( vlc_object_t *p_this )
&
(
int
){
20
},
sizeof
(
int
));
#endif
p_sys
->
b_framed_rtp
=
b_framed
;
if
(
b_framed
)
if
(
p_sys
->
b_framed_rtp
)
{
/* We don't do autodetection and prebuffering in case of framing */
p_access
->
pf_block
=
BlockRTP
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment