<br><font size=2 face="sans-serif">Hi Jean-Paul,</font>
<br>
<br><font size=2 face="sans-serif">There isn't any technical need for the
fontbuilder thread to be launched before the init of Freetype - they can
go in either order, so I see no problem in applying your patch if it is
fixing a problem.</font>
<br><font size=2 face="sans-serif">I'm interested in why it could be creating
a problem though. The Fontconfig and Freetype stuff should be separate
and not touching each other, so it is probably something stupid that I'm
doing in the FontBuilder thread. I am using msg_Dbg(), msg_Err() in this
thread, and they pass through the filter object as the first argument (and
the same vlc object is still in use in the other thread). Would that be
doing it?</font>
<br>
<br><font size=2 face="sans-serif">Bitmap</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>Jean-Paul Saman <jean-paul.saman@planet.nl></b>
</font>
<br><font size=1 face="sans-serif">Sent by: vlc-devel-bounces@videolan.org</font>
<p><font size=1 face="sans-serif">03/10/2007 07:18 AM</font>
<table border>
<tr valign=top>
<td bgcolor=white>
<div align=center><font size=1 face="sans-serif">Please respond to<br>
Mailing list for VLC media player developers <vlc-devel@videolan.org></font></div></table>
<br>
<td width=59%>
<table width=100%>
<tr>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td valign=top><font size=1 face="sans-serif">"'developer'" <vlc-devel@videolan.org></font>
<tr>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td valign=top>
<tr>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td valign=top><font size=1 face="sans-serif">[vlc-devel] [RFC] freetype
and video-title-show crashes</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><font size=2><tt>Several people have mentioned a crash when the meta-name
is shown on <br>
start of the video. I believe it is due to loading of freetype2 text <br>
renderer when the fontpath doesn't exist.<br>
<br>
The freetype module starts another thread called FontBuilder and <br>
depending on timing this creates a crash or works allright. The attached
<br>
patch tries to load the font first before the FontBuilder thread is started.<br>
<br>
I was unable to reproduce the crash with the patch applied. Without the
<br>
patch the crash is reproducable.<br>
<br>
However I don't think the solution as presented in this patch is the <br>
correct one. Can someone with more knowledge (or one of the original <br>
authors) of the freetype text-renderer module suggest a better way of <br>
fixing this.<br>
<br>
One question comes to mind must the FontBuilder thread be ran first or
<br>
must freetype be initialized and the font loaded first?<br>
<br>
I hope for some helpfull comments.<br>
<br>
gtz,<br>
Jean-Paul Saman.<br>
Index: modules/misc/freetype.c<br>
===================================================================<br>
--- modules/misc/freetype.c          
      (revision 22367)<br>
+++ modules/misc/freetype.c          
      (working copy)<br>
@@ -334,6 +334,25 @@<br>
 #endif<br>
     }<br>
 <br>
+    i_error = FT_Init_FreeType( &p_sys->p_library );<br>
+    if( i_error )<br>
+    {<br>
+        msg_Err( p_filter, "couldn't initialize
freetype" );<br>
+        goto error;<br>
+    }<br>
+    i_error = FT_New_Face( p_sys->p_library, psz_fontfile
? psz_fontfile : "",<br>
+                    
      0, &p_sys->p_face );<br>
+    if( i_error == FT_Err_Unknown_File_Format )<br>
+    {<br>
+        msg_Err( p_filter, "file %s have unknown
format", psz_fontfile );<br>
+        goto error;<br>
+    }<br>
+    else if( i_error )<br>
+    {<br>
+        msg_Err( p_filter, "failed to load font
file %s", psz_fontfile );<br>
+        goto error;<br>
+    }<br>
+<br>
 #ifdef HAVE_FONTCONFIG<br>
     vlc_mutex_init( p_filter, &p_sys->fontconfig_lock
);<br>
     p_sys->b_fontconfig_ok = VLC_FALSE;<br>
@@ -366,25 +385,6 @@<br>
                    
        "Font styling won't be available."
);<br>
     }<br>
 #endif<br>
-    i_error = FT_Init_FreeType( &p_sys->p_library );<br>
-    if( i_error )<br>
-    {<br>
-        msg_Err( p_filter, "couldn't initialize
freetype" );<br>
-        goto error;<br>
-    }<br>
-    i_error = FT_New_Face( p_sys->p_library, psz_fontfile
? psz_fontfile : "",<br>
-                    
      0, &p_sys->p_face );<br>
-    if( i_error == FT_Err_Unknown_File_Format )<br>
-    {<br>
-        msg_Err( p_filter, "file %s have unknown
format", psz_fontfile );<br>
-        goto error;<br>
-    }<br>
-    else if( i_error )<br>
-    {<br>
-        msg_Err( p_filter, "failed to load font
file %s", psz_fontfile );<br>
-        goto error;<br>
-    }<br>
-<br>
     i_error = FT_Select_Charmap( p_sys->p_face, ft_encoding_unicode
);<br>
     if( i_error )<br>
     {<br>
_______________________________________________<br>
vlc-devel mailing list<br>
To unsubscribe or modify your subscription options:<br>
http://mailman.videolan.org/listinfo/vlc-devel<br>
</tt></font>
<br>