summaryrefslogtreecommitdiffstats
path: root/libass/ass_library.c
diff options
context:
space:
mode:
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 1928e4361c..cb8152e9ba 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 ++;
+}
+