[vlc-devel] [PATCH] FreeType: Create() must lock before calling	non-thread-safe FontContfig.
    Jerome Forissier 
    jerome at taodyne.com
       
    Thu Jan 31 09:41:33 CET 2013
    
    
  
Fixes frequent crashes observed when starting simultaneous playback of
several videos.
---
modules/text_renderer/freetype.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/modules/text_renderer/freetype.c b/modules/text_renderer/freetype.c
index 622bb11..17a03e7 100644
--- a/modules/text_renderer/freetype.c
+++ b/modules/text_renderer/freetype.c
@@ -2711,6 +2711,9 @@ static int Create( vlc_object_t *p_this )
    p_sys->psz_fontfamily = psz_fontfamily;
#ifdef HAVE_STYLES
#ifdef HAVE_FONTCONFIG
+    static vlc_mutex_t fontconfig_lock = VLC_STATIC_MUTEX;
+    vlc_mutex_lock(&fontconfig_lock);
+
    FontConfig_BuildCache( p_filter );
    /* */
@@ -2789,6 +2792,9 @@ static int Create( vlc_object_t *p_this )
#ifdef HAVE_STYLES
    free( psz_fontfile );
+#ifdef HAVE_FONTCONFIG
+    vlc_mutex_unlock(&fontconfig_lock);
+#endif
#endif
    return VLC_SUCCESS;
@@ -2798,6 +2804,9 @@ error:
    if( p_sys->p_library ) FT_Done_FreeType( p_sys->p_library );
#ifdef HAVE_STYLES
    free( psz_fontfile );
+#ifdef HAVE_FONTCONFIG
+    vlc_mutex_unlock(&fontconfig_lock);
+#endif
#endif
    free( psz_fontfamily );
    free( p_sys );
-- 
1.8.1.2
    
    
More information about the vlc-devel
mailing list