Commit 738f62a6 authored by Antoine Cellerier's avatar Antoine Cellerier

Cosmetics.

parent 0e571b91
...@@ -534,7 +534,8 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt, ...@@ -534,7 +534,8 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt,
} }
/* Load the text rendering module */ /* Load the text rendering module */
if( !p_spu->p_text && p_region && p_region->fmt.i_chroma == VLC_FOURCC('T','E','X','T') ) if( !p_spu->p_text && p_region
&& p_region->fmt.i_chroma == VLC_FOURCC('T','E','X','T') )
{ {
char *psz_modulename = NULL; char *psz_modulename = NULL;
...@@ -666,21 +667,24 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt, ...@@ -666,21 +667,24 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt,
{ {
vlc_value_t val; vlc_value_t val;
/* Setup 3 variables which can be used to render time-dependent /* Setup 3 variables which can be used to render
* text (and effects). The first indicates the total amount of * time-dependent text (and effects). The first indicates
* time the text will be on screen, the second the amount of time * the total amount of time the text will be on screen,
* it has already been on screen (can be a negative value as text * the second the amount of time it has already been on
* is layed out before it is rendered) and the third is a feedback * screen (can be a negative value as text is layed out
* variable from the renderer - if the renderer sets it then this * before it is rendered) and the third is a feedback
* particular text is time-dependent, eg. the visual progress bar * variable from the renderer - if the renderer sets it
* inside the text in karaoke and the text needs to be rendered * then this particular text is time-dependent, eg. the
* multiple times in order for the effect to work - we therefore * visual progress bar inside the text in karaoke and the
* need to return the region to its original state at the end of * text needs to be rendered multiple times in order for
* the loop, instead of leaving it in YUVA or YUVP * the effect to work - we therefore need to return the
* Any renderer which is unaware of how to render time-dependent * region to its original state at the end of the loop,
* text can happily ignore the variables and render the text the * instead of leaving it in YUVA or YUVP.
* same as usual - it should at least show up on screen, but the * Any renderer which is unaware of how to render
* effect won't change the text over time. * time-dependent text can happily ignore the variables
* and render the text the same as usual - it should at
* least show up on screen, but the effect won't change
* the text over time.
*/ */
var_Create( p_spu->p_text, "spu-duration", VLC_VAR_TIME ); var_Create( p_spu->p_text, "spu-duration", VLC_VAR_TIME );
...@@ -821,11 +825,14 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt, ...@@ -821,11 +825,14 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt,
{ {
int i_diff = 0; int i_diff = 0;
int i_low = i_y_offset - p_spu->i_margin; int i_low = i_y_offset - p_spu->i_margin;
int i_high = i_y_offset + p_region->fmt.i_height - p_spu->i_margin; int i_high = i_y_offset + p_region->fmt.i_height
- p_spu->i_margin;
/* crop extra margin to keep within bounds */ /* crop extra margin to keep within bounds */
if( i_low < 0 ) i_diff = i_low; if( i_low < 0 )
if( i_high > (int)p_fmt->i_height ) i_diff = i_high - p_fmt->i_height; i_diff = i_low;
if( i_high > (int)p_fmt->i_height )
i_diff = i_high - p_fmt->i_height;
i_y_offset -= ( p_spu->i_margin + i_diff ); i_y_offset -= ( p_spu->i_margin + i_diff );
} }
...@@ -898,9 +905,10 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt, ...@@ -898,9 +905,10 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt,
if( b_rerender_text ) if( b_rerender_text )
{ {
/* Some forms of subtitles need to be re-rendered more than once, /* Some forms of subtitles need to be re-rendered more than
* eg. karaoke. We therefore restore the region to its pre-rendered * once, eg. karaoke. We therefore restore the region to its
* state, so the next time through everything is calculated again. * pre-rendered state, so the next time through everything is
* calculated again.
*/ */
p_region->picture.pf_release( &p_region->picture ); p_region->picture.pf_release( &p_region->picture );
memset( &p_region->picture, 0, sizeof( picture_t ) ); memset( &p_region->picture, 0, sizeof( picture_t ) );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment