Logo: thread safety fix
authorRémi Denis-Courmont <remi@remlab.net>
Tue, 19 May 2009 17:29:10 +0000 (20:29 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Tue, 19 May 2009 17:59:07 +0000 (20:59 +0300)
There are still bugs. At least posx, posy, pos and b_need_update are not
protected properly, but I don't have time.

modules/video_filter/logo.c

index ba2152b..bdc988d 100644 (file)
@@ -704,6 +704,9 @@ static int CreateFilter( vlc_object_t *p_this )
     p_logo_list->i_repeat =
         var_CreateGetIntegerCommand( p_filter, "logo-repeat" );
 
+    vlc_mutex_init( &p_logo_list->lock );
+    LoadLogoList( p_this, p_logo_list );
+
     var_AddCallback( p_filter, "logo-file", LogoCallback, p_sys );
     var_AddCallback( p_filter, "logo-x", LogoCallback, p_sys );
     var_AddCallback( p_filter, "logo-y", LogoCallback, p_sys );
@@ -711,13 +714,6 @@ static int CreateFilter( vlc_object_t *p_this )
     var_AddCallback( p_filter, "logo-transparency", LogoCallback, p_sys );
     var_AddCallback( p_filter, "logo-repeat", LogoCallback, p_sys );
 
-    vlc_mutex_init( &p_logo_list->lock );
-    vlc_mutex_lock( &p_logo_list->lock );
-
-    LoadLogoList( p_this, p_logo_list );
-
-    vlc_mutex_unlock( &p_logo_list->lock );
-
     /* Misc init */
     p_filter->pf_sub_filter = Filter;
     p_sys->b_need_update = true;