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
f976d6ae
Commit
f976d6ae
authored
Apr 15, 2005
by
Christophe Massiot
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* ALL: converted the video output module "picture" to a stream output
module "mosaic-bridge".
parent
0ae97f35
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
625 additions
and
133 deletions
+625
-133
configure.ac
configure.ac
+3
-3
modules/stream_out/Modules.am
modules/stream_out/Modules.am
+1
-0
modules/stream_out/bridge.c
modules/stream_out/bridge.c
+10
-18
modules/stream_out/mosaic_bridge.c
modules/stream_out/mosaic_bridge.c
+512
-0
modules/video_filter/Modules.am
modules/video_filter/Modules.am
+1
-1
modules/video_filter/mosaic.c
modules/video_filter/mosaic.c
+69
-94
modules/video_filter/mosaic.h
modules/video_filter/mosaic.h
+29
-15
modules/video_output/Modules.am
modules/video_output/Modules.am
+0
-2
No files found.
configure.ac
View file @
f976d6ae
...
@@ -986,7 +986,7 @@ if test "${SYS}" != "mingwce"; then
...
@@ -986,7 +986,7 @@ if test "${SYS}" != "mingwce"; then
VLC_ADD_PLUGINS([externrun])
VLC_ADD_PLUGINS([externrun])
VLC_ADD_PLUGINS([access_fake access_filter_timeshift])
VLC_ADD_PLUGINS([access_fake access_filter_timeshift])
VLC_ADD_PLUGINS([gestures rc telnet hotkeys netsync showintf time marq sap shout])
VLC_ADD_PLUGINS([gestures rc telnet hotkeys netsync showintf time marq sap shout])
VLC_ADD_PLUGINS([
picture
mosaic wall motiondetect clone crop])
VLC_ADD_PLUGINS([mosaic wall motiondetect clone crop])
VLC_ADD_PLUGINS([i420_yuy2 i422_yuy2 i420_ymga])
VLC_ADD_PLUGINS([i420_yuy2 i422_yuy2 i420_ymga])
VLC_ADD_PLUGINS([aout_file linear_resampler bandlimited_resampler])
VLC_ADD_PLUGINS([aout_file linear_resampler bandlimited_resampler])
VLC_ADD_PLUGINS([float32_mixer spdif_mixer simple_channel_mixer])
VLC_ADD_PLUGINS([float32_mixer spdif_mixer simple_channel_mixer])
...
@@ -1227,7 +1227,7 @@ then
...
@@ -1227,7 +1227,7 @@ then
VLC_ADD_PLUGINS([packetizer_copy])
VLC_ADD_PLUGINS([packetizer_copy])
VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp])
VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp])
VLC_ADD_PLUGINS([stream_out_duplicate stream_out_gather stream_out_display stream_out_transcode stream_out_bridge])
VLC_ADD_PLUGINS([stream_out_duplicate stream_out_gather stream_out_display stream_out_transcode stream_out_bridge
stream_out_mosaic_bridge
])
# VLC_ADD_PLUGINS([stream_out_transrate])
# VLC_ADD_PLUGINS([stream_out_transrate])
AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
...
@@ -2533,7 +2533,7 @@ AC_ARG_ENABLE(speex,
...
@@ -2533,7 +2533,7 @@ AC_ARG_ENABLE(speex,
if test "${enable_speex}" != "no"
if test "${enable_speex}" != "no"
then
then
AC_CHECK_HEADERS(speex/speex.h, [
AC_CHECK_HEADERS(speex/speex.h, [
LDFLAGS="${LDFLAGS_save} ${LDFLAGS_
toolame
}"
LDFLAGS="${LDFLAGS_save} ${LDFLAGS_
speex
}"
AC_CHECK_LIB(speex, speex_decode_int, [
AC_CHECK_LIB(speex, speex_decode_int, [
VLC_ADD_PLUGINS([speex])
VLC_ADD_PLUGINS([speex])
VLC_ADD_LDFLAGS([speex],[-lspeex]) ],
VLC_ADD_LDFLAGS([speex],[-lspeex]) ],
...
...
modules/stream_out/Modules.am
View file @
f976d6ae
...
@@ -11,3 +11,4 @@ SOURCES_stream_out_gather = gather.c
...
@@ -11,3 +11,4 @@ SOURCES_stream_out_gather = gather.c
SOURCES_stream_out_rtp = rtp.c
SOURCES_stream_out_rtp = rtp.c
SOURCES_stream_out_switcher = switcher.c
SOURCES_stream_out_switcher = switcher.c
SOURCES_stream_out_bridge = bridge.c
SOURCES_stream_out_bridge = bridge.c
SOURCES_stream_out_mosaic_bridge = mosaic_bridge.c
modules/stream_out/bridge.c
View file @
f976d6ae
...
@@ -58,7 +58,7 @@ vlc_module_begin();
...
@@ -58,7 +58,7 @@ vlc_module_begin();
set_shortname
(
_
(
"Bridge"
));
set_shortname
(
_
(
"Bridge"
));
set_description
(
_
(
"Bridge stream output"
));
set_description
(
_
(
"Bridge stream output"
));
add_submodule
();
add_submodule
();
set_section
(
N_
(
"Bridge out"
),
NULL
);
set_section
(
N_
(
"Bridge out"
),
NULL
);
set_capability
(
"sout stream"
,
50
);
set_capability
(
"sout stream"
,
50
);
add_shortcut
(
"bridge-out"
);
add_shortcut
(
"bridge-out"
);
/* Only usable with VLM. No category so not in gui preferences
/* Only usable with VLM. No category so not in gui preferences
...
@@ -69,12 +69,12 @@ vlc_module_begin();
...
@@ -69,12 +69,12 @@ vlc_module_begin();
set_callbacks
(
OpenOut
,
CloseOut
);
set_callbacks
(
OpenOut
,
CloseOut
);
add_submodule
();
add_submodule
();
set_section
(
N_
(
"Bridge in"
),
NULL
);
set_section
(
N_
(
"Bridge in"
),
NULL
);
set_capability
(
"sout stream"
,
50
);
set_capability
(
"sout stream"
,
50
);
add_shortcut
(
"bridge-in"
);
add_shortcut
(
"bridge-in"
);
/*set_category( CAT_SOUT );
/*set_category( CAT_SOUT );
set_subcategory( SUBCAT_SOUT_STREAM );*/
set_subcategory( SUBCAT_SOUT_STREAM );*/
add_integer
(
SOUT_CFG_PREFIX_IN
"delay"
,
10
0
,
NULL
,
DELAY_TEXT
,
add_integer
(
SOUT_CFG_PREFIX_IN
"delay"
,
0
,
NULL
,
DELAY_TEXT
,
DELAY_LONGTEXT
,
VLC_FALSE
);
DELAY_LONGTEXT
,
VLC_FALSE
);
add_integer
(
SOUT_CFG_PREFIX_IN
"id-offset"
,
8192
,
NULL
,
ID_OFFSET_TEXT
,
add_integer
(
SOUT_CFG_PREFIX_IN
"id-offset"
,
8192
,
NULL
,
ID_OFFSET_TEXT
,
ID_OFFSET_LONGTEXT
,
VLC_FALSE
);
ID_OFFSET_LONGTEXT
,
VLC_FALSE
);
...
@@ -109,7 +109,6 @@ typedef struct bridged_es_t
...
@@ -109,7 +109,6 @@ typedef struct bridged_es_t
block_t
*
p_block
;
block_t
*
p_block
;
block_t
**
pp_last
;
block_t
**
pp_last
;
vlc_bool_t
b_empty
;
vlc_bool_t
b_empty
;
int
i_id
;
/* bridge in part */
/* bridge in part */
sout_stream_id_t
*
id
;
sout_stream_id_t
*
id
;
...
@@ -150,9 +149,9 @@ static bridge_t *__GetBridge( vlc_object_t *p_object )
...
@@ -150,9 +149,9 @@ static bridge_t *__GetBridge( vlc_object_t *p_object )
typedef
struct
out_sout_stream_sys_t
typedef
struct
out_sout_stream_sys_t
{
{
vlc_mutex_t
*
p_lock
;
vlc_mutex_t
*
p_lock
;
bridged_es_t
*
p_es
;
int
i_id
;
int
i_id
;
vlc_bool_t
b_inited
;
vlc_bool_t
b_inited
;
int
i_position
;
}
out_sout_stream_sys_t
;
}
out_sout_stream_sys_t
;
/*****************************************************************************
/*****************************************************************************
...
@@ -160,7 +159,7 @@ typedef struct out_sout_stream_sys_t
...
@@ -160,7 +159,7 @@ typedef struct out_sout_stream_sys_t
*****************************************************************************/
*****************************************************************************/
static
int
OpenOut
(
vlc_object_t
*
p_this
)
static
int
OpenOut
(
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
;
out_sout_stream_sys_t
*
p_sys
;
out_sout_stream_sys_t
*
p_sys
;
vlc_value_t
val
;
vlc_value_t
val
;
...
@@ -182,7 +181,6 @@ static int OpenOut( vlc_object_t *p_this )
...
@@ -182,7 +181,6 @@ static int OpenOut( vlc_object_t *p_this )
p_stream
->
p_sys
=
(
sout_stream_sys_t
*
)
p_sys
;
p_stream
->
p_sys
=
(
sout_stream_sys_t
*
)
p_sys
;
/* update p_sout->i_out_pace_nocontrol */
p_stream
->
p_sout
->
i_out_pace_nocontrol
++
;
p_stream
->
p_sout
->
i_out_pace_nocontrol
++
;
return
VLC_SUCCESS
;
return
VLC_SUCCESS
;
...
@@ -243,14 +241,12 @@ static sout_stream_id_t * AddOut( sout_stream_t *p_stream, es_format_t *p_fmt )
...
@@ -243,14 +241,12 @@ static sout_stream_id_t * AddOut( sout_stream_t *p_stream, es_format_t *p_fmt )
p_bridge
->
pp_es
=
realloc
(
p_bridge
->
pp_es
,
p_bridge
->
pp_es
=
realloc
(
p_bridge
->
pp_es
,
(
p_bridge
->
i_es_num
+
1
)
(
p_bridge
->
i_es_num
+
1
)
*
sizeof
(
bridged_es_t
*
)
);
*
sizeof
(
bridged_es_t
*
)
);
p_sys
->
i_position
=
p_bridge
->
i_es_num
;
p_bridge
->
i_es_num
++
;
p_bridge
->
i_es_num
++
;
p_bridge
->
pp_es
[
i
]
=
malloc
(
sizeof
(
bridged_es_t
)
);
p_bridge
->
pp_es
[
i
]
=
malloc
(
sizeof
(
bridged_es_t
)
);
}
}
else
p_sys
->
i_position
=
i
;
p_es
=
p_bridge
->
pp_es
[
p_sys
->
i_position
];
p_sys
->
p_es
=
p_es
=
p_bridge
->
pp_es
[
i
];
p_es
->
fmt
=
*
p_fmt
;
p_es
->
fmt
=
*
p_fmt
;
p_es
->
fmt
.
i_id
=
p_sys
->
i_id
;
p_es
->
fmt
.
i_id
=
p_sys
->
i_id
;
p_es
->
p_block
=
NULL
;
p_es
->
p_block
=
NULL
;
...
@@ -262,7 +258,7 @@ static sout_stream_id_t * AddOut( sout_stream_t *p_stream, es_format_t *p_fmt )
...
@@ -262,7 +258,7 @@ static sout_stream_id_t * AddOut( sout_stream_t *p_stream, es_format_t *p_fmt )
p_es
->
b_changed
=
VLC_TRUE
;
p_es
->
b_changed
=
VLC_TRUE
;
msg_Dbg
(
p_stream
,
"bridging out input codec=%4.4s id=%d pos=%d"
,
msg_Dbg
(
p_stream
,
"bridging out input codec=%4.4s id=%d pos=%d"
,
(
char
*
)
&
p_es
->
fmt
.
i_codec
,
p_es
->
fmt
.
i_id
,
p_sys
->
i_position
);
(
char
*
)
&
p_es
->
fmt
.
i_codec
,
p_es
->
fmt
.
i_id
,
i
);
vlc_mutex_unlock
(
p_sys
->
p_lock
);
vlc_mutex_unlock
(
p_sys
->
p_lock
);
...
@@ -272,7 +268,6 @@ static sout_stream_id_t * AddOut( sout_stream_t *p_stream, es_format_t *p_fmt )
...
@@ -272,7 +268,6 @@ static sout_stream_id_t * AddOut( sout_stream_t *p_stream, es_format_t *p_fmt )
static
int
DelOut
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
)
static
int
DelOut
(
sout_stream_t
*
p_stream
,
sout_stream_id_t
*
id
)
{
{
out_sout_stream_sys_t
*
p_sys
=
(
out_sout_stream_sys_t
*
)
p_stream
->
p_sys
;
out_sout_stream_sys_t
*
p_sys
=
(
out_sout_stream_sys_t
*
)
p_stream
->
p_sys
;
bridge_t
*
p_bridge
;
bridged_es_t
*
p_es
;
bridged_es_t
*
p_es
;
if
(
!
p_sys
->
b_inited
)
if
(
!
p_sys
->
b_inited
)
...
@@ -282,8 +277,7 @@ static int DelOut( sout_stream_t *p_stream, sout_stream_id_t *id )
...
@@ -282,8 +277,7 @@ static int DelOut( sout_stream_t *p_stream, sout_stream_id_t *id )
vlc_mutex_lock
(
p_sys
->
p_lock
);
vlc_mutex_lock
(
p_sys
->
p_lock
);
p_bridge
=
GetBridge
(
p_stream
);
p_es
=
p_sys
->
p_es
;
p_es
=
p_bridge
->
pp_es
[
p_sys
->
i_position
];
p_es
->
b_empty
=
VLC_TRUE
;
p_es
->
b_empty
=
VLC_TRUE
;
block_ChainRelease
(
p_es
->
p_block
);
block_ChainRelease
(
p_es
->
p_block
);
...
@@ -299,7 +293,6 @@ static int SendOut( sout_stream_t *p_stream, sout_stream_id_t *id,
...
@@ -299,7 +293,6 @@ static int SendOut( sout_stream_t *p_stream, sout_stream_id_t *id,
block_t
*
p_buffer
)
block_t
*
p_buffer
)
{
{
out_sout_stream_sys_t
*
p_sys
=
(
out_sout_stream_sys_t
*
)
p_stream
->
p_sys
;
out_sout_stream_sys_t
*
p_sys
=
(
out_sout_stream_sys_t
*
)
p_stream
->
p_sys
;
bridge_t
*
p_bridge
;
bridged_es_t
*
p_es
;
bridged_es_t
*
p_es
;
if
(
(
out_sout_stream_sys_t
*
)
id
!=
p_sys
)
if
(
(
out_sout_stream_sys_t
*
)
id
!=
p_sys
)
...
@@ -310,8 +303,7 @@ static int SendOut( sout_stream_t *p_stream, sout_stream_id_t *id,
...
@@ -310,8 +303,7 @@ static int SendOut( sout_stream_t *p_stream, sout_stream_id_t *id,
vlc_mutex_lock
(
p_sys
->
p_lock
);
vlc_mutex_lock
(
p_sys
->
p_lock
);
p_bridge
=
GetBridge
(
p_stream
);
p_es
=
p_sys
->
p_es
;
p_es
=
p_bridge
->
pp_es
[
p_sys
->
i_position
];
*
p_es
->
pp_last
=
p_buffer
;
*
p_es
->
pp_last
=
p_buffer
;
while
(
p_buffer
!=
NULL
)
while
(
p_buffer
!=
NULL
)
{
{
...
...
modules/
video_output/pictur
e.c
→
modules/
stream_out/mosaic_bridg
e.c
View file @
f976d6ae
This diff is collapsed.
Click to expand it.
modules/video_filter/Modules.am
View file @
f976d6ae
SOURCES_mosaic = mosaic.c
SOURCES_mosaic = mosaic.c
mosaic.h
SOURCES_transform = transform.c
SOURCES_transform = transform.c
SOURCES_invert = invert.c
SOURCES_invert = invert.c
SOURCES_adjust = adjust.c
SOURCES_adjust = adjust.c
...
...
modules/video_filter/mosaic.c
View file @
f976d6ae
This diff is collapsed.
Click to expand it.
modules/video_
output/picture
.h
→
modules/video_
filter/mosaic
.h
View file @
f976d6ae
/*****************************************************************************
/*****************************************************************************
*
picture
.h:
*
mosaic
.h:
*****************************************************************************
*****************************************************************************
* Copyright (C) 2004-2005 VideoLAN
* Copyright (C) 2004-2005 VideoLAN
* $Id$
* $Id$
*
*
* Authors: Antoine Cellerier <dionoea@videolan.org>
* Authors: Antoine Cellerier <dionoea@videolan.org>
* Christophe Massiot <massiot@via.ecp.fr>
*
*
* This program is free software; you can redistribute it and/or modify
* 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
* it under the terms of the GNU General Public License as published by
...
@@ -21,24 +22,37 @@
...
@@ -21,24 +22,37 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
*****************************************************************************/
#ifndef _PICTURE_VOUT_H
typedef
struct
bridged_es_t
#define _PICTURE_VOUT_H 1
#define PICTURE_VOUT_E_AVAILABLE 0
#define PICTURE_VOUT_E_OCCUPIED 1
typedef
struct
picture_vout_e_t
{
{
es_format_t
fmt
;
picture_t
*
p_picture
;
picture_t
*
p_picture
;
int
i_status
;
picture_t
**
pp_last
;
vlc_bool_t
b_empty
;
char
*
psz_id
;
char
*
psz_id
;
}
picture_vout_e_t
;
}
bridged_es_t
;
typedef
struct
bridge_t
{
bridged_es_t
**
pp_es
;
int
i_es_num
;
}
bridge_t
;
typedef
struct
picture_vout_t
#define GetBridge(a) __GetBridge( VLC_OBJECT(a) )
static
bridge_t
*
__GetBridge
(
vlc_object_t
*
p_object
)
{
{
int
i_picture_num
;
libvlc_t
*
p_libvlc
=
p_object
->
p_libvlc
;
picture_vout_e_t
*
p_pic
;
bridge_t
*
p_bridge
;
}
picture_vout_t
;
vlc_value_t
val
;
if
(
var_Get
(
p_libvlc
,
"mosaic-struct"
,
&
val
)
!=
VLC_SUCCESS
)
{
p_bridge
=
NULL
;
}
else
{
p_bridge
=
val
.
p_address
;
}
#undef IMAGE_2PASSES
return
p_bridge
;
}
#endif
modules/video_output/Modules.am
View file @
f976d6ae
...
@@ -12,5 +12,3 @@ SOURCES_hd1000v = hd1000v.cpp
...
@@ -12,5 +12,3 @@ SOURCES_hd1000v = hd1000v.cpp
SOURCES_snapshot = snapshot.c
SOURCES_snapshot = snapshot.c
SOURCES_opengl = opengl.c
SOURCES_opengl = opengl.c
SOURCES_image = image.c
SOURCES_image = image.c
SOURCES_picture = picture.h \
picture.c
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