summaryrefslogtreecommitdiffstats
path: root/libass/ass.h
diff options
context:
space:
mode:
authoreugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-10-28 15:07:18 +0000
committereugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-10-28 15:07:18 +0000
commitefea99c2c9e8ea1f5a96a1cb86aa30ef05b6b828 (patch)
treed51dab1b5c89a9d2b15e52cdcc987c2d71f7ae44 /libass/ass.h
parenta383ad29ea73bb4383d088d04265ec53d931f257 (diff)
downloadmpv-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.h')
-rw-r--r--libass/ass.h59
1 files changed, 43 insertions, 16 deletions
diff --git a/libass/ass.h b/libass/ass.h
index d8942b9532..714089fbdd 100644
--- a/libass/ass.h
+++ b/libass/ass.h
@@ -23,8 +23,8 @@
#include "ass_types.h"
-/// Libass "library object". Contents are private.
-typedef struct ass_instance_s ass_instance_t;
+/// Libass renderer object. Contents are private.
+typedef struct ass_renderer_s ass_renderer_t;
/// a linked list of images produced by ass renderer
typedef struct ass_image_s {
@@ -41,20 +41,47 @@ typedef struct ass_image_s {
* \brief initialize the library
* \return library handle or NULL if failed
*/
-ass_instance_t* ass_init(void);
+ass_library_t* ass_library_init(void);
/**
* \brief finalize the library
* \param priv library handle
*/
-void ass_done(ass_instance_t* priv);
+void ass_library_done(ass_library_t*);
-void ass_set_frame_size(ass_instance_t* priv, int w, int h);
-void ass_set_margins(ass_instance_t* priv, int t, int b, int l, int r);
-void ass_set_use_margins(ass_instance_t* priv, int use);
-void ass_set_aspect_ratio(ass_instance_t* priv, double ar);
-void ass_set_font_scale(ass_instance_t* priv, double font_scale);
-int ass_set_fonts(ass_instance_t* priv, const char* fonts_dir, const char* default_font, const char* default_family);
+/**
+ * \brief set private font directory
+ * It is used for saving embedded fonts and also in font lookup.
+ */
+void ass_set_fonts_dir(ass_library_t* priv, const char* fonts_dir);
+
+void ass_set_extract_fonts(ass_library_t* priv, int extract);
+
+void ass_set_style_overrides(ass_library_t* priv, char** list);
+
+/**
+ * \brief initialize the renderer
+ * \param priv library handle
+ * \return renderer handle or NULL if failed
+ */
+ass_renderer_t* ass_renderer_init(ass_library_t*);
+
+/**
+ * \brief finalize the renderer
+ * \param priv renderer handle
+ */
+void ass_renderer_done(ass_renderer_t* priv);
+
+void ass_set_frame_size(ass_renderer_t* priv, int w, int h);
+void ass_set_margins(ass_renderer_t* priv, int t, int b, int l, int r);
+void ass_set_use_margins(ass_renderer_t* priv, int use);
+void ass_set_aspect_ratio(ass_renderer_t* priv, double ar);
+void ass_set_font_scale(ass_renderer_t* priv, double font_scale);
+
+/**
+ * \brief set font lookup defaults
+ */
+int ass_set_fonts(ass_renderer_t* priv, const char* default_font, const char* default_family);
/**
* \brief render a frame, producing a list of ass_image_t
@@ -62,16 +89,16 @@ int ass_set_fonts(ass_instance_t* priv, const char* fonts_dir, const char* defa
* \param track subtitle track
* \param now video timestamp in milliseconds
*/
-ass_image_t* ass_render_frame(ass_instance_t *priv, ass_track_t* track, long long now);
+ass_image_t* ass_render_frame(ass_renderer_t *priv, ass_track_t* track, long long now);
-// The following functions operate on track objects and do not need an ass_instance //
+// The following functions operate on track objects and do not need an ass_renderer //
/**
* \brief allocate a new empty track object
* \return pointer to empty track
*/
-ass_track_t* ass_new_track(void);
+ass_track_t* ass_new_track(ass_library_t*);
/**
* \brief deallocate track and all its child objects (styles and events)
@@ -132,13 +159,13 @@ void ass_process_chunk(ass_track_t* track, char *data, int size, long long timec
* \param fname file name
* \return newly allocated track
*/
-ass_track_t* ass_read_file(char* fname);
+ass_track_t* ass_read_file(ass_library_t* library, char* fname, char* codepage);
/**
* \brief read styles from file into already initialized track
* \return 0 on success
*/
-int ass_read_styles(ass_track_t* track, char* fname);
+int ass_read_styles(ass_track_t* track, char* fname, char* codepage);
/**
* \brief Process embedded matroska font. Saves it to ~/.mplayer/fonts.
@@ -146,7 +173,7 @@ int ass_read_styles(ass_track_t* track, char* fname);
* \param data binary font data
* \param data_size data size
*/
-void ass_process_font(const char* name, char* data, int data_size);
+void ass_process_font(ass_library_t* library, const char* name, char* data, int data_size);
/**
* \brief Calculates timeshift from now to the start of some other subtitle event, depending on movement parameter