- /* Update the input */
- if( p_intf->p_sys->p_input == NULL )
- {
- PL_LOCK;
- p_intf->p_sys->p_input = p_playlist->p_input;
- if( p_intf->p_sys->p_input )
- vlc_object_yield( p_intf->p_sys->p_input );
- PL_UNLOCK;
- }
- else if( p_intf->p_sys->p_input->b_dead )
- {
- vlc_object_release( p_intf->p_sys->p_input );
- p_intf->p_sys->p_input = NULL;
- }
- p_input = p_intf->p_sys->p_input;
-
- /* Update the vout */
- p_last_vout = p_intf->p_sys->p_vout;
- if( p_vout == NULL )
- {
- p_vout = vlc_object_find( p_intf, VLC_OBJECT_VOUT, FIND_ANYWHERE );
- p_intf->p_sys->p_vout = p_vout;
- }
- else if( p_vout->b_die )
- {
- vlc_object_release( p_vout );
- p_vout = NULL;
- p_intf->p_sys->p_vout = NULL;
- }
-
- /* Register OSD channels */
- if( p_vout && p_vout != p_last_vout )
- {
- for( i = 0; i < CHANNELS_NUMBER; i++ )
- {
- spu_Control( p_vout->p_spu, SPU_CHANNEL_REGISTER,
- &p_intf->p_sys->p_channels[ i ] );
- }
- }
-