summaryrefslogtreecommitdiffstats
path: root/libass/ass_library.c
diff options
context:
space:
mode:
authoreugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-12-03 17:59:13 +0000
committereugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-12-03 17:59:13 +0000
commit42f148ad6df836a2e6a83c447a7e50bb390608ae (patch)
treeaa6fd5d479d339341e84366e020bf9dd6434724b /libass/ass_library.c
parentf42b7ecef4f291847b8c813d8ec160fd2c316e73 (diff)
downloadlibass-42f148ad6df836a2e6a83c447a7e50bb390608ae.tar.bz2
libass-42f148ad6df836a2e6a83c447a7e50bb390608ae.tar.xz
Keep embedded fonts in ass_library_t and perform actual disk write
in fontconfig initialization. This is required for some fontconfig-related improvements. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21474 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libass/ass_library.c')
-rw-r--r--libass/ass_library.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/libass/ass_library.c b/libass/ass_library.c
index 1928e43..cb8152e 100644
--- a/libass/ass_library.c
+++ b/libass/ass_library.c
@@ -71,3 +71,19 @@ void ass_set_style_overrides(ass_library_t* priv, char** list)
*q = strdup(*p);
priv->style_overrides[cnt] = NULL;
}
+
+static void grow_array(void **array, int nelem, size_t elsize)
+{
+ if (!(nelem & 31))
+ *array = realloc(*array, (nelem + 32) * elsize);
+}
+
+void ass_add_font(ass_library_t* priv, char* name, char* data, int size)
+{
+ grow_array((void**)&priv->fontdata, priv->num_fontdata, sizeof(*priv->fontdata));
+ priv->fontdata[priv->num_fontdata].name = name;
+ priv->fontdata[priv->num_fontdata].data = data;
+ priv->fontdata[priv->num_fontdata].size = size;
+ priv->num_fontdata ++;
+}
+