]> git.sesse.net Git - vlc/commitdiff
quartztext: fix relative font size handling
authorFelix Paul Kühne <fkuehne@videolan.org>
Sun, 4 Aug 2013 17:50:19 +0000 (19:50 +0200)
committerFelix Paul Kühne <fkuehne@videolan.org>
Wed, 11 Sep 2013 16:12:37 +0000 (18:12 +0200)
modules/text_renderer/quartztext.c

index 4b25caa10ba4a40b8433c8588c6e9e3fa43afe4e..eb5da4aacaaf25d9de0ee7270b5ce05818d6c631 100644 (file)
@@ -205,7 +205,7 @@ static int Create(vlc_object_t *p_this)
     p_sys->psz_font_name  = var_CreateGetString(p_this, "quartztext-font");
     p_sys->i_font_opacity = 255;
     p_sys->i_font_color = VLC_CLIP(var_CreateGetInteger(p_this, "quartztext-color") , 0, 0xFFFFFF);
-    p_sys->i_font_size    = GetFontSize(p_filter);
+    p_sys->i_font_size = GetFontSize(p_filter);
 
     p_filter->pf_render_text = RenderText;
     p_filter->pf_render_html = RenderHtml;
@@ -317,7 +317,7 @@ static int RenderText(filter_t *p_filter, subpicture_region_t *p_region_out,
     b_bold = b_uline = b_italic = FALSE;
     VLC_UNUSED(p_chroma_list);
 
-    p_sys->i_font_size    = GetFontSize(p_filter);
+    p_sys->i_font_size = GetFontSize(p_filter);
 
     // Sanity check
     if (!p_region_in || !p_region_out)
@@ -950,7 +950,18 @@ static offscreen_bitmap_t *Compose(int i_text_align,
 
 static int GetFontSize(filter_t *p_filter)
 {
-    return p_filter->fmt_out.video.i_height / DEFAULT_REL_FONT_SIZE;
+    int i_size = 0;
+
+    int i_ratio = var_CreateGetInteger( p_filter, "quartztext-rel-fontsize" );
+    if( i_ratio > 0 )
+        i_size = (int)p_filter->fmt_out.video.i_height / i_ratio;
+
+    if( i_size <= 0 )
+    {
+        msg_Warn( p_filter, "invalid fontsize, using 12" );
+        i_size = 12;
+    }
+    return i_size;
 }
 
 static int RenderYUVA(filter_t *p_filter, subpicture_region_t *p_region,