Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-1.1
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-1.1
Commits
2db764f9
Commit
2db764f9
authored
May 26, 2003
by
Clément Stenac
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* The VLC-integrated SAP server now sends compliant packets. They can
only be viewed with the CVS version of VLC
parent
9de7a7eb
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
74 additions
and
31 deletions
+74
-31
include/announce.h
include/announce.h
+3
-2
modules/stream_out/standard.c
modules/stream_out/standard.c
+4
-2
src/stream_output/announce.c
src/stream_output/announce.c
+67
-27
No files found.
include/announce.h
View file @
2db764f9
...
...
@@ -2,7 +2,7 @@
* announce.h : Session announcement
*****************************************************************************
* Copyright (C) 2002 VideoLAN
* $Id: announce.h,v 1.
1 2003/05/20 16:20:33
zorglub Exp $
* $Id: announce.h,v 1.
2 2003/05/26 13:45:51
zorglub Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Laurent Aimar <fenrir@via.ecp.fr>
...
...
@@ -51,6 +51,7 @@ struct sap_session_t
{
char
psz_url
[
256
];
char
psz_name
[
1024
];
char
psz_port
[
8
];
module_t
p_network
;
unsigned
int
socket
;
unsigned
int
sendnow
;
...
...
@@ -62,6 +63,6 @@ struct sap_session_t
/*****************************************************************************
* Prototypes
*****************************************************************************/
VLC_EXPORT
(
sap_session_t
*
,
sout_SAPNew
,
(
sout_instance_t
*
,
char
*
,
char
*
)
);
VLC_EXPORT
(
sap_session_t
*
,
sout_SAPNew
,
(
sout_instance_t
*
,
char
*
,
char
*
,
char
*
)
);
VLC_EXPORT
(
void
,
sout_SAPSend
,
(
sout_instance_t
*
,
sap_session_t
*
)
);
VLC_EXPORT
(
void
,
sout_SAPDelete
,
(
sap_session_t
*
)
);
modules/stream_out/standard.c
View file @
2db764f9
...
...
@@ -2,7 +2,7 @@
* standard.c
*****************************************************************************
* Copyright (C) 2001, 2002 VideoLAN
* $Id: standard.c,v 1.
2 2003/05/20 16:20:33
zorglub Exp $
* $Id: standard.c,v 1.
3 2003/05/26 13:45:52
zorglub Exp $
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
...
...
@@ -77,6 +77,8 @@ static int Open( vlc_object_t *p_this )
char
*
psz_sap
=
NULL
;
char
*
psz_port
=
"1234"
;
sap_session_t
*
p_sap
=
NULL
;
sout_access_out_t
*
p_access
;
...
...
@@ -126,7 +128,7 @@ static int Open( vlc_object_t *p_this )
if
(
p_sys
->
b_sap
)
{
msg_Dbg
(
p_sout
,
"Creating SAP"
);
p_sap
=
sout_SAPNew
(
p_sout
,
psz_url
,
psz_sap
);
p_sap
=
sout_SAPNew
(
p_sout
,
psz_url
,
psz_
port
,
psz_
sap
);
}
/* XXX beurk */
...
...
src/stream_output/announce.c
View file @
2db764f9
...
...
@@ -3,9 +3,8 @@
*****************************************************************************
* Copyright (C) 2002 VideoLAN
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Laurent Aimar <fenrir@via.ecp.fr>
* Eric Petit <titer@videolan.org>
* Authors: Clment Stenac <zorglub@via.ecp.fr>
* Damien Lucas <nitrox@via.ecp.fr>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
...
...
@@ -37,13 +36,13 @@
#include <announce.h>
#include <network.h>
#define SAP_ADDR "224.2.127.254"
#define SAP_ADDR "224.2.127.254"
/* Standard port and address for SAP */
#define SAP_PORT 9875
/*****************************************************************************
* sout_SAPNew: Creates a SAP Session
*****************************************************************************/
sap_session_t
*
sout_SAPNew
(
sout_instance_t
*
p_sout
,
char
*
psz_url_arg
,
char
*
psz_name_arg
)
sap_session_t
*
sout_SAPNew
(
sout_instance_t
*
p_sout
,
char
*
psz_url_arg
,
char
*
psz_port_arg
,
char
*
psz_name_arg
)
{
sap_session_t
*
p_new
;
module_t
*
p_network
;
...
...
@@ -56,6 +55,7 @@ sap_session_t * sout_SAPNew ( sout_instance_t *p_sout , char * psz_url_arg , cha
sprintf
(
p_new
->
psz_url
,
"%s"
,
psz_url_arg
);
sprintf
(
p_new
->
psz_name
,
"%s"
,
psz_name_arg
);
sprintf
(
p_new
->
psz_port
,
"%s"
,
psz_port_arg
);
/* Not implemented in SO */
msg_Dbg
(
p_sout
,
"Creating SAP Socket"
);
...
...
@@ -106,32 +106,72 @@ void sout_SAPDelete( sap_session_t * p_this )
*****************************************************************************/
void
sout_SAPSend
(
sout_instance_t
*
p_sout
,
sap_session_t
*
p_this
)
{
char
sap_msg
[
2048
]
;
char
*
user
=
"VideoLAN"
;
char
*
machine
=
"VideoLAN"
;
char
*
site
=
"VideoLAN
"
;
char
*
sap_head
;
char
sap_msg
[
1000
]
;
char
*
sap_send
;
char
*
payload_type
=
"application/sdp
"
;
int
i_send_result
;
int
i
;
int
i_header_size
;
int
i_msg_size
;
int
i_size
;
if
(
p_this
->
sendnow
==
24
)
{
sprintf
(
sap_msg
,
" ***øv=0
\n
\
o=%s 3247692199 3247895918 IN IP4 %s
\n
\
s=%s
\n
\
u=%s
\n
\
t=3247691400 3250117800
\n
\
a=type:test
\n
\
m=audio 1234 udp 14
\n
\
c=IN IP4 %s/15
\n
\
xxxxxxxxxxxxxxxxxxxxx
\n
"
,
user
,
machine
,
p_this
->
psz_name
,
site
,
p_this
->
psz_url
);
i_send_result
=
sendto
(
p_this
->
socket
,
sap_msg
,
strlen
(
sap_msg
)
,
0
,
(
struct
sockaddr
*
)
&
p_this
->
addr
,
sizeof
(
p_this
->
addr
)
);
if
(
p_this
->
sendnow
==
1
)
{
i_header_size
=
9
+
strlen
(
payload_type
);
sap_head
=
(
char
*
)
malloc
(
i_header_size
*
sizeof
(
char
)
);
sap_head
[
0
]
=
0x20
;
/* Means IPv4, not encrypted, not compressed */
sap_head
[
1
]
=
0x00
;
/* No authentification */
sap_head
[
2
]
=
0x42
;
/* Version */
sap_head
[
3
]
=
0x12
;
/* Version */
sap_head
[
4
]
=
0x01
;
/* Source IP FIXME: we should get the real address */
sap_head
[
5
]
=
0x02
;
/* idem */
sap_head
[
6
]
=
0x03
;
/* idem */
sap_head
[
7
]
=
0x04
;
/* idem */
strncpy
(
sap_head
+
8
,
payload_type
,
15
);
sap_head
[
i_header_size
-
1
]
=
'\0'
;
/* Do not add spaces at beginning of the lines ! */
sprintf
(
sap_msg
,
"v=0
\n
\
o=VideoLAN 3247692199 3247895918 IN IP4 VideoLAN
\n
\
s=%s
\n
\
u=VideoLAN
\n
\
t=0 0
\n
\
m=audio %s udp 14
\n
\
c=IN IP4 %s/15
\n
\
a=type:test
\n
"
,
p_this
->
psz_name
,
p_this
->
psz_port
,
p_this
->
psz_url
);
i_msg_size
=
strlen
(
sap_msg
);
i_size
=
i_msg_size
+
i_header_size
;
sap_send
=
(
char
*
)
malloc
(
i_size
*
sizeof
(
char
)
);
for
(
i
=
0
;
i
<
i_header_size
;
i
++
)
{
sap_send
[
i
]
=
sap_head
[
i
];
}
for
(
;
i
<
i_size
;
i
++
)
{
sap_send
[
i
]
=
sap_msg
[
i
-
i_header_size
];
}
/* What we send is the SAP header and the SDP packet */
if
(
i_size
<
1024
)
/* We mustn't send packets larger than 1024B */
i_send_result
=
sendto
(
p_this
->
socket
,
sap_send
,
i_size
,
0
,
(
struct
sockaddr
*
)
&
p_this
->
addr
,
sizeof
(
p_this
->
addr
)
);
if
(
i_send_result
==
-
1
)
{
msg_Warn
(
p_sout
,
"SAP Send failed on socket %i. "
,
p_this
->
socket
);
perror
(
"send
"
);
msg_Warn
(
p_sout
,
"SAP Send failed on socket %i. "
,
p_this
->
socket
);
perror
(
"sendto
"
);
}
p_this
->
sendnow
=
0
;
}
p_this
->
sendnow
++
;
p_this
->
sendnow
=
0
;
if
(
sap_send
)
free
(
sap_send
);
if
(
sap_head
)
free
(
sap_head
);
}
p_this
->
sendnow
++
;
}
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