Commit 025c96ac authored by Felix Paul Kühne's avatar Felix Paul Kühne

the vout might still run after the playlist termination, so we don't want to...

the vout might still run after the playlist termination, so we don't want to use pl_Yield. Pointed by courmisch, thanks!
parent 8c16b6a8
...@@ -371,9 +371,13 @@ static int Manage( vout_thread_t *p_vout ) ...@@ -371,9 +371,13 @@ static int Manage( vout_thread_t *p_vout )
break; break;
case CACA_EVENT_QUIT: case CACA_EVENT_QUIT:
{ {
p_playlist = pl_Yield( p_vout ); p_playlist = vlc_object_find( p_vout,
playlist_Stop( p_playlist ); VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );
vlc_object_release( p_playlist ); if( p_playlist )
{
playlist_Stop( p_playlist );
vlc_object_release( p_playlist );
}
vlc_object_kill( p_vout->p_libvlc ); vlc_object_kill( p_vout->p_libvlc );
break; break;
} }
......
...@@ -2125,12 +2125,16 @@ static int WallpaperCallback( vlc_object_t *p_this, char const *psz_cmd, ...@@ -2125,12 +2125,16 @@ static int WallpaperCallback( vlc_object_t *p_this, char const *psz_cmd,
{ {
playlist_t *p_playlist; playlist_t *p_playlist;
p_playlist = pl_Yield( p_this ); p_playlist = vlc_object_find( p_this,
/* Modify playlist as well because the vout might have to be VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );
* restarted */ if( p_playlist )
var_Create( p_playlist, "directx-wallpaper", VLC_VAR_BOOL ); {
var_Set( p_playlist, "directx-wallpaper", newval ); /* Modify playlist as well because the vout might have to be
vlc_object_release( p_playlist ); * restarted */
var_Create( p_playlist, "directx-wallpaper", VLC_VAR_BOOL );
var_Set( p_playlist, "directx-wallpaper", newval );
vlc_object_release( p_playlist );
}
p_vout->p_sys->i_changes |= DX_WALLPAPER_CHANGE; p_vout->p_sys->i_changes |= DX_WALLPAPER_CHANGE;
} }
......
...@@ -77,11 +77,15 @@ static int Control( vout_thread_t *p_vout, int i_query, va_list args ); ...@@ -77,11 +77,15 @@ static int Control( vout_thread_t *p_vout, int i_query, va_list args );
static void DirectXPopupMenu( event_thread_t *p_event, bool b_open ) static void DirectXPopupMenu( event_thread_t *p_event, bool b_open )
{ {
playlist_t *p_playlist = pl_Yield( p_event ); playlist_t *p_playlist = vlc_object_find( p_event,
vlc_value_t val; VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );
val.b_bool = b_open; if( p_playlist )
var_Set( p_playlist, "intf-popupmenu", val ); {
vlc_object_release( p_playlist ); vlc_value_t val;
val.b_bool = b_open;
var_Set( p_playlist, "intf-popupmenu", val );
vlc_object_release( p_playlist );
}
} }
static int DirectXConvertKey( int i_key ); static int DirectXConvertKey( int i_key );
...@@ -866,9 +870,13 @@ static long FAR PASCAL DirectXEventProc( HWND hwnd, UINT message, ...@@ -866,9 +870,13 @@ static long FAR PASCAL DirectXEventProc( HWND hwnd, UINT message,
/* the user wants to close the window */ /* the user wants to close the window */
case WM_CLOSE: case WM_CLOSE:
{ {
playlist_t * p_playlist = pl_Yield( p_vout ); playlist_t * p_playlist = vlc_object_find( p_vout,
playlist_Stop( p_playlist ); VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );
vlc_object_release( p_playlist ); if( p_playlist )
{
playlist_Stop( p_playlist );
vlc_object_release( p_playlist );
}
return 0; return 0;
} }
......
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