diff options
author | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-10-28 15:07:18 +0000 |
---|---|---|
committer | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-10-28 15:07:18 +0000 |
commit | efea99c2c9e8ea1f5a96a1cb86aa30ef05b6b828 (patch) | |
tree | d51dab1b5c89a9d2b15e52cdcc987c2d71f7ae44 /libass/ass_library.c | |
parent | a383ad29ea73bb4383d088d04265ec53d931f257 (diff) | |
download | mpv-efea99c2c9e8ea1f5a96a1cb86aa30ef05b6b828.tar.bz2 mpv-efea99c2c9e8ea1f5a96a1cb86aa30ef05b6b828.tar.xz |
Libass interface reworked:
- ass_instance_t renamed to ass_renderer_t
- ass_library_t introduced
- use of mplayer-specific global variables limited to ass_mp.c
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20493 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libass/ass_library.c')
-rw-r--r-- | libass/ass_library.c | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/libass/ass_library.c b/libass/ass_library.c new file mode 100644 index 0000000000..f728aefbee --- /dev/null +++ b/libass/ass_library.c @@ -0,0 +1,72 @@ +// -*- c-basic-offset: 8; indent-tabs-mode: t -*- +// vim:ts=8:sw=8:noet:ai: +/* + Copyright (C) 2006 Evgeniy Stepanov <eugeni.stepanov@gmail.com> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include <inttypes.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "ass.h" +#include "ass_library.h" + + +ass_library_t* ass_library_init(void) +{ + return calloc(1, sizeof(ass_library_t)); +} + +void ass_library_done(ass_library_t* priv) +{ + if (priv) free(priv); +} + +void ass_set_fonts_dir(ass_library_t* priv, const char* fonts_dir) +{ + if (priv->fonts_dir) + free(priv->fonts_dir); + + priv->fonts_dir = fonts_dir ? strdup(fonts_dir) : 0; +} + +void ass_set_extract_fonts(ass_library_t* priv, int extract) +{ + priv->extract_fonts = !!extract; +} + +void ass_set_style_overrides(ass_library_t* priv, char** list) +{ + char** p; + char** q; + int cnt; + + if (priv->style_overrides) { + for (p = priv->style_overrides; *p; ++p) + free(*p); + free(priv->style_overrides); + } + + if (!list) return; + + for (p = list, cnt = 0; *p; ++p, ++cnt) {} + + priv->style_overrides = malloc(cnt * sizeof(char*)); + for (p = list, q = priv->style_overrides; *p; ++p, ++q) + *q = strdup(*p); +} |