Commit f756ebd7 authored by Antoine Cellerier's avatar Antoine Cellerier

Slight cleanup and simplification.

parent 10c71709
...@@ -560,7 +560,8 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt, ...@@ -560,7 +560,8 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt,
p_spu->p_blend->fmt_out.video.i_aspect = p_fmt->i_aspect; p_spu->p_blend->fmt_out.video.i_aspect = p_fmt->i_aspect;
p_spu->p_blend->fmt_out.video.i_chroma = p_fmt->i_chroma; p_spu->p_blend->fmt_out.video.i_chroma = p_fmt->i_chroma;
/* The blend module will be loaded when needed with the real input format */ /* The blend module will be loaded when needed with the real
* input format */
memset( &p_spu->p_blend->fmt_in, 0, sizeof(p_spu->p_blend->fmt_in) ); memset( &p_spu->p_blend->fmt_in, 0, sizeof(p_spu->p_blend->fmt_in) );
p_spu->p_blend->p_module = NULL; p_spu->p_blend->p_module = NULL;
} }
...@@ -605,12 +606,13 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt, ...@@ -605,12 +606,13 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt,
{ {
subpicture_region_t *p_text_region = p_subpic->p_region; subpicture_region_t *p_text_region = p_subpic->p_region;
/* Only overwrite the size fields if the region is still in pre-rendered /* Only overwrite the size fields if the region is still in
* TEXT format. We have to traverse the subregion list because if more * pre-rendered TEXT format. We have to traverse the subregion
* than one subregion is present, the text region isn't guarentteed to * list because if more than one subregion is present, the text
* be the first in the list, and only text regions use this flag. * region isn't guarentteed to be the first in the list, and
* All of this effort assists with the rescaling of text that has been * only text regions use this flag. All of this effort assists
* rendered at native resolution, rather than video resolution. * with the rescaling of text that has been rendered at native
* resolution, rather than video resolution.
*/ */
while( p_text_region && while( p_text_region &&
( p_text_region->fmt.i_chroma != VLC_FOURCC('T','E','X','T') ) ) ( p_text_region->fmt.i_chroma != VLC_FOURCC('T','E','X','T') ) )
...@@ -618,7 +620,7 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt, ...@@ -618,7 +620,7 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt,
p_text_region = p_text_region->p_next; p_text_region = p_text_region->p_next;
} }
if( p_text_region && if( p_text_region &&
( ( p_text_region->i_align & SUBPICTURE_RENDERED ) == 0 ) ) ( ( p_text_region->i_align & SUBPICTURE_RENDERED ) == 0 ) )
{ {
if( (p_subpic->i_original_picture_height > 0) && if( (p_subpic->i_original_picture_height > 0) &&
...@@ -665,9 +667,9 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt, ...@@ -665,9 +667,9 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt,
for( k = 0; k < SCALE_SIZE ; k++ ) for( k = 0; k < SCALE_SIZE ; k++ )
{ {
/* Case of both width and height being specified has been dealt with /* Case of both width and height being specified has been dealt
* above by instead rendering to an output pane of the explicit * with above by instead rendering to an output pane of the
* dimensions specified - we don't need to scale it. * explicit dimensions specified - we don't need to scale it.
*/ */
if( (p_subpic->i_original_picture_height > 0) && if( (p_subpic->i_original_picture_height > 0) &&
(p_subpic->i_original_picture_width <= 0) ) (p_subpic->i_original_picture_width <= 0) )
...@@ -694,7 +696,7 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt, ...@@ -694,7 +696,7 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt,
} }
/* Take care of the aspect ratio */ /* Take care of the aspect ratio */
if( p_region && if( p_region &&
( ( p_region->fmt.i_sar_num * p_fmt->i_sar_den ) != ( ( p_region->fmt.i_sar_num * p_fmt->i_sar_den ) !=
( p_region->fmt.i_sar_den * p_fmt->i_sar_num ) ) ) ( p_region->fmt.i_sar_den * p_fmt->i_sar_num ) ) )
{ {
...@@ -823,7 +825,7 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt, ...@@ -823,7 +825,7 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt,
} }
/* Scale SPU if necessary */ /* Scale SPU if necessary */
if( p_region->p_cache && if( p_region->p_cache &&
( p_region->fmt.i_chroma != VLC_FOURCC('T','E','X','T') ) ) ( p_region->fmt.i_chroma != VLC_FOURCC('T','E','X','T') ) )
{ {
if( pi_scale_width[ i_scale_idx ] * p_region->fmt.i_width / 1000 != if( pi_scale_width[ i_scale_idx ] * p_region->fmt.i_width / 1000 !=
...@@ -837,9 +839,9 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt, ...@@ -837,9 +839,9 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt,
} }
} }
if( ( ( pi_scale_width[ i_scale_idx ] != 1000 ) || if( ( ( pi_scale_width[ i_scale_idx ] != 1000 ) ||
( pi_scale_height[ i_scale_idx ] != 1000 ) ) && ( pi_scale_height[ i_scale_idx ] != 1000 ) ) &&
( ( pi_scale_width[ i_scale_idx ] > 0 ) || ( ( pi_scale_width[ i_scale_idx ] > 0 ) ||
( pi_scale_height[ i_scale_idx ] > 0 ) ) && ( pi_scale_height[ i_scale_idx ] > 0 ) ) &&
p_spu->p_scale && !p_region->p_cache && p_spu->p_scale && !p_region->p_cache &&
( p_region->fmt.i_chroma != VLC_FOURCC('T','E','X','T') ) ) ( p_region->fmt.i_chroma != VLC_FOURCC('T','E','X','T') ) )
...@@ -1306,8 +1308,8 @@ static void sub_del_buffer( filter_t *p_filter, subpicture_t *p_subpic ) ...@@ -1306,8 +1308,8 @@ static void sub_del_buffer( filter_t *p_filter, subpicture_t *p_subpic )
static subpicture_t *spu_new_buffer( filter_t *p_filter ) static subpicture_t *spu_new_buffer( filter_t *p_filter )
{ {
subpicture_t *p_subpic = (subpicture_t *)malloc(sizeof(subpicture_t));
(void)p_filter; (void)p_filter;
subpicture_t *p_subpic = (subpicture_t *)malloc(sizeof(subpicture_t));
if( !p_subpic ) return NULL; if( !p_subpic ) return NULL;
memset( p_subpic, 0, sizeof(subpicture_t) ); memset( p_subpic, 0, sizeof(subpicture_t) );
p_subpic->b_absolute = VLC_TRUE; p_subpic->b_absolute = VLC_TRUE;
...@@ -1354,8 +1356,11 @@ static picture_t *spu_new_video_buffer( filter_t *p_filter ) ...@@ -1354,8 +1356,11 @@ static picture_t *spu_new_video_buffer( filter_t *p_filter )
static void spu_del_video_buffer( filter_t *p_filter, picture_t *p_pic ) static void spu_del_video_buffer( filter_t *p_filter, picture_t *p_pic )
{ {
(void)p_filter; (void)p_filter;
if( p_pic && p_pic->p_data_orig ) free( p_pic->p_data_orig ); if( p_pic )
if( p_pic ) free( p_pic ); {
if( p_pic->p_data_orig ) free( p_pic->p_data_orig );
free( p_pic );
}
} }
static int SubFilterCallback( vlc_object_t *p_object, char const *psz_var, static int SubFilterCallback( vlc_object_t *p_object, char const *psz_var,
...@@ -1363,13 +1368,10 @@ static int SubFilterCallback( vlc_object_t *p_object, char const *psz_var, ...@@ -1363,13 +1368,10 @@ static int SubFilterCallback( vlc_object_t *p_object, char const *psz_var,
{ {
(void)p_object; (void)oldval; (void)newval; (void)p_object; (void)oldval; (void)newval;
if( !strcmp( psz_var, "sub-filter" ) ) spu_t *p_spu = (spu_t *)p_data;
{ vlc_mutex_lock( &p_spu->subpicture_lock );
spu_t *p_spu = (spu_t *)p_data; spu_DeleteChain( p_spu );
vlc_mutex_lock( &p_spu->subpicture_lock ); spu_ParseChain( p_spu );
spu_DeleteChain( p_spu ); vlc_mutex_unlock( &p_spu->subpicture_lock );
spu_ParseChain( p_spu );
vlc_mutex_unlock( &p_spu->subpicture_lock );
}
return VLC_SUCCESS; return VLC_SUCCESS;
} }
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