Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-gpu
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-gpu
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
VLC_ADD_PLUGINS([externrun])
VLC_ADD_PLUGINS([access_fake access_filter_timeshift])
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([aout_file linear_resampler bandlimited_resampler])
VLC_ADD_PLUGINS([float32_mixer spdif_mixer simple_channel_mixer])
...
...
@@ -1227,7 +1227,7 @@ then
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_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])
AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
...
...
@@ -2533,7 +2533,7 @@ AC_ARG_ENABLE(speex,
if test "${enable_speex}" != "no"
then
AC_CHECK_HEADERS(speex/speex.h, [
LDFLAGS="${LDFLAGS_save} ${LDFLAGS_
toolame
}"
LDFLAGS="${LDFLAGS_save} ${LDFLAGS_
speex
}"
AC_CHECK_LIB(speex, speex_decode_int, [
VLC_ADD_PLUGINS([speex])
VLC_ADD_LDFLAGS([speex],[-lspeex]) ],
...
...
modules/stream_out/Modules.am
View file @
f976d6ae
...
...
@@ -11,3 +11,4 @@ SOURCES_stream_out_gather = gather.c
SOURCES_stream_out_rtp = rtp.c
SOURCES_stream_out_switcher = switcher.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();
set_shortname
(
_
(
"Bridge"
));
set_description
(
_
(
"Bridge stream output"
));
add_submodule
();
set_section
(
N_
(
"Bridge out"
),
NULL
);
set_section
(
N_
(
"Bridge out"
),
NULL
);
set_capability
(
"sout stream"
,
50
);
add_shortcut
(
"bridge-out"
);
/* Only usable with VLM. No category so not in gui preferences
...
...
@@ -69,12 +69,12 @@ vlc_module_begin();
set_callbacks
(
OpenOut
,
CloseOut
);
add_submodule
();
set_section
(
N_
(
"Bridge in"
),
NULL
);
set_section
(
N_
(
"Bridge in"
),
NULL
);
set_capability
(
"sout stream"
,
50
);
add_shortcut
(
"bridge-in"
);
/*set_category( CAT_SOUT );
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
);
add_integer
(
SOUT_CFG_PREFIX_IN
"id-offset"
,
8192
,
NULL
,
ID_OFFSET_TEXT
,
ID_OFFSET_LONGTEXT
,
VLC_FALSE
);
...
...
@@ -109,7 +109,6 @@ typedef struct bridged_es_t
block_t
*
p_block
;
block_t
**
pp_last
;
vlc_bool_t
b_empty
;
int
i_id
;
/* bridge in part */
sout_stream_id_t
*
id
;
...
...
@@ -150,9 +149,9 @@ static bridge_t *__GetBridge( vlc_object_t *p_object )
typedef
struct
out_sout_stream_sys_t
{
vlc_mutex_t
*
p_lock
;
bridged_es_t
*
p_es
;
int
i_id
;
vlc_bool_t
b_inited
;
int
i_position
;
}
out_sout_stream_sys_t
;
/*****************************************************************************
...
...
@@ -160,7 +159,7 @@ typedef struct out_sout_stream_sys_t
*****************************************************************************/
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
;
vlc_value_t
val
;
...
...
@@ -182,7 +181,6 @@ static int OpenOut( vlc_object_t *p_this )
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
++
;
return
VLC_SUCCESS
;
...
...
@@ -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
->
i_es_num
+
1
)
*
sizeof
(
bridged_es_t
*
)
);
p_sys
->
i_position
=
p_bridge
->
i_es_num
;
p_bridge
->
i_es_num
++
;
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
.
i_id
=
p_sys
->
i_id
;
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 )
p_es
->
b_changed
=
VLC_TRUE
;
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
);
...
...
@@ -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
)
{
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
;
if
(
!
p_sys
->
b_inited
)
...
...
@@ -282,8 +277,7 @@ static int DelOut( sout_stream_t *p_stream, sout_stream_id_t *id )
vlc_mutex_lock
(
p_sys
->
p_lock
);
p_bridge
=
GetBridge
(
p_stream
);
p_es
=
p_bridge
->
pp_es
[
p_sys
->
i_position
];
p_es
=
p_sys
->
p_es
;
p_es
->
b_empty
=
VLC_TRUE
;
block_ChainRelease
(
p_es
->
p_block
);
...
...
@@ -299,7 +293,6 @@ static int SendOut( sout_stream_t *p_stream, sout_stream_id_t *id,
block_t
*
p_buffer
)
{
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
;
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,
vlc_mutex_lock
(
p_sys
->
p_lock
);
p_bridge
=
GetBridge
(
p_stream
);
p_es
=
p_bridge
->
pp_es
[
p_sys
->
i_position
];
p_es
=
p_sys
->
p_es
;
*
p_es
->
pp_last
=
p_buffer
;
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_invert = invert.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
* $Id$
*
* Authors: Antoine Cellerier <dionoea@videolan.org>
* Christophe Massiot <massiot@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
...
...
@@ -21,24 +22,37 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
#ifndef _PICTURE_VOUT_H
#define _PICTURE_VOUT_H 1
#define PICTURE_VOUT_E_AVAILABLE 0
#define PICTURE_VOUT_E_OCCUPIED 1
typedef
struct
picture_vout_e_t
typedef
struct
bridged_es_t
{
es_format_t
fmt
;
picture_t
*
p_picture
;
int
i_status
;
picture_t
**
pp_last
;
vlc_bool_t
b_empty
;
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
;
picture_vout_e_t
*
p_pic
;
}
picture_vout_t
;
libvlc_t
*
p_libvlc
=
p_object
->
p_libvlc
;
bridge_t
*
p_bridge
;
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
SOURCES_snapshot = snapshot.c
SOURCES_opengl = opengl.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