Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
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
Commits
eed2a24c
Commit
eed2a24c
authored
Jan 25, 2004
by
Gildas Bazin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* modules/stream_out/*: coding style changes + strings review.
parent
d451cb0c
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
150 additions
and
121 deletions
+150
-121
modules/stream_out/display.c
modules/stream_out/display.c
+3
-5
modules/stream_out/dummy.c
modules/stream_out/dummy.c
+9
-10
modules/stream_out/duplicate.c
modules/stream_out/duplicate.c
+4
-8
modules/stream_out/es.c
modules/stream_out/es.c
+23
-20
modules/stream_out/gather.c
modules/stream_out/gather.c
+8
-8
modules/stream_out/rtp.c
modules/stream_out/rtp.c
+92
-58
modules/stream_out/standard.c
modules/stream_out/standard.c
+4
-5
modules/stream_out/transcode.c
modules/stream_out/transcode.c
+4
-4
modules/stream_out/transrate/transrate.c
modules/stream_out/transrate/transrate.c
+3
-3
No files found.
modules/stream_out/display.c
View file @
eed2a24c
/*****************************************************************************
/*****************************************************************************
* display.c
* display.c
: display stream output module
*****************************************************************************
*****************************************************************************
* Copyright (C) 2001, 2002 VideoLAN
* Copyright (C) 2001, 2002 VideoLAN
* $Id: display.c,v 1.1
1 2003/12/10 23:51:0
5 gbazin Exp $
* $Id: display.c,v 1.1
2 2004/01/25 14:34:2
5 gbazin Exp $
*
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
*
...
@@ -47,7 +47,7 @@ static int Send( sout_stream_t *, sout_stream_id_t *, sout_buffer_
...
@@ -47,7 +47,7 @@ static int Send( sout_stream_t *, sout_stream_id_t *, sout_buffer_
* Module descriptor
* Module descriptor
*****************************************************************************/
*****************************************************************************/
vlc_module_begin
();
vlc_module_begin
();
set_description
(
_
(
"Display stream"
)
);
set_description
(
_
(
"Display stream
output
"
)
);
set_capability
(
"sout stream"
,
50
);
set_capability
(
"sout stream"
,
50
);
add_shortcut
(
"display"
);
add_shortcut
(
"display"
);
set_callbacks
(
Open
,
Close
);
set_callbacks
(
Open
,
Close
);
...
@@ -108,7 +108,6 @@ static int Open( vlc_object_t *p_this )
...
@@ -108,7 +108,6 @@ static int Open( vlc_object_t *p_this )
/*****************************************************************************
/*****************************************************************************
* Close:
* Close:
*****************************************************************************/
*****************************************************************************/
static
void
Close
(
vlc_object_t
*
p_this
)
static
void
Close
(
vlc_object_t
*
p_this
)
{
{
sout_stream_t
*
p_stream
=
(
sout_stream_t
*
)
p_this
;
sout_stream_t
*
p_stream
=
(
sout_stream_t
*
)
p_this
;
...
@@ -124,7 +123,6 @@ struct sout_stream_id_t
...
@@ -124,7 +123,6 @@ struct sout_stream_id_t
es_descriptor_t
*
p_es
;
es_descriptor_t
*
p_es
;
};
};
static
sout_stream_id_t
*
Add
(
sout_stream_t
*
p_stream
,
es_format_t
*
p_fmt
)
static
sout_stream_id_t
*
Add
(
sout_stream_t
*
p_stream
,
es_format_t
*
p_fmt
)
{
{
sout_stream_sys_t
*
p_sys
=
p_stream
->
p_sys
;
sout_stream_sys_t
*
p_sys
=
p_stream
->
p_sys
;
...
...
modules/stream_out/dummy.c
View file @
eed2a24c
/*****************************************************************************
/*****************************************************************************
* dummy.c
* dummy.c
: dummy stream output module
*****************************************************************************
*****************************************************************************
* Copyright (C) 200
1, 2002
VideoLAN
* Copyright (C) 200
3-2004
VideoLAN
* $Id: dummy.c,v 1.
3 2003/12/07 19:06:21 jpsama
n Exp $
* $Id: dummy.c,v 1.
4 2004/01/25 14:34:25 gbazi
n Exp $
*
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
*
...
@@ -44,7 +44,7 @@ static int Send( sout_stream_t *, sout_stream_id_t *, sout_buffer_
...
@@ -44,7 +44,7 @@ static int Send( sout_stream_t *, sout_stream_id_t *, sout_buffer_
* Module descriptor
* Module descriptor
*****************************************************************************/
*****************************************************************************/
vlc_module_begin
();
vlc_module_begin
();
set_description
(
_
(
"Dummy stream"
)
);
set_description
(
_
(
"Dummy stream
output
"
)
);
set_capability
(
"sout stream"
,
50
);
set_capability
(
"sout stream"
,
50
);
add_shortcut
(
"dummy"
);
add_shortcut
(
"dummy"
);
set_callbacks
(
Open
,
Close
);
set_callbacks
(
Open
,
Close
);
...
@@ -55,7 +55,7 @@ vlc_module_end();
...
@@ -55,7 +55,7 @@ vlc_module_end();
*****************************************************************************/
*****************************************************************************/
static
int
Open
(
vlc_object_t
*
p_this
)
static
int
Open
(
vlc_object_t
*
p_this
)
{
{
sout_stream_t
*
p_stream
=
(
sout_stream_t
*
)
p_this
;
sout_stream_t
*
p_stream
=
(
sout_stream_t
*
)
p_this
;
p_stream
->
pf_add
=
Add
;
p_stream
->
pf_add
=
Add
;
p_stream
->
pf_del
=
Del
;
p_stream
->
pf_del
=
Del
;
...
@@ -69,7 +69,6 @@ static int Open( vlc_object_t *p_this )
...
@@ -69,7 +69,6 @@ static int Open( vlc_object_t *p_this )
/*****************************************************************************
/*****************************************************************************
* Close:
* Close:
*****************************************************************************/
*****************************************************************************/
static
void
Close
(
vlc_object_t
*
p_this
)
static
void
Close
(
vlc_object_t
*
p_this
)
{
{
#if 0
#if 0
...
@@ -82,8 +81,7 @@ struct sout_stream_id_t
...
@@ -82,8 +81,7 @@ struct sout_stream_id_t
int
i_d_u_m_m_y
;
int
i_d_u_m_m_y
;
};
};
static
sout_stream_id_t
*
Add
(
sout_stream_t
*
p_stream
,
es_format_t
*
p_fmt
)
static
sout_stream_id_t
*
Add
(
sout_stream_t
*
p_stream
,
es_format_t
*
p_fmt
)
{
{
sout_stream_id_t
*
id
;
sout_stream_id_t
*
id
;
...
@@ -93,14 +91,15 @@ static sout_stream_id_t * Add ( sout_stream_t *p_stream, es_format_t *p_fmt
...
@@ -93,14 +91,15 @@ static sout_stream_id_t * Add ( sout_stream_t *p_stream, es_format_t *p_fmt
return
id
;
return
id
;
}
}
static
int
Del
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
)
static
int
Del
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
)
{
{
free
(
id
);
free
(
id
);
return
VLC_SUCCESS
;
return
VLC_SUCCESS
;
}
}
static
int
Send
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
,
sout_buffer_t
*
p_buffer
)
static
int
Send
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
,
sout_buffer_t
*
p_buffer
)
{
{
sout_buffer_t
*
p_next
;
sout_buffer_t
*
p_next
;
...
...
modules/stream_out/duplicate.c
View file @
eed2a24c
/*****************************************************************************
/*****************************************************************************
* duplicate.c
* duplicate.c
: duplicate stream output module
*****************************************************************************
*****************************************************************************
* Copyright (C) 200
1, 2002
VideoLAN
* Copyright (C) 200
3-2004
VideoLAN
* $Id: duplicate.c,v 1.1
1 2004/01/19 18:15:55 fenrir
Exp $
* $Id: duplicate.c,v 1.1
2 2004/01/25 14:34:25 gbazin
Exp $
*
*
* Author: Laurent Aimar <fenrir@via.ecp.fr>
* Author: Laurent Aimar <fenrir@via.ecp.fr>
*
*
...
@@ -45,14 +45,13 @@ static int Send( sout_stream_t *, sout_stream_id_t *,
...
@@ -45,14 +45,13 @@ static int Send( sout_stream_t *, sout_stream_id_t *,
* Module descriptor
* Module descriptor
*****************************************************************************/
*****************************************************************************/
vlc_module_begin
();
vlc_module_begin
();
set_description
(
_
(
"Duplicate stream"
)
);
set_description
(
_
(
"Duplicate stream
output
"
)
);
set_capability
(
"sout stream"
,
50
);
set_capability
(
"sout stream"
,
50
);
add_shortcut
(
"duplicate"
);
add_shortcut
(
"duplicate"
);
add_shortcut
(
"dup"
);
add_shortcut
(
"dup"
);
set_callbacks
(
Open
,
Close
);
set_callbacks
(
Open
,
Close
);
vlc_module_end
();
vlc_module_end
();
struct
sout_stream_sys_t
struct
sout_stream_sys_t
{
{
int
i_nb_streams
;
int
i_nb_streams
;
...
@@ -134,7 +133,6 @@ static int Open( vlc_object_t *p_this )
...
@@ -134,7 +133,6 @@ static int Open( vlc_object_t *p_this )
/*****************************************************************************
/*****************************************************************************
* Close:
* Close:
*****************************************************************************/
*****************************************************************************/
static
void
Close
(
vlc_object_t
*
p_this
)
static
void
Close
(
vlc_object_t
*
p_this
)
{
{
sout_stream_t
*
p_stream
=
(
sout_stream_t
*
)
p_this
;
sout_stream_t
*
p_stream
=
(
sout_stream_t
*
)
p_this
;
...
@@ -456,5 +454,3 @@ static vlc_bool_t ESSelected( es_format_t *fmt, char *psz_select )
...
@@ -456,5 +454,3 @@ static vlc_bool_t ESSelected( es_format_t *fmt, char *psz_select )
}
}
return
VLC_TRUE
;
return
VLC_TRUE
;
}
}
modules/stream_out/es.c
View file @
eed2a24c
/*****************************************************************************
/*****************************************************************************
* es.c
* es.c
: Elementary stream output module
*****************************************************************************
*****************************************************************************
* Copyright (C) 200
1, 2002
VideoLAN
* Copyright (C) 200
3-2004
VideoLAN
* $Id: es.c,v 1.
4 2003/11/21 15:32:08 fenrir
Exp $
* $Id: es.c,v 1.
5 2004/01/25 14:34:25 gbazin
Exp $
*
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
*
...
@@ -46,10 +46,9 @@ static int Send( sout_stream_t *, sout_stream_id_t *, sout_buffer_
...
@@ -46,10 +46,9 @@ static int Send( sout_stream_t *, sout_stream_id_t *, sout_buffer_
* Module descriptor
* Module descriptor
*****************************************************************************/
*****************************************************************************/
vlc_module_begin
();
vlc_module_begin
();
set_description
(
_
(
"E
S stream
"
)
);
set_description
(
_
(
"E
lementary stream output
"
)
);
set_capability
(
"sout stream"
,
50
);
set_capability
(
"sout stream"
,
50
);
add_shortcut
(
"es"
);
add_shortcut
(
"es"
);
add_shortcut
(
"es"
);
set_callbacks
(
Open
,
Close
);
set_callbacks
(
Open
,
Close
);
vlc_module_end
();
vlc_module_end
();
...
@@ -92,14 +91,13 @@ static int Open( vlc_object_t *p_this )
...
@@ -92,14 +91,13 @@ static int Open( vlc_object_t *p_this )
p_sys
->
psz_access_audio
=
sout_cfg_find_value
(
p_stream
->
p_cfg
,
"access_audio"
);
p_sys
->
psz_access_audio
=
sout_cfg_find_value
(
p_stream
->
p_cfg
,
"access_audio"
);
p_sys
->
psz_access_video
=
sout_cfg_find_value
(
p_stream
->
p_cfg
,
"access_video"
);
p_sys
->
psz_access_video
=
sout_cfg_find_value
(
p_stream
->
p_cfg
,
"access_video"
);
p_sys
->
psz_mux
=
sout_cfg_find_value
(
p_stream
->
p_cfg
,
"mux"
);
p_sys
->
psz_mux_audio
=
sout_cfg_find_value
(
p_stream
->
p_cfg
,
"mux_audio"
);
p_sys
->
psz_mux_video
=
sout_cfg_find_value
(
p_stream
->
p_cfg
,
"mux_video"
);
p_sys
->
psz_mux
=
sout_cfg_find_value
(
p_stream
->
p_cfg
,
"mux"
);
p_sys
->
psz_url
=
sout_cfg_find_value
(
p_stream
->
p_cfg
,
"url"
);
p_sys
->
psz_mux_audio
=
sout_cfg_find_value
(
p_stream
->
p_cfg
,
"mux_audio"
);
p_sys
->
psz_url_audio
=
sout_cfg_find_value
(
p_stream
->
p_cfg
,
"url_audio"
);
p_sys
->
psz_mux_video
=
sout_cfg_find_value
(
p_stream
->
p_cfg
,
"mux_video"
);
p_sys
->
psz_url_video
=
sout_cfg_find_value
(
p_stream
->
p_cfg
,
"url_video"
);
p_sys
->
psz_url
=
sout_cfg_find_value
(
p_stream
->
p_cfg
,
"url"
);
p_sys
->
psz_url_audio
=
sout_cfg_find_value
(
p_stream
->
p_cfg
,
"url_audio"
);
p_sys
->
psz_url_video
=
sout_cfg_find_value
(
p_stream
->
p_cfg
,
"url_video"
);
p_stream
->
pf_add
=
Add
;
p_stream
->
pf_add
=
Add
;
p_stream
->
pf_del
=
Del
;
p_stream
->
pf_del
=
Del
;
...
@@ -128,7 +126,8 @@ struct sout_stream_id_t
...
@@ -128,7 +126,8 @@ struct sout_stream_id_t
sout_mux_t
*
p_mux
;
sout_mux_t
*
p_mux
;
};
};
static
char
*
es_print_url
(
char
*
psz_fmt
,
vlc_fourcc_t
i_fourcc
,
int
i_count
,
char
*
psz_access
,
char
*
psz_mux
)
static
char
*
es_print_url
(
char
*
psz_fmt
,
vlc_fourcc_t
i_fourcc
,
int
i_count
,
char
*
psz_access
,
char
*
psz_mux
)
{
{
char
*
psz_url
,
*
p
;
char
*
psz_url
,
*
p
;
...
@@ -186,7 +185,7 @@ static char * es_print_url( char *psz_fmt, vlc_fourcc_t i_fourcc, int i_count, c
...
@@ -186,7 +185,7 @@ static char * es_print_url( char *psz_fmt, vlc_fourcc_t i_fourcc, int i_count, c
return
(
psz_url
);
return
(
psz_url
);
}
}
static
sout_stream_id_t
*
Add
(
sout_stream_t
*
p_stream
,
es_format_t
*
p_fmt
)
static
sout_stream_id_t
*
Add
(
sout_stream_t
*
p_stream
,
es_format_t
*
p_fmt
)
{
{
sout_stream_sys_t
*
p_sys
=
p_stream
->
p_sys
;
sout_stream_sys_t
*
p_sys
=
p_stream
->
p_sys
;
sout_instance_t
*
p_sout
=
p_stream
->
p_sout
;
sout_instance_t
*
p_sout
=
p_stream
->
p_sout
;
...
@@ -227,14 +226,16 @@ static sout_stream_id_t * Add ( sout_stream_t *p_stream, es_format_t *p_fmt
...
@@ -227,14 +226,16 @@ static sout_stream_id_t * Add ( sout_stream_t *p_stream, es_format_t *p_fmt
psz_mux
=
p_sys
->
psz_mux
;
psz_mux
=
p_sys
->
psz_mux
;
}
}
/*
*** get url (%d expanded as a codec count, %c expanded as codec fcc ) ***
*/
/*
Get url (%d expanded as a codec count, %c expanded as codec fcc )
*/
if
(
p_fmt
->
i_cat
==
AUDIO_ES
&&
p_sys
->
psz_url_audio
)
if
(
p_fmt
->
i_cat
==
AUDIO_ES
&&
p_sys
->
psz_url_audio
)
{
{
psz_url
=
es_print_url
(
p_sys
->
psz_url_audio
,
p_fmt
->
i_codec
,
p_sys
->
i_count_audio
,
psz_access
,
psz_mux
);
psz_url
=
es_print_url
(
p_sys
->
psz_url_audio
,
p_fmt
->
i_codec
,
p_sys
->
i_count_audio
,
psz_access
,
psz_mux
);
}
}
else
if
(
p_fmt
->
i_cat
==
VIDEO_ES
&&
p_sys
->
psz_url_video
)
else
if
(
p_fmt
->
i_cat
==
VIDEO_ES
&&
p_sys
->
psz_url_video
)
{
{
psz_url
=
es_print_url
(
p_sys
->
psz_url_video
,
p_fmt
->
i_codec
,
p_sys
->
i_count_video
,
psz_access
,
psz_mux
);
psz_url
=
es_print_url
(
p_sys
->
psz_url_video
,
p_fmt
->
i_codec
,
p_sys
->
i_count_video
,
psz_access
,
psz_mux
);
}
}
else
else
{
{
...
@@ -252,7 +253,8 @@ static sout_stream_id_t * Add ( sout_stream_t *p_stream, es_format_t *p_fmt
...
@@ -252,7 +253,8 @@ static sout_stream_id_t * Add ( sout_stream_t *p_stream, es_format_t *p_fmt
i_count
=
p_sys
->
i_count
;
i_count
=
p_sys
->
i_count
;
}
}
psz_url
=
es_print_url
(
p_sys
->
psz_url
,
p_fmt
->
i_codec
,
i_count
,
psz_access
,
psz_mux
);
psz_url
=
es_print_url
(
p_sys
->
psz_url
,
p_fmt
->
i_codec
,
i_count
,
psz_access
,
psz_mux
);
}
}
p_sys
->
i_count
++
;
p_sys
->
i_count
++
;
...
@@ -306,7 +308,7 @@ static sout_stream_id_t * Add ( sout_stream_t *p_stream, es_format_t *p_fmt
...
@@ -306,7 +308,7 @@ static sout_stream_id_t * Add ( sout_stream_t *p_stream, es_format_t *p_fmt
return
id
;
return
id
;
}
}
static
int
Del
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
)
static
int
Del
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
)
{
{
sout_access_out_t
*
p_access
=
id
->
p_mux
->
p_access
;
sout_access_out_t
*
p_access
=
id
->
p_mux
->
p_access
;
...
@@ -317,7 +319,8 @@ static int Del ( sout_stream_t *p_stream, sout_stream_id_t *id )
...
@@ -317,7 +319,8 @@ static int Del ( sout_stream_t *p_stream, sout_stream_id_t *id )
return
VLC_SUCCESS
;
return
VLC_SUCCESS
;
}
}
static
int
Send
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
,
sout_buffer_t
*
p_buffer
)
static
int
Send
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
,
sout_buffer_t
*
p_buffer
)
{
{
sout_MuxSendBuffer
(
id
->
p_mux
,
id
->
p_input
,
p_buffer
);
sout_MuxSendBuffer
(
id
->
p_mux
,
id
->
p_input
,
p_buffer
);
...
...
modules/stream_out/gather.c
View file @
eed2a24c
/*****************************************************************************
/*****************************************************************************
* gather.c
* gather.c
: gathering stream output module
*****************************************************************************
*****************************************************************************
* Copyright (C) 200
1, 2002
VideoLAN
* Copyright (C) 200
3-2004
VideoLAN
* $Id: gather.c,v 1.
2 2003/11/21 15:32:08 fenrir
Exp $
* $Id: gather.c,v 1.
3 2004/01/25 14:34:25 gbazin
Exp $
*
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
*
...
@@ -37,7 +37,7 @@ static int Open ( vlc_object_t * );
...
@@ -37,7 +37,7 @@ static int Open ( vlc_object_t * );
static
void
Close
(
vlc_object_t
*
);
static
void
Close
(
vlc_object_t
*
);
vlc_module_begin
();
vlc_module_begin
();
set_description
(
_
(
"Gather
stream
"
)
);
set_description
(
_
(
"Gather
ing stream output
"
)
);
set_capability
(
"sout stream"
,
50
);
set_capability
(
"sout stream"
,
50
);
add_shortcut
(
"gather"
);
add_shortcut
(
"gather"
);
set_callbacks
(
Open
,
Close
);
set_callbacks
(
Open
,
Close
);
...
@@ -48,7 +48,8 @@ vlc_module_end();
...
@@ -48,7 +48,8 @@ vlc_module_end();
*****************************************************************************/
*****************************************************************************/
static
sout_stream_id_t
*
Add
(
sout_stream_t
*
,
es_format_t
*
);
static
sout_stream_id_t
*
Add
(
sout_stream_t
*
,
es_format_t
*
);
static
int
Del
(
sout_stream_t
*
,
sout_stream_id_t
*
);
static
int
Del
(
sout_stream_t
*
,
sout_stream_id_t
*
);
static
int
Send
(
sout_stream_t
*
,
sout_stream_id_t
*
,
sout_buffer_t
*
);
static
int
Send
(
sout_stream_t
*
,
sout_stream_id_t
*
,
sout_buffer_t
*
);
struct
sout_stream_id_t
struct
sout_stream_id_t
{
{
...
@@ -74,8 +75,8 @@ static int Open( vlc_object_t *p_this )
...
@@ -74,8 +75,8 @@ static int Open( vlc_object_t *p_this )
sout_stream_t
*
p_stream
=
(
sout_stream_t
*
)
p_this
;
sout_stream_t
*
p_stream
=
(
sout_stream_t
*
)
p_this
;
sout_stream_sys_t
*
p_sys
;
sout_stream_sys_t
*
p_sys
;
p_stream
->
p_sys
=
p_sys
=
malloc
(
sizeof
(
sout_stream_sys_t
)
);
p_stream
->
p_sys
=
p_sys
=
malloc
(
sizeof
(
sout_stream_sys_t
)
);
p_sys
->
p_out
=
sout_stream_new
(
p_stream
->
p_sout
,
p_stream
->
psz_next
);
p_sys
->
p_out
=
sout_stream_new
(
p_stream
->
p_sout
,
p_stream
->
psz_next
);
if
(
p_sys
->
p_out
==
NULL
)
if
(
p_sys
->
p_out
==
NULL
)
{
{
free
(
p_sys
);
free
(
p_sys
);
...
@@ -192,4 +193,3 @@ static int Send( sout_stream_t *p_stream,
...
@@ -192,4 +193,3 @@ static int Send( sout_stream_t *p_stream,
return
p_sys
->
p_out
->
pf_send
(
p_sys
->
p_out
,
id
->
id
,
p_buffer
);
return
p_sys
->
p_out
->
pf_send
(
p_sys
->
p_out
,
id
->
id
,
p_buffer
);
}
}
modules/stream_out/rtp.c
View file @
eed2a24c
/*****************************************************************************
/*****************************************************************************
* rtp.c
* rtp.c
: rtp stream output module
*****************************************************************************
*****************************************************************************
* Copyright (C) 2003 VideoLAN
* Copyright (C) 2003
-2004
VideoLAN
* $Id: rtp.c,v 1.
7 2003/11/21 15:32:08 fenrir
Exp $
* $Id: rtp.c,v 1.
8 2004/01/25 14:34:25 gbazin
Exp $
*
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
*
...
@@ -40,7 +40,7 @@ static int Open ( vlc_object_t * );
...
@@ -40,7 +40,7 @@ static int Open ( vlc_object_t * );
static
void
Close
(
vlc_object_t
*
);
static
void
Close
(
vlc_object_t
*
);
vlc_module_begin
();
vlc_module_begin
();
set_description
(
_
(
"RTP stream"
)
);
set_description
(
_
(
"RTP stream
output
"
)
);
set_capability
(
"sout stream"
,
0
);
set_capability
(
"sout stream"
,
0
);
add_shortcut
(
"rtp"
);
add_shortcut
(
"rtp"
);
set_callbacks
(
Open
,
Close
);
set_callbacks
(
Open
,
Close
);
...
@@ -51,8 +51,8 @@ vlc_module_end();
...
@@ -51,8 +51,8 @@ vlc_module_end();
*****************************************************************************/
*****************************************************************************/
static
sout_stream_id_t
*
Add
(
sout_stream_t
*
,
es_format_t
*
);
static
sout_stream_id_t
*
Add
(
sout_stream_t
*
,
es_format_t
*
);
static
int
Del
(
sout_stream_t
*
,
sout_stream_id_t
*
);
static
int
Del
(
sout_stream_t
*
,
sout_stream_id_t
*
);
static
int
Send
(
sout_stream_t
*
,
sout_stream_id_t
*
,
sout_buffer_t
*
);
static
int
Send
(
sout_stream_t
*
,
sout_stream_id_t
*
,
sout_buffer_t
*
);
struct
sout_stream_sys_t
struct
sout_stream_sys_t
{
{
...
@@ -90,7 +90,9 @@ struct sout_stream_sys_t
...
@@ -90,7 +90,9 @@ struct sout_stream_sys_t
sout_stream_id_t
**
es
;
sout_stream_id_t
**
es
;
};
};
typedef
int
(
*
pf_rtp_packetizer_t
)(
sout_stream_t
*
,
sout_stream_id_t
*
,
sout_buffer_t
*
);
typedef
int
(
*
pf_rtp_packetizer_t
)(
sout_stream_t
*
,
sout_stream_id_t
*
,
sout_buffer_t
*
);
struct
sout_stream_id_t
struct
sout_stream_id_t
{
{
/* rtp field */
/* rtp field */
...
@@ -138,7 +140,8 @@ static int Open( vlc_object_t *p_this )
...
@@ -138,7 +140,8 @@ static int Open( vlc_object_t *p_this )
{
{
p_sys
->
i_port
=
atoi
(
val
);
p_sys
->
i_port
=
atoi
(
val
);
}
}
if
(
!
p_sys
->
psz_destination
||
*
p_sys
->
psz_destination
==
'\0'
||
p_sys
->
i_port
<=
0
)
if
(
!
p_sys
->
psz_destination
||
*
p_sys
->
psz_destination
==
'\0'
||
p_sys
->
i_port
<=
0
)
{
{
msg_Err
(
p_stream
,
"invalid/missing dst or port"
);
msg_Err
(
p_stream
,
"invalid/missing dst or port"
);
free
(
p_sys
);
free
(
p_sys
);
...
@@ -199,7 +202,7 @@ static int Open( vlc_object_t *p_this )
...
@@ -199,7 +202,7 @@ static int Open( vlc_object_t *p_this )
sprintf
(
access
,
"udp{raw}"
);
sprintf
(
access
,
"udp{raw}"
);
}
}
sprintf
(
url
,
"%s:%d"
,
p_sys
->
psz_destination
,
p_sys
->
i_port
);
sprintf
(
url
,
"%s:%d"
,
p_sys
->
psz_destination
,
p_sys
->
i_port
);
if
(
(
p_sys
->
p_access
=
sout_AccessOutNew
(
p_sout
,
access
,
url
)
)
==
NULL
)
if
(
!
(
p_sys
->
p_access
=
sout_AccessOutNew
(
p_sout
,
access
,
url
)
)
)
{
{
msg_Err
(
p_stream
,
"cannot create the access out for %s://%s"
,
msg_Err
(
p_stream
,
"cannot create the access out for %s://%s"
,
access
,
url
);
access
,
url
);
...
@@ -214,7 +217,8 @@ static int Open( vlc_object_t *p_this )
...
@@ -214,7 +217,8 @@ static int Open( vlc_object_t *p_this )
}
}
/* the access out grabber TODO export it as sout_AccessOutGrabberNew */
/* the access out grabber TODO export it as sout_AccessOutGrabberNew */
p_grab
=
p_sys
->
p_grab
=
vlc_object_create
(
p_sout
,
sizeof
(
sout_access_out_t
)
);
p_grab
=
p_sys
->
p_grab
=
vlc_object_create
(
p_sout
,
sizeof
(
sout_access_out_t
)
);
p_grab
->
p_module
=
NULL
;
p_grab
->
p_module
=
NULL
;
p_grab
->
p_sout
=
p_sout
;
p_grab
->
p_sout
=
p_sout
;
p_grab
->
psz_access
=
strdup
(
"grab"
);
p_grab
->
psz_access
=
strdup
(
"grab"
);
...
@@ -225,7 +229,7 @@ static int Open( vlc_object_t *p_this )
...
@@ -225,7 +229,7 @@ static int Open( vlc_object_t *p_this )
p_grab
->
pf_write
=
AccessOutGrabberWrite
;
p_grab
->
pf_write
=
AccessOutGrabberWrite
;
/* the muxer */
/* the muxer */
if
(
(
p_sys
->
p_mux
=
sout_MuxNew
(
p_sout
,
val
,
p_sys
->
p_grab
)
)
==
NULL
)
if
(
!
(
p_sys
->
p_mux
=
sout_MuxNew
(
p_sout
,
val
,
p_sys
->
p_grab
)
)
)
{
{
msg_Err
(
p_stream
,
"cannot create the muxer (%s)"
,
val
);
msg_Err
(
p_stream
,
"cannot create the muxer (%s)"
,
val
);
sout_AccessOutDelete
(
p_sys
->
p_grab
);
sout_AccessOutDelete
(
p_sys
->
p_grab
);
...
@@ -233,10 +237,13 @@ static int Open( vlc_object_t *p_this )
...
@@ -233,10 +237,13 @@ static int Open( vlc_object_t *p_this )
free
(
p_sys
);
free
(
p_sys
);
return
VLC_EGENERIC
;
return
VLC_EGENERIC
;
}
}
p_sout
->
i_preheader
=
__MAX
(
p_sout
->
i_preheader
,
p_sys
->
p_mux
->
i_preheader
);
p_sout
->
i_preheader
=
__MAX
(
p_sout
->
i_preheader
,
p_sys
->
p_mux
->
i_preheader
);
/* create the SDP only once */
/* create the SDP only once */
p_sys
->
psz_sdp
=
malloc
(
200
+
20
+
10
+
strlen
(
p_sys
->
psz_destination
)
+
10
+
10
+
10
+
10
+
strlen
(
psz_rtpmap
)
);
p_sys
->
psz_sdp
=
malloc
(
200
+
20
+
10
+
strlen
(
p_sys
->
psz_destination
)
+
10
+
10
+
10
+
10
+
strlen
(
psz_rtpmap
)
);
sprintf
(
p_sys
->
psz_sdp
,
sprintf
(
p_sys
->
psz_sdp
,
"v=0
\n
"
"v=0
\n
"
"o=- "
I64Fd
" %d IN IP4 127.0.0.1
\n
"
"o=- "
I64Fd
" %d IN IP4 127.0.0.1
\n
"
...
@@ -274,20 +281,20 @@ static int Open( vlc_object_t *p_this )
...
@@ -274,20 +281,20 @@ static int Open( vlc_object_t *p_this )
vlc_UrlParse
(
&
url
,
val
,
0
);
vlc_UrlParse
(
&
url
,
val
,
0
);
if
(
url
.
psz_protocol
&&
!
strcmp
(
url
.
psz_protocol
,
"http"
)
)
if
(
url
.
psz_protocol
&&
!
strcmp
(
url
.
psz_protocol
,
"http"
)
)
{
{
if
(
(
p_sys
->
p_httpd
=
httpd_Find
(
VLC_OBJECT
(
p_stream
),
VLC_TRUE
)
)
)
if
(
(
p_sys
->
p_httpd
=
httpd_Find
(
VLC_OBJECT
(
p_stream
),
VLC_TRUE
)
)
)
{
{
p_sys
->
p_httpd_host
=
p_sys
->
p_httpd
->
pf_register_host
(
p_sys
->
p_httpd
,
p_sys
->
p_httpd_host
=
url
.
psz_host
,
p_sys
->
p_httpd
->
pf_register_host
(
p_sys
->
p_httpd
,
url
.
i_port
);
url
.
psz_host
,
url
.
i_port
);
if
(
p_sys
->
p_httpd_host
)
if
(
p_sys
->
p_httpd_host
)
{
{
p_sys
->
p_httpd_file
=
p_sys
->
p_httpd_file
=
p_sys
->
p_httpd
->
pf_register_file
(
p_sys
->
p_httpd
,
p_sys
->
p_httpd
->
pf_register_file
(
p_sys
->
p_httpd
,
url
.
psz_path
?
url
.
psz_path
:
"/"
,
url
.
psz_path
?
url
.
psz_path
:
"/"
,
"application/sdp"
,
"application/sdp"
,
NULL
,
NULL
,
NULL
,
NULL
,
HttpCallback
,
HttpCallback
,
(
void
*
)
p_sys
);
HttpCallback
,
HttpCallback
,
(
void
*
)
p_sys
);
}
}
}
}
if
(
p_sys
->
p_httpd_file
==
NULL
)
if
(
p_sys
->
p_httpd_file
==
NULL
)
...
@@ -297,7 +304,8 @@ static int Open( vlc_object_t *p_this )
...
@@ -297,7 +304,8 @@ static int Open( vlc_object_t *p_this )
}
}
else
else
{
{
msg_Warn
(
p_stream
,
"unknow protocol for SDP (%s)"
,
url
.
psz_protocol
);
msg_Warn
(
p_stream
,
"unknow protocol for SDP (%s)"
,
url
.
psz_protocol
);
}
}
vlc_UrlClean
(
&
url
);
vlc_UrlClean
(
&
url
);
}
}
...
@@ -336,11 +344,13 @@ static void Close( vlc_object_t * p_this )
...
@@ -336,11 +344,13 @@ static void Close( vlc_object_t * p_this )
if
(
p_sys
->
p_httpd_file
)
if
(
p_sys
->
p_httpd_file
)
{
{
p_sys
->
p_httpd
->
pf_unregister_file
(
p_sys
->
p_httpd
,
p_sys
->
p_httpd_file
);
p_sys
->
p_httpd
->
pf_unregister_file
(
p_sys
->
p_httpd
,
p_sys
->
p_httpd_file
);
}
}
if
(
p_sys
->
p_httpd_host
)
if
(
p_sys
->
p_httpd_host
)
{
{
p_sys
->
p_httpd
->
pf_unregister_host
(
p_sys
->
p_httpd
,
p_sys
->
p_httpd_host
);
p_sys
->
p_httpd
->
pf_unregister_host
(
p_sys
->
p_httpd
,
p_sys
->
p_httpd_host
);
}
}
if
(
p_sys
->
p_httpd
)
if
(
p_sys
->
p_httpd
)
{
{
...
@@ -354,7 +364,6 @@ static void Close( vlc_object_t * p_this )
...
@@ -354,7 +364,6 @@ static void Close( vlc_object_t * p_this )
free
(
p_sys
);
free
(
p_sys
);
}
}
/*****************************************************************************
/*****************************************************************************
* SDPGenerate
* SDPGenerate
*****************************************************************************/
*****************************************************************************/
...
@@ -389,9 +398,11 @@ static void SDPGenerate( sout_stream_t *p_stream )
...
@@ -389,9 +398,11 @@ static void SDPGenerate( sout_stream_t *p_stream )
p
=
psz_sdp
=
malloc
(
i_size
);
p
=
psz_sdp
=
malloc
(
i_size
);
p
+=
sprintf
(
p
,
"v=0
\n
"
);
p
+=
sprintf
(
p
,
"v=0
\n
"
);
p
+=
sprintf
(
p
,
"o=- "
I64Fd
" %d IN IP4 127.0.0.1
\n
"
,
p_sys
->
i_sdp_id
,
p_sys
->
i_sdp_version
);
p
+=
sprintf
(
p
,
"o=- "
I64Fd
" %d IN IP4 127.0.0.1
\n
"
,
p_sys
->
i_sdp_id
,
p_sys
->
i_sdp_version
);
p
+=
sprintf
(
p
,
"s=NONE
\n
"
);
p
+=
sprintf
(
p
,
"s=NONE
\n
"
);
p
+=
sprintf
(
p
,
"c=IN IP4 %s/%d
\n
"
,
p_sys
->
psz_destination
,
p_sys
->
i_ttl
);
p
+=
sprintf
(
p
,
"c=IN IP4 %s/%d
\n
"
,
p_sys
->
psz_destination
,
p_sys
->
i_ttl
);
for
(
i
=
0
;
i
<
p_sys
->
i_es
;
i
++
)
for
(
i
=
0
;
i
<
p_sys
->
i_es
;
i
++
)
{
{
...
@@ -413,11 +424,13 @@ static void SDPGenerate( sout_stream_t *p_stream )
...
@@ -413,11 +424,13 @@ static void SDPGenerate( sout_stream_t *p_stream )
}
}
if
(
id
->
psz_rtpmap
)
if
(
id
->
psz_rtpmap
)
{
{
p
+=
sprintf
(
p
,
"a=rtpmap:%d %s
\n
"
,
id
->
i_payload_type
,
id
->
psz_rtpmap
);
p
+=
sprintf
(
p
,
"a=rtpmap:%d %s
\n
"
,
id
->
i_payload_type
,
id
->
psz_rtpmap
);
}
}
if
(
id
->
psz_fmtp
)
if
(
id
->
psz_fmtp
)
{
{
p
+=
sprintf
(
p
,
"a=fmtp:%d %s
\n
"
,
id
->
i_payload_type
,
id
->
psz_fmtp
);
p
+=
sprintf
(
p
,
"a=fmtp:%d %s
\n
"
,
id
->
i_payload_type
,
id
->
psz_fmtp
);
}
}
}
}
...
@@ -434,7 +447,6 @@ static void SDPGenerate( sout_stream_t *p_stream )
...
@@ -434,7 +447,6 @@ static void SDPGenerate( sout_stream_t *p_stream )
/*****************************************************************************
/*****************************************************************************
*
*
*****************************************************************************/
*****************************************************************************/
static
int
rtp_packetize_l16
(
sout_stream_t
*
,
sout_stream_id_t
*
,
sout_buffer_t
*
);
static
int
rtp_packetize_l16
(
sout_stream_t
*
,
sout_stream_id_t
*
,
sout_buffer_t
*
);
static
int
rtp_packetize_l8
(
sout_stream_t
*
,
sout_stream_id_t
*
,
sout_buffer_t
*
);
static
int
rtp_packetize_l8
(
sout_stream_t
*
,
sout_stream_id_t
*
,
sout_buffer_t
*
);
static
int
rtp_packetize_mpa
(
sout_stream_t
*
,
sout_stream_id_t
*
,
sout_buffer_t
*
);
static
int
rtp_packetize_mpa
(
sout_stream_t
*
,
sout_stream_id_t
*
,
sout_buffer_t
*
);
...
@@ -456,7 +468,7 @@ static void sprintf_hexa( char *s, uint8_t *p_data, int i_data )
...
@@ -456,7 +468,7 @@ static void sprintf_hexa( char *s, uint8_t *p_data, int i_data )
s
[
2
*
i_data
]
=
'\0'
;
s
[
2
*
i_data
]
=
'\0'
;
}
}
static
sout_stream_id_t
*
Add
(
sout_stream_t
*
p_stream
,
es_format_t
*
p_fmt
)
static
sout_stream_id_t
*
Add
(
sout_stream_t
*
p_stream
,
es_format_t
*
p_fmt
)
{
{
sout_instance_t
*
p_sout
=
p_stream
->
p_sout
;
sout_instance_t
*
p_sout
=
p_stream
->
p_sout
;
sout_stream_sys_t
*
p_sys
=
p_stream
->
p_sys
;
sout_stream_sys_t
*
p_sys
=
p_stream
->
p_sys
;
...
@@ -516,7 +528,8 @@ static sout_stream_id_t * Add ( sout_stream_t *p_stream, es_format_t *p_fmt
...
@@ -516,7 +528,8 @@ static sout_stream_id_t * Add ( sout_stream_t *p_stream, es_format_t *p_fmt
{
{
id
->
i_payload_type
=
11
;
id
->
i_payload_type
=
11
;
}
}
else
if
(
p_fmt
->
audio
.
i_channels
==
2
&&
p_fmt
->
audio
.
i_rate
==
44100
)
else
if
(
p_fmt
->
audio
.
i_channels
==
2
&&
p_fmt
->
audio
.
i_rate
==
44100
)
{
{
id
->
i_payload_type
=
10
;
id
->
i_payload_type
=
10
;
}
}
...
@@ -525,14 +538,16 @@ static sout_stream_id_t * Add ( sout_stream_t *p_stream, es_format_t *p_fmt
...
@@ -525,14 +538,16 @@ static sout_stream_id_t * Add ( sout_stream_t *p_stream, es_format_t *p_fmt
id
->
i_payload_type
=
p_sys
->
i_payload_type
++
;
id
->
i_payload_type
=
p_sys
->
i_payload_type
++
;
}
}
id
->
psz_rtpmap
=
malloc
(
strlen
(
"L16/*/*"
)
+
20
+
1
);
id
->
psz_rtpmap
=
malloc
(
strlen
(
"L16/*/*"
)
+
20
+
1
);
sprintf
(
id
->
psz_rtpmap
,
"L16/%d/%d"
,
p_fmt
->
audio
.
i_rate
,
p_fmt
->
audio
.
i_channels
);
sprintf
(
id
->
psz_rtpmap
,
"L16/%d/%d"
,
p_fmt
->
audio
.
i_rate
,
p_fmt
->
audio
.
i_channels
);
id
->
i_clock_rate
=
p_fmt
->
audio
.
i_rate
;
id
->
i_clock_rate
=
p_fmt
->
audio
.
i_rate
;
id
->
pf_packetize
=
rtp_packetize_l16
;
id
->
pf_packetize
=
rtp_packetize_l16
;
break
;
break
;
case
VLC_FOURCC
(
'u'
,
'8'
,
' '
,
' '
):
case
VLC_FOURCC
(
'u'
,
'8'
,
' '
,
' '
):
id
->
i_payload_type
=
p_sys
->
i_payload_type
++
;
id
->
i_payload_type
=
p_sys
->
i_payload_type
++
;
id
->
psz_rtpmap
=
malloc
(
strlen
(
"L8/*/*"
)
+
20
+
1
);
id
->
psz_rtpmap
=
malloc
(
strlen
(
"L8/*/*"
)
+
20
+
1
);
sprintf
(
id
->
psz_rtpmap
,
"L8/%d/%d"
,
p_fmt
->
audio
.
i_rate
,
p_fmt
->
audio
.
i_channels
);
sprintf
(
id
->
psz_rtpmap
,
"L8/%d/%d"
,
p_fmt
->
audio
.
i_rate
,
p_fmt
->
audio
.
i_channels
);
id
->
i_clock_rate
=
p_fmt
->
audio
.
i_rate
;
id
->
i_clock_rate
=
p_fmt
->
audio
.
i_rate
;
id
->
pf_packetize
=
rtp_packetize_l8
;
id
->
pf_packetize
=
rtp_packetize_l8
;
break
;
break
;
...
@@ -583,13 +598,15 @@ static sout_stream_id_t * Add ( sout_stream_t *p_stream, es_format_t *p_fmt
...
@@ -583,13 +598,15 @@ static sout_stream_id_t * Add ( sout_stream_t *p_stream, es_format_t *p_fmt
id
->
psz_fmtp
=
malloc
(
200
+
2
*
p_fmt
->
i_extra
);
id
->
psz_fmtp
=
malloc
(
200
+
2
*
p_fmt
->
i_extra
);
sprintf_hexa
(
hexa
,
p_fmt
->
p_extra
,
p_fmt
->
i_extra
);
sprintf_hexa
(
hexa
,
p_fmt
->
p_extra
,
p_fmt
->
i_extra
);
sprintf
(
id
->
psz_fmtp
,
sprintf
(
id
->
psz_fmtp
,
"streamtype=5; profile-level-id=15; mode=AAC-hbr; config=%s; "
"streamtype=5; profile-level-id=15; mode=AAC-hbr; "
"SizeLength=13; IndexLength=3; IndexDeltaLength=3; Profile=1;"
,
hexa
);
"config=%s; SizeLength=13; IndexLength=3; "
"IndexDeltaLength=3; Profile=1;"
,
hexa
);
break
;
break
;
}
}
default:
default:
msg_Err
(
p_stream
,
"cannot add this stream (unsupported codec:%4.4s)"
,
(
char
*
)
&
p_fmt
->
i_codec
);
msg_Err
(
p_stream
,
"cannot add this stream (unsupported "
"codec:%4.4s)"
,
(
char
*
)
&
p_fmt
->
i_codec
);
free
(
id
);
free
(
id
);
return
NULL
;
return
NULL
;
}
}
...
@@ -623,7 +640,7 @@ static sout_stream_id_t * Add ( sout_stream_t *p_stream, es_format_t *p_fmt
...
@@ -623,7 +640,7 @@ static sout_stream_id_t * Add ( sout_stream_t *p_stream, es_format_t *p_fmt
return
id
;
return
id
;
}
}
static
int
Del
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
)
static
int
Del
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
)
{
{
sout_stream_sys_t
*
p_sys
=
p_stream
->
p_sys
;
sout_stream_sys_t
*
p_sys
=
p_stream
->
p_sys
;
...
@@ -650,7 +667,8 @@ static int Del ( sout_stream_t *p_stream, sout_stream_id_t *id )
...
@@ -650,7 +667,8 @@ static int Del ( sout_stream_t *p_stream, sout_stream_id_t *id )
return
VLC_SUCCESS
;
return
VLC_SUCCESS
;
}
}
static
int
Send
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
,
sout_buffer_t
*
p_buffer
)
static
int
Send
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
,
sout_buffer_t
*
p_buffer
)
{
{
sout_buffer_t
*
p_next
;
sout_buffer_t
*
p_next
;
...
@@ -696,7 +714,8 @@ static int HttpCallback( httpd_file_callback_args_t *p_args,
...
@@ -696,7 +714,8 @@ static int HttpCallback( httpd_file_callback_args_t *p_args,
return
VLC_SUCCESS
;
return
VLC_SUCCESS
;
}
}
static
int
AccessOutGrabberWriteBuffer
(
sout_stream_t
*
p_stream
,
sout_buffer_t
*
p_buffer
)
static
int
AccessOutGrabberWriteBuffer
(
sout_stream_t
*
p_stream
,
sout_buffer_t
*
p_buffer
)
{
{
sout_stream_sys_t
*
p_sys
=
p_stream
->
p_sys
;
sout_stream_sys_t
*
p_sys
=
p_stream
->
p_sys
;
...
@@ -707,7 +726,7 @@ static int AccessOutGrabberWriteBuffer( sout_stream_t *p_stream, sout_buffer_t *
...
@@ -707,7 +726,7 @@ static int AccessOutGrabberWriteBuffer( sout_stream_t *p_stream, sout_buffer_t *
unsigned
int
i_data
=
p_buffer
->
i_size
;
unsigned
int
i_data
=
p_buffer
->
i_size
;
unsigned
int
i_max
=
p_sys
->
i_mtu
-
12
;
unsigned
int
i_max
=
p_sys
->
i_mtu
-
12
;
int
i_packet
=
(
p_buffer
->
i_size
+
i_max
-
1
)
/
i_max
;
int
i_packet
=
(
p_buffer
->
i_size
+
i_max
-
1
)
/
i_max
;
while
(
i_data
>
0
)
while
(
i_data
>
0
)
{
{
...
@@ -760,7 +779,8 @@ static int AccessOutGrabberWriteBuffer( sout_stream_t *p_stream, sout_buffer_t *
...
@@ -760,7 +779,8 @@ static int AccessOutGrabberWriteBuffer( sout_stream_t *p_stream, sout_buffer_t *
return
VLC_SUCCESS
;
return
VLC_SUCCESS
;
}
}
static
int
AccessOutGrabberWrite
(
sout_access_out_t
*
p_access
,
sout_buffer_t
*
p_buffer
)
static
int
AccessOutGrabberWrite
(
sout_access_out_t
*
p_access
,
sout_buffer_t
*
p_buffer
)
{
{
sout_stream_t
*
p_stream
=
(
sout_stream_t
*
)
p_access
->
p_sys
;
sout_stream_t
*
p_stream
=
(
sout_stream_t
*
)
p_access
->
p_sys
;
...
@@ -781,9 +801,10 @@ static int AccessOutGrabberWrite( sout_access_out_t *p_access, sout_buffer_t *p_
...
@@ -781,9 +801,10 @@ static int AccessOutGrabberWrite( sout_access_out_t *p_access, sout_buffer_t *p_
}
}
static
void
rtp_packetize_common
(
sout_stream_id_t
*
id
,
sout_buffer_t
*
out
,
int
b_marker
,
int64_t
i_pts
)
static
void
rtp_packetize_common
(
sout_stream_id_t
*
id
,
sout_buffer_t
*
out
,
int
b_marker
,
int64_t
i_pts
)
{
{
uint32_t
i_timestamp
=
i_pts
*
(
int64_t
)
id
->
i_clock_rate
/
(
int64_t
)
1000000
;
uint32_t
i_timestamp
=
i_pts
*
(
int64_t
)
id
->
i_clock_rate
/
I64C
(
1000000
)
;
out
->
p_buffer
[
0
]
=
0x80
;
out
->
p_buffer
[
0
]
=
0x80
;
out
->
p_buffer
[
1
]
=
(
b_marker
?
0x80
:
0x00
)
|
id
->
i_payload_type
;
out
->
p_buffer
[
1
]
=
(
b_marker
?
0x80
:
0x00
)
|
id
->
i_payload_type
;
...
@@ -803,7 +824,8 @@ static void rtp_packetize_common( sout_stream_id_t *id, sout_buffer_t *out, int
...
@@ -803,7 +824,8 @@ static void rtp_packetize_common( sout_stream_id_t *id, sout_buffer_t *out, int
id
->
i_sequence
++
;
id
->
i_sequence
++
;
}
}
static
int
rtp_packetize_mpa
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
,
sout_buffer_t
*
in
)
static
int
rtp_packetize_mpa
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
,
sout_buffer_t
*
in
)
{
{
int
i_max
=
id
->
i_mtu
-
12
-
4
;
/* payload max in one packet */
int
i_max
=
id
->
i_mtu
-
12
-
4
;
/* payload max in one packet */
int
i_count
=
(
in
->
i_size
+
i_max
-
1
)
/
i_max
;
int
i_count
=
(
in
->
i_size
+
i_max
-
1
)
/
i_max
;
...
@@ -841,7 +863,8 @@ static int rtp_packetize_mpa( sout_stream_t *p_stream, sout_stream_id_t *id, sou
...
@@ -841,7 +863,8 @@ static int rtp_packetize_mpa( sout_stream_t *p_stream, sout_stream_id_t *id, sou
}
}
/* rfc2250 */
/* rfc2250 */
static
int
rtp_packetize_mpv
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
,
sout_buffer_t
*
in
)
static
int
rtp_packetize_mpv
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
,
sout_buffer_t
*
in
)
{
{
int
i_max
=
id
->
i_mtu
-
12
-
4
;
/* payload max in one packet */
int
i_max
=
id
->
i_mtu
-
12
-
4
;
/* payload max in one packet */
int
i_count
=
(
in
->
i_size
+
i_max
-
1
)
/
i_max
;
int
i_count
=
(
in
->
i_size
+
i_max
-
1
)
/
i_max
;
...
@@ -887,7 +910,8 @@ static int rtp_packetize_mpv( sout_stream_t *p_stream, sout_stream_id_t *id, sou
...
@@ -887,7 +910,8 @@ static int rtp_packetize_mpv( sout_stream_t *p_stream, sout_stream_id_t *id, sou
i_temporal_ref
=
(
p
[
1
]
<<
2
)
|
((
p
[
2
]
>>
6
)
&
0x03
);
i_temporal_ref
=
(
p
[
1
]
<<
2
)
|
((
p
[
2
]
>>
6
)
&
0x03
);
i_picture_coding_type
=
(
p
[
2
]
>>
3
)
&
0x07
;
i_picture_coding_type
=
(
p
[
2
]
>>
3
)
&
0x07
;
if
(
i_rest
>
4
&&
(
i_picture_coding_type
==
2
||
i_picture_coding_type
==
3
)
)
if
(
i_rest
>
4
&&
(
i_picture_coding_type
==
2
||
i_picture_coding_type
==
3
)
)
{
{
i_ffc
=
(
p
[
3
]
>>
2
)
&
0x01
;
i_ffc
=
(
p
[
3
]
>>
2
)
&
0x01
;
i_bfc
=
((
p
[
3
]
&
0x03
)
<<
1
)
|
((
p
[
4
]
>>
7
)
&
0x01
);
i_bfc
=
((
p
[
3
]
&
0x03
)
<<
1
)
|
((
p
[
4
]
>>
7
)
&
0x01
);
...
@@ -908,7 +932,8 @@ static int rtp_packetize_mpv( sout_stream_t *p_stream, sout_stream_id_t *id, sou
...
@@ -908,7 +932,8 @@ static int rtp_packetize_mpv( sout_stream_t *p_stream, sout_stream_id_t *id, sou
for
(
i
=
0
;
i
<
i_count
;
i
++
)
for
(
i
=
0
;
i
<
i_count
;
i
++
)
{
{
int
i_payload
=
__MIN
(
i_max
,
i_data
);
int
i_payload
=
__MIN
(
i_max
,
i_data
);
sout_buffer_t
*
out
=
sout_BufferNew
(
p_stream
->
p_sout
,
16
+
i_payload
);
sout_buffer_t
*
out
=
sout_BufferNew
(
p_stream
->
p_sout
,
16
+
i_payload
);
uint32_t
h
=
(
i_temporal_ref
<<
16
)
|
uint32_t
h
=
(
i_temporal_ref
<<
16
)
|
(
b_sequence_start
<<
13
)
|
(
b_sequence_start
<<
13
)
|
(
b_start_slice
<<
12
)
|
(
b_start_slice
<<
12
)
|
...
@@ -939,7 +964,8 @@ static int rtp_packetize_mpv( sout_stream_t *p_stream, sout_stream_id_t *id, sou
...
@@ -939,7 +964,8 @@ static int rtp_packetize_mpv( sout_stream_t *p_stream, sout_stream_id_t *id, sou
return
VLC_SUCCESS
;
return
VLC_SUCCESS
;
}
}
static
int
rtp_packetize_ac3
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
,
sout_buffer_t
*
in
)
static
int
rtp_packetize_ac3
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
,
sout_buffer_t
*
in
)
{
{
int
i_max
=
id
->
i_mtu
-
12
-
2
;
/* payload max in one packet */
int
i_max
=
id
->
i_mtu
-
12
-
2
;
/* payload max in one packet */
int
i_count
=
(
in
->
i_size
+
i_max
-
1
)
/
i_max
;
int
i_count
=
(
in
->
i_size
+
i_max
-
1
)
/
i_max
;
...
@@ -975,7 +1001,8 @@ static int rtp_packetize_ac3( sout_stream_t *p_stream, sout_stream_id_t *id, sou
...
@@ -975,7 +1001,8 @@ static int rtp_packetize_ac3( sout_stream_t *p_stream, sout_stream_id_t *id, sou
return
VLC_SUCCESS
;
return
VLC_SUCCESS
;
}
}
static
int
rtp_packetize_split
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
,
sout_buffer_t
*
in
)
static
int
rtp_packetize_split
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
,
sout_buffer_t
*
in
)
{
{
int
i_max
=
id
->
i_mtu
-
12
;
/* payload max in one packet */
int
i_max
=
id
->
i_mtu
-
12
;
/* payload max in one packet */
int
i_count
=
(
in
->
i_size
+
i_max
-
1
)
/
i_max
;
int
i_count
=
(
in
->
i_size
+
i_max
-
1
)
/
i_max
;
...
@@ -990,7 +1017,8 @@ static int rtp_packetize_split( sout_stream_t *p_stream, sout_stream_id_t *id, s
...
@@ -990,7 +1017,8 @@ static int rtp_packetize_split( sout_stream_t *p_stream, sout_stream_id_t *id, s
sout_buffer_t
*
out
=
sout_BufferNew
(
p_stream
->
p_sout
,
12
+
i_payload
);
sout_buffer_t
*
out
=
sout_BufferNew
(
p_stream
->
p_sout
,
12
+
i_payload
);
/* rtp common header */
/* rtp common header */
rtp_packetize_common
(
id
,
out
,
((
i
==
i_count
-
1
)
?
1
:
0
),
(
in
->
i_pts
>
0
?
in
->
i_pts
:
in
->
i_dts
)
);
rtp_packetize_common
(
id
,
out
,
((
i
==
i_count
-
1
)
?
1
:
0
),
(
in
->
i_pts
>
0
?
in
->
i_pts
:
in
->
i_dts
)
);
memcpy
(
&
out
->
p_buffer
[
12
],
p_data
,
i_payload
);
memcpy
(
&
out
->
p_buffer
[
12
],
p_data
,
i_payload
);
out
->
i_size
=
12
+
i_payload
;
out
->
i_size
=
12
+
i_payload
;
...
@@ -1006,7 +1034,8 @@ static int rtp_packetize_split( sout_stream_t *p_stream, sout_stream_id_t *id, s
...
@@ -1006,7 +1034,8 @@ static int rtp_packetize_split( sout_stream_t *p_stream, sout_stream_id_t *id, s
return
VLC_SUCCESS
;
return
VLC_SUCCESS
;
}
}
static
int
rtp_packetize_l16
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
,
sout_buffer_t
*
in
)
static
int
rtp_packetize_l16
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
,
sout_buffer_t
*
in
)
{
{
int
i_max
=
id
->
i_mtu
-
12
;
/* payload max in one packet */
int
i_max
=
id
->
i_mtu
-
12
;
/* payload max in one packet */
int
i_count
=
(
in
->
i_size
+
i_max
-
1
)
/
i_max
;
int
i_count
=
(
in
->
i_size
+
i_max
-
1
)
/
i_max
;
...
@@ -1021,7 +1050,8 @@ static int rtp_packetize_l16( sout_stream_t *p_stream, sout_stream_id_t *id, sou
...
@@ -1021,7 +1050,8 @@ static int rtp_packetize_l16( sout_stream_t *p_stream, sout_stream_id_t *id, sou
sout_buffer_t
*
out
=
sout_BufferNew
(
p_stream
->
p_sout
,
12
+
i_payload
);
sout_buffer_t
*
out
=
sout_BufferNew
(
p_stream
->
p_sout
,
12
+
i_payload
);
/* rtp common header */
/* rtp common header */
rtp_packetize_common
(
id
,
out
,
0
,
(
in
->
i_pts
>
0
?
in
->
i_pts
:
in
->
i_dts
)
);
rtp_packetize_common
(
id
,
out
,
0
,
(
in
->
i_pts
>
0
?
in
->
i_pts
:
in
->
i_dts
)
);
memcpy
(
&
out
->
p_buffer
[
12
],
p_data
,
i_payload
);
memcpy
(
&
out
->
p_buffer
[
12
],
p_data
,
i_payload
);
out
->
i_size
=
12
+
i_payload
;
out
->
i_size
=
12
+
i_payload
;
...
@@ -1038,7 +1068,8 @@ static int rtp_packetize_l16( sout_stream_t *p_stream, sout_stream_id_t *id, sou
...
@@ -1038,7 +1068,8 @@ static int rtp_packetize_l16( sout_stream_t *p_stream, sout_stream_id_t *id, sou
return
VLC_SUCCESS
;
return
VLC_SUCCESS
;
}
}
static
int
rtp_packetize_l8
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
,
sout_buffer_t
*
in
)
static
int
rtp_packetize_l8
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
,
sout_buffer_t
*
in
)
{
{
int
i_max
=
id
->
i_mtu
-
12
;
/* payload max in one packet */
int
i_max
=
id
->
i_mtu
-
12
;
/* payload max in one packet */
int
i_count
=
(
in
->
i_size
+
i_max
-
1
)
/
i_max
;
int
i_count
=
(
in
->
i_size
+
i_max
-
1
)
/
i_max
;
...
@@ -1053,7 +1084,8 @@ static int rtp_packetize_l8( sout_stream_t *p_stream, sout_stream_id_t *id, sout
...
@@ -1053,7 +1084,8 @@ static int rtp_packetize_l8( sout_stream_t *p_stream, sout_stream_id_t *id, sout
sout_buffer_t
*
out
=
sout_BufferNew
(
p_stream
->
p_sout
,
12
+
i_payload
);
sout_buffer_t
*
out
=
sout_BufferNew
(
p_stream
->
p_sout
,
12
+
i_payload
);
/* rtp common header */
/* rtp common header */
rtp_packetize_common
(
id
,
out
,
0
,
(
in
->
i_pts
>
0
?
in
->
i_pts
:
in
->
i_dts
)
);
rtp_packetize_common
(
id
,
out
,
0
,
(
in
->
i_pts
>
0
?
in
->
i_pts
:
in
->
i_dts
)
);
memcpy
(
&
out
->
p_buffer
[
12
],
p_data
,
i_payload
);
memcpy
(
&
out
->
p_buffer
[
12
],
p_data
,
i_payload
);
out
->
i_size
=
12
+
i_payload
;
out
->
i_size
=
12
+
i_payload
;
...
@@ -1069,7 +1101,8 @@ static int rtp_packetize_l8( sout_stream_t *p_stream, sout_stream_id_t *id, sout
...
@@ -1069,7 +1101,8 @@ static int rtp_packetize_l8( sout_stream_t *p_stream, sout_stream_id_t *id, sout
return
VLC_SUCCESS
;
return
VLC_SUCCESS
;
}
}
static
int
rtp_packetize_mp4a
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
,
sout_buffer_t
*
in
)
static
int
rtp_packetize_mp4a
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
,
sout_buffer_t
*
in
)
{
{
int
i_max
=
id
->
i_mtu
-
16
;
/* payload max in one packet */
int
i_max
=
id
->
i_mtu
-
16
;
/* payload max in one packet */
int
i_count
=
(
in
->
i_size
+
i_max
-
1
)
/
i_max
;
int
i_count
=
(
in
->
i_size
+
i_max
-
1
)
/
i_max
;
...
@@ -1084,7 +1117,8 @@ static int rtp_packetize_mp4a( sout_stream_t *p_stream, sout_stream_id_t *id, so
...
@@ -1084,7 +1117,8 @@ static int rtp_packetize_mp4a( sout_stream_t *p_stream, sout_stream_id_t *id, so
sout_buffer_t
*
out
=
sout_BufferNew
(
p_stream
->
p_sout
,
16
+
i_payload
);
sout_buffer_t
*
out
=
sout_BufferNew
(
p_stream
->
p_sout
,
16
+
i_payload
);
/* rtp common header */
/* rtp common header */
rtp_packetize_common
(
id
,
out
,
((
i
==
i_count
-
1
)
?
1
:
0
),
(
in
->
i_pts
>
0
?
in
->
i_pts
:
in
->
i_dts
)
);
rtp_packetize_common
(
id
,
out
,
((
i
==
i_count
-
1
)
?
1
:
0
),
(
in
->
i_pts
>
0
?
in
->
i_pts
:
in
->
i_dts
)
);
/* AU headers */
/* AU headers */
/* AU headers length (bits) */
/* AU headers length (bits) */
out
->
p_buffer
[
12
]
=
0
;
out
->
p_buffer
[
12
]
=
0
;
...
...
modules/stream_out/standard.c
View file @
eed2a24c
/*****************************************************************************
/*****************************************************************************
* standard.c
* standard.c
: standard stream output module
*****************************************************************************
*****************************************************************************
* Copyright (C) 200
1, 2002
VideoLAN
* Copyright (C) 200
3-2004
VideoLAN
* $Id: standard.c,v 1.1
7 2004/01/15 23:40:44
gbazin Exp $
* $Id: standard.c,v 1.1
8 2004/01/25 14:34:25
gbazin Exp $
*
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
*
...
@@ -48,7 +48,7 @@ static int Send( sout_stream_t *, sout_stream_id_t *, sout_buffer_
...
@@ -48,7 +48,7 @@ static int Send( sout_stream_t *, sout_stream_id_t *, sout_buffer_
* Module descriptor
* Module descriptor
*****************************************************************************/
*****************************************************************************/
vlc_module_begin
();
vlc_module_begin
();
set_description
(
_
(
"Standard stream"
)
);
set_description
(
_
(
"Standard stream
output
"
)
);
set_capability
(
"sout stream"
,
50
);
set_capability
(
"sout stream"
,
50
);
add_shortcut
(
"standard"
);
add_shortcut
(
"standard"
);
add_shortcut
(
"std"
);
add_shortcut
(
"std"
);
...
@@ -308,7 +308,6 @@ static int Open( vlc_object_t *p_this )
...
@@ -308,7 +308,6 @@ static int Open( vlc_object_t *p_this )
/*****************************************************************************
/*****************************************************************************
* Close:
* Close:
*****************************************************************************/
*****************************************************************************/
static
void
Close
(
vlc_object_t
*
p_this
)
static
void
Close
(
vlc_object_t
*
p_this
)
{
{
sout_stream_t
*
p_stream
=
(
sout_stream_t
*
)
p_this
;
sout_stream_t
*
p_stream
=
(
sout_stream_t
*
)
p_this
;
...
...
modules/stream_out/transcode.c
View file @
eed2a24c
/*****************************************************************************
/*****************************************************************************
* transcode.c
* transcode.c
: transcoding stream output module
*****************************************************************************
*****************************************************************************
* Copyright (C) 200
1, 2002
VideoLAN
* Copyright (C) 200
3-2004
VideoLAN
* $Id: transcode.c,v 1.7
1 2004/01/19 18:24:11 fenrir
Exp $
* $Id: transcode.c,v 1.7
2 2004/01/25 14:34:25 gbazin
Exp $
*
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
* Gildas Bazin <gbazin@netcourrier.com>
* Gildas Bazin <gbazin@netcourrier.com>
...
@@ -76,7 +76,7 @@ static int pi_channels_maps[6] =
...
@@ -76,7 +76,7 @@ static int pi_channels_maps[6] =
* Module descriptor
* Module descriptor
*****************************************************************************/
*****************************************************************************/
vlc_module_begin
();
vlc_module_begin
();
set_description
(
_
(
"Transcode stream"
)
);
set_description
(
_
(
"Transcode stream
output
"
)
);
set_capability
(
"sout stream"
,
50
);
set_capability
(
"sout stream"
,
50
);
add_shortcut
(
"transcode"
);
add_shortcut
(
"transcode"
);
set_callbacks
(
Open
,
Close
);
set_callbacks
(
Open
,
Close
);
...
...
modules/stream_out/transrate/transrate.c
View file @
eed2a24c
/*****************************************************************************
/*****************************************************************************
* transrate.c
* transrate.c
: MPEG2 video transrating module
*****************************************************************************
*****************************************************************************
* Copyright (C) 2003 VideoLAN
* Copyright (C) 2003 VideoLAN
* Copyright (C) 2003 Freebox S.A.
* Copyright (C) 2003 Freebox S.A.
* Copyright (C) 2003 Antoine Missout
* Copyright (C) 2003 Antoine Missout
* Copyright (C) 2000-2003 Michel Lespinasse <walken@zoy.org>
* Copyright (C) 2000-2003 Michel Lespinasse <walken@zoy.org>
* Copyright (C) 1999-2000 Aaron Holtzman <aholtzma@ess.engr.uvic.ca>
* Copyright (C) 1999-2000 Aaron Holtzman <aholtzma@ess.engr.uvic.ca>
* $Id: transrate.c,v 1.
5 2003/11/29 18:36:13 massiot
Exp $
* $Id: transrate.c,v 1.
6 2004/01/25 14:34:25 gbazin
Exp $
*
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Laurent Aimar <fenrir@via.ecp.fr>
* Laurent Aimar <fenrir@via.ecp.fr>
...
@@ -58,7 +58,7 @@ static int transrate_video_process( sout_stream_t *, sout_stream_id_t *, sout_b
...
@@ -58,7 +58,7 @@ static int transrate_video_process( sout_stream_t *, sout_stream_id_t *, sout_b
* Module descriptor
* Module descriptor
*****************************************************************************/
*****************************************************************************/
vlc_module_begin
();
vlc_module_begin
();
set_description
(
_
(
"
Transrate stream
"
)
);
set_description
(
_
(
"
MPEG2 video transrating stream output
"
)
);
set_capability
(
"sout stream"
,
50
);
set_capability
(
"sout stream"
,
50
);
add_shortcut
(
"transrate"
);
add_shortcut
(
"transrate"
);
set_callbacks
(
Open
,
Close
);
set_callbacks
(
Open
,
Close
);
...
...
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