Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Open sidebar
Steve Lhomme
VLC
Commits
6e8939e4
Commit
6e8939e4
authored
May 10, 2010
by
Laurent Aimar
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Made SPU commands go through vout.
parent
a3988310
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
35 additions
and
16 deletions
+35
-16
include/vlc_vout.h
include/vlc_vout.h
+5
-0
modules/control/hotkeys.c
modules/control/hotkeys.c
+3
-4
modules/misc/lua/libs/osd.c
modules/misc/lua/libs/osd.c
+2
-2
src/input/decoder.c
src/input/decoder.c
+4
-5
src/input/resource.c
src/input/resource.c
+1
-1
src/libvlccore.sym
src/libvlccore.sym
+3
-0
src/video_output/video_epg.c
src/video_output/video_epg.c
+1
-1
src/video_output/video_output.c
src/video_output/video_output.c
+13
-0
src/video_output/video_text.c
src/video_output/video_text.c
+1
-1
src/video_output/video_widgets.c
src/video_output/video_widgets.c
+1
-1
src/video_output/vout_intf.c
src/video_output/vout_intf.c
+1
-1
No files found.
include/vlc_vout.h
View file @
6e8939e4
...
...
@@ -163,6 +163,11 @@ VLC_EXPORT( void, vout_PutPicture, ( vout_thread_t *, picture_t *
VLC_EXPORT
(
void
,
vout_HoldPicture
,
(
vout_thread_t
*
,
picture_t
*
)
);
VLC_EXPORT
(
void
,
vout_ReleasePicture
,
(
vout_thread_t
*
,
picture_t
*
)
);
/* */
VLC_EXPORT
(
void
,
vout_PutSubpicture
,
(
vout_thread_t
*
,
subpicture_t
*
)
);
VLC_EXPORT
(
int
,
vout_RegisterSubpictureChannel
,
(
vout_thread_t
*
)
);
VLC_EXPORT
(
void
,
vout_FlushSubpictureChannel
,
(
vout_thread_t
*
,
int
)
);
/**
* Return the spu_t object associated to a vout_thread_t.
*
...
...
modules/control/hotkeys.c
View file @
6e8939e4
...
...
@@ -170,7 +170,7 @@ static int PutAction( intf_thread_t *p_intf, int i_action )
* Alternatively, we should keep a reference to the vout thread. */
if
(
p_vout
&&
p_vout
!=
p_sys
->
p_last_vout
)
for
(
unsigned
i
=
0
;
i
<
CHANNELS_NUMBER
;
i
++
)
p_intf
->
p_sys
->
p_channels
[
i
]
=
spu
_Register
Channel
(
vout_GetSpu
(
p_vout
)
);
p_intf
->
p_sys
->
p_channels
[
i
]
=
vout
_Register
SubpictureChannel
(
p_vout
);
p_sys
->
p_last_vout
=
p_vout
;
/* Quit */
...
...
@@ -1073,9 +1073,8 @@ static void ClearChannels( intf_thread_t *p_intf, vout_thread_t *p_vout )
{
if
(
p_vout
)
{
spu_t
*
p_spu
=
vout_GetSpu
(
p_vout
);
spu_ClearChannel
(
p_spu
,
SPU_DEFAULT_CHANNEL
);
vout_FlushSubpictureChannel
(
p_vout
,
SPU_DEFAULT_CHANNEL
);
for
(
int
i
=
0
;
i
<
CHANNELS_NUMBER
;
i
++
)
spu_Clear
Channel
(
p_
spu
,
p_intf
->
p_sys
->
p_channels
[
i
]
);
vout_FlushSubpicture
Channel
(
p_
vout
,
p_intf
->
p_sys
->
p_channels
[
i
]
);
}
}
modules/misc/lua/libs/osd.c
View file @
6e8939e4
...
...
@@ -152,7 +152,7 @@ static int vlclua_spu_channel_register( lua_State *L )
if
(
!
p_vout
)
return
luaL_error
(
L
,
"Unable to find vout."
);
i_chan
=
spu
_Register
Channel
(
vout_GetSpu
(
p_vout
)
);
i_chan
=
vout
_Register
SubpictureChannel
(
p_vout
);
vlc_object_release
(
p_vout
);
lua_pushinteger
(
L
,
i_chan
);
return
1
;
...
...
@@ -167,7 +167,7 @@ static int vlclua_spu_channel_clear( lua_State *L )
if
(
!
p_vout
)
return
luaL_error
(
L
,
"Unable to find vout."
);
spu
_Clear
Channel
(
vout_GetSpu
(
p_vout
)
,
i_chan
);
vout
_Clear
SubpitureChannel
(
p_vout
,
i_chan
);
vlc_object_release
(
p_vout
);
return
0
;
}
...
...
src/input/decoder.c
View file @
6e8939e4
...
...
@@ -1593,7 +1593,7 @@ static void DecoderPlaySpu( decoder_t *p_dec, subpicture_t *p_subpic,
p_subpic
->
i_start
-
SPU_MAX_PREPARE_TIME
);
if
(
!
b_reject
)
spu_Display
Subpicture
(
vout_GetSpu
(
p_vout
)
,
p_subpic
);
vout_Put
Subpicture
(
p_vout
,
p_subpic
);
else
subpicture_Delete
(
p_subpic
);
...
...
@@ -1935,8 +1935,7 @@ static void DecoderProcessSpu( decoder_t *p_dec, block_t *p_block, bool b_flush
p_vout
=
input_resource_HoldVout
(
p_input
->
p
->
p_resource
);
if
(
p_vout
&&
p_owner
->
p_spu_vout
==
p_vout
)
spu_ClearChannel
(
vout_GetSpu
(
p_vout
),
p_owner
->
i_spu_channel
);
vout_FlushSubpictureChannel
(
p_vout
,
p_owner
->
i_spu_channel
);
if
(
p_vout
)
vlc_object_release
(
p_vout
);
...
...
@@ -2098,7 +2097,7 @@ static void DeleteDecoder( decoder_t * p_dec )
if
(
p_vout
)
{
if
(
p_owner
->
p_spu_vout
==
p_vout
)
spu_ClearChannel
(
vout_GetSpu
(
p_vout
)
,
p_owner
->
i_spu_channel
);
vout_FlushSubpictureChannel
(
p_vout
,
p_owner
->
i_spu_channel
);
vlc_object_release
(
p_vout
);
}
}
...
...
@@ -2427,7 +2426,7 @@ static subpicture_t *spu_new_buffer( decoder_t *p_dec,
vlc_mutex_unlock
(
&
p_owner
->
lock
);
p_owner
->
i_spu_channel
=
spu
_Register
Channel
(
vout_GetSpu
(
p_vout
)
);
p_owner
->
i_spu_channel
=
vout
_Register
SubpictureChannel
(
p_vout
);
p_owner
->
i_spu_order
=
0
;
p_owner
->
p_spu_vout
=
p_vout
;
}
...
...
src/input/resource.c
View file @
6e8939e4
...
...
@@ -273,7 +273,7 @@ static vout_thread_t *RequestVout( input_resource_t *p_resource,
{
msg_Dbg
(
p_resource
->
p_input
,
"saving a free vout"
);
vout_Flush
(
p_vout
,
1
);
spu_ClearChannel
(
vout_GetSpu
(
p_vout
)
,
-
1
);
vout_FlushSubpictureChannel
(
p_vout
,
-
1
);
p_resource
->
p_vout_free
=
p_vout
;
}
...
...
src/libvlccore.sym
View file @
6e8939e4
...
...
@@ -614,6 +614,9 @@ vout_GetPicture
vout_PutPicture
vout_HoldPicture
vout_ReleasePicture
vout_PutSubpicture
vout_RegisterSubpictureChannel
vout_FlushSubpictureChannel
vout_EnableFilter
vout_GetSnapshot
vout_GetSpu
...
...
src/video_output/video_epg.c
View file @
6e8939e4
...
...
@@ -315,7 +315,7 @@ int vout_OSDEpg( vout_thread_t *p_vout, input_item_t *p_input )
p_spu
->
b_absolute
=
true
;
p_spu
->
b_fade
=
true
;
spu_Display
Subpicture
(
vout_GetSpu
(
p_vout
)
,
p_spu
);
vout_Put
Subpicture
(
p_vout
,
p_spu
);
return
VLC_SUCCESS
;
}
src/video_output/video_output.c
View file @
6e8939e4
...
...
@@ -506,6 +506,19 @@ void vout_DisplayTitle(vout_thread_t *vout, const char *title)
vout_control_PushString
(
&
vout
->
p
->
control
,
VOUT_CONTROL_OSD_TITLE
,
title
);
}
void
vout_PutSubpicture
(
vout_thread_t
*
vout
,
subpicture_t
*
subpic
)
{
spu_DisplaySubpicture
(
vout
->
p
->
p_spu
,
subpic
);
}
int
vout_RegisterSubpictureChannel
(
vout_thread_t
*
vout
)
{
return
spu_RegisterChannel
(
vout
->
p
->
p_spu
);
}
void
vout_FlushSubpictureChannel
(
vout_thread_t
*
vout
,
int
channel
)
{
spu_ClearChannel
(
vout
->
p
->
p_spu
,
channel
);
}
spu_t
*
vout_GetSpu
(
vout_thread_t
*
p_vout
)
{
return
p_vout
->
p
->
p_spu
;
...
...
src/video_output/video_text.c
View file @
6e8939e4
...
...
@@ -118,7 +118,7 @@ void vout_OSDText(vout_thread_t *vout, int channel,
subpic
->
b_absolute
=
false
;
subpic
->
b_fade
=
true
;
spu_Display
Subpicture
(
vout
_GetSpu
(
vout
)
,
subpic
);
vout_Put
Subpicture
(
vout
,
subpic
);
}
void
vout_OSDMessage
(
vout_thread_t
*
vout
,
int
channel
,
const
char
*
format
,
...)
...
...
src/video_output/video_widgets.c
View file @
6e8939e4
...
...
@@ -309,7 +309,7 @@ static void OSDWidget(vout_thread_t *vout, int channel, int type, int position)
subpic
->
b_absolute
=
true
;
subpic
->
b_fade
=
true
;
spu_Display
Subpicture
(
vout
_GetSpu
(
vout
)
,
subpic
);
vout_Put
Subpicture
(
vout
,
subpic
);
}
void
vout_OSDSlider
(
vout_thread_t
*
vout
,
int
channel
,
int
position
,
short
type
)
...
...
src/video_output/vout_intf.c
View file @
6e8939e4
...
...
@@ -384,7 +384,7 @@ static int VoutSnapshotPip( vout_thread_t *p_vout, picture_t *p_pic )
p_subpic
->
i_original_picture_width
*=
4
;
p_subpic
->
i_original_picture_height
*=
4
;
spu_Display
Subpicture
(
vout_GetSpu
(
p_vout
)
,
p_subpic
);
vout_Put
Subpicture
(
p_vout
,
p_subpic
);
return
VLC_SUCCESS
;
}
...
...
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