[vlc-devel] [PATCH 10/11] Add support for font height as a percentage of the video height

Devin Heitmueller dheitmueller at kernellabs.com
Thu Dec 27 07:08:22 CET 2012


In order to get consistent EIA-608 caption positioning, we need to be able
to size the fonts based on the size of the video.  Add support for
specifying the font height as a percentage of the video.
---
 modules/codec/cc.c       |    1 +
 modules/codec/substext.h |   13 +++++++++++++
 2 files changed, 14 insertions(+)

diff --git a/modules/codec/cc.c b/modules/codec/cc.c
index 7e5bbca..4329c1c 100644
--- a/modules/codec/cc.c
+++ b/modules/codec/cc.c
@@ -336,6 +336,7 @@ static subpicture_t *Subtitle( decoder_t *p_dec, char *psz_subtitle, char *psz_h
     p_spu_sys->align = SUBPICTURE_ALIGN_TOP | SUBPICTURE_ALIGN_LEFT;
     p_spu_sys->text  = psz_subtitle;
     p_spu_sys->html  = psz_html;
+    p_spu_sys->i_font_height_percent = 5;
 
     return p_spu;
 }
diff --git a/modules/codec/substext.h b/modules/codec/substext.h
index df9779c..68e6c61 100644
--- a/modules/codec/substext.h
+++ b/modules/codec/substext.h
@@ -5,6 +5,7 @@ struct subpicture_updater_sys_t {
     int  align;
     int  x;
     int  y;
+    int  i_font_height_percent;
 
     bool is_fixed;
     int  fixed_width;
@@ -80,6 +81,18 @@ static void SubpictureTextUpdate(subpicture_t *subpic,
         r->i_x = sys->x * fmt_dst->i_width  / sys->fixed_width;
         r->i_y = sys->y * fmt_dst->i_height / sys->fixed_height;
     }
+
+    if (sys->i_font_height_percent != 0)
+    {
+        r->p_style = text_style_New();
+        if (r->p_style)
+        {
+	    r->p_style->i_font_size = sys->i_font_height_percent *
+	      subpic->i_original_picture_height / 100;
+            r->p_style->i_font_color = 0xffffff;
+            r->p_style->i_font_alpha = 0xff;
+	}
+    }
 }
 static void SubpictureTextDestroy(subpicture_t *subpic)
 {
-- 
1.7.9.5




More information about the vlc-devel mailing list