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.h | |
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.h')
-rw-r--r-- | libass/ass.h | 59 |
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 |