/* Request an interface plugin */
psz_method = main_GetPszVariable( VOUT_METHOD_VAR, VOUT_DEFAULT_METHOD );
- if( RequestPlugin( &p_vout->vout_plugin, "vout", psz_method ) < 0 )
+ if( RequestPlugin( &p_vout->vout_plugin, psz_method ) < 0 )
{
- intf_ErrMsg( "error: could not open video plugin vout_%s.so\n", psz_method );
+ intf_ErrMsg( "error: could not open video plugin %s.so\n", psz_method );
free( p_vout );
return( NULL );
}
RenderPictureInfo( p_vout, p_pic );
RenderInfo( p_vout );
}
+ if( p_subpic )
+ {
+ RenderSubPicture( p_vout, p_subpic );
+ }
}
/* Remove picture from heap */
{
RenderInterface( p_vout );
}
- if( p_subpic )
- {
- if( b_display )
- {
- RenderSubPicture( p_vout, p_subpic );
- }
-
- /* Remove subpicture from heap */
- /*vlc_mutex_lock( &p_vout->subpicture_lock );
- p_subpic->i_status = DESTROYED_SUBPICTURE;
- vlc_mutex_unlock( &p_vout->subpicture_lock );*/
- }
-
- }
-#if 0
- else if( p_subpic ) /* subpicture alone */
- {
- b_display = p_vout->b_active;
- p_vout->last_display_date = display_date;
-
- if( b_display )
- {
- /* Clear buffer */
- SetBufferPicture( p_vout, NULL );
-
- /* Render informations, interface and subpicture */
- if( p_vout->b_info )
- {
- RenderInfo( p_vout );
- }
- if( p_vout->b_interface )
- {
- RenderInterface( p_vout );
- }
- RenderSubPicture( p_vout, p_subpic );
- }
- /* Remove subpicture from heap */
- /*vlc_mutex_lock( &p_vout->subpicture_lock );
- p_subpic->i_status = DESTROYED_SUBPICTURE;
- vlc_mutex_unlock( &p_vout->subpicture_lock );*/
}
-#endif
else if( p_vout->b_active ) /* idle or interface screen alone */
{
if( p_vout->b_interface && 0 /* && XXX?? intf_change */ )
}
/*
- * Set new picture size - if is is smaller than the previous one, clear
+ * Set new picture size - if it is smaller than the previous one, clear
* around it. Since picture are centered, only their size is tested.
*/
if( (p_buffer->i_pic_width > i_pic_width) || (p_buffer->i_pic_height > i_pic_height) )
/* test if the picture really has to be displayed */
if( mdate() < p_subpic->begin_date )
{
+ /* not yet, see you later */
break;
}
if( mdate() > p_subpic->end_date )
vout_DestroySubPicture( p_vout, p_subpic );
break;
}
- vout_RenderSPU( p_vout, p_subpic );
+ vout_RenderSPU( &p_vout->p_buffer[ p_vout->i_buffer_index ],
+ p_subpic, p_vout->i_bytes_per_pixel,
+ p_vout->i_bytes_per_line );
break;
case TEXT_SUBPICTURE: /* single line text */
/* Select default font if not specified */