summaryrefslogtreecommitdiffstats
path: root/sub/sub.h
diff options
context:
space:
mode:
Diffstat (limited to 'sub/sub.h')
-rw-r--r--sub/sub.h40
1 files changed, 39 insertions, 1 deletions
diff --git a/sub/sub.h b/sub/sub.h
index 081834e3bb..502e1344d3 100644
--- a/sub/sub.h
+++ b/sub/sub.h
@@ -66,19 +66,24 @@ typedef struct mp_osd_obj_s {
int allocated;
unsigned char *alpha_buffer;
unsigned char *bitmap_buffer;
+
+ struct ass_track *osd_track;
} mp_osd_obj_t;
struct osd_state {
struct ass_library *ass_library;
// flag to signal reinitialization due to ass-related option changes
bool ass_force_reload;
+ int w, h;
char *osd_text;
+ struct ass_renderer *osd_render;
struct font_desc *sub_font;
struct ass_track *ass_track;
double pts;
double sub_offset;
bool ass_track_changed;
bool vsfilter_aspect;
+ struct MPOpts *opts;
};
#include "subreader.h"
@@ -133,6 +138,22 @@ extern int spu_alignment;
extern int spu_aamode;
extern float spu_gaussvar;
+extern char *subtitle_font_encoding;
+extern float text_font_scale_factor;
+extern float osd_font_scale_factor;
+extern float subtitle_font_radius;
+extern float subtitle_font_thickness;
+extern int subtitle_autoscale;
+
+extern char *font_name;
+extern char *sub_font_name;
+extern float font_factor;
+extern float sub_delay;
+extern float sub_fps;
+
+extern int font_fontconfig;
+extern int sub_justify;
+
void osd_draw_text(struct osd_state *osd, int dxs, int dys,
void (*draw_alpha)(void *ctx, int x0, int y0, int w, int h,
unsigned char* src, unsigned char *srca,
@@ -149,10 +170,11 @@ void osd_draw_text_ext(struct osd_state *osd, int dxs, int dys,
void osd_remove_text(struct osd_state *osd, int dxs, int dys,
void (*remove)(int x0, int y0, int w, int h));
-struct osd_state *osd_create(void);
+struct osd_state *osd_create(struct MPOpts *opts, struct ass_library *asslib);
void osd_set_text(struct osd_state *osd, const char *text);
int osd_update(struct osd_state *osd, int dxs, int dys);
int vo_osd_changed(int new_value);
+void vo_osd_resized(void);
int vo_osd_check_range_update(int,int,int,int);
void osd_free(struct osd_state *osd);
@@ -170,4 +192,20 @@ void osd_set_nav_box (uint16_t sx, uint16_t sy, uint16_t ex, uint16_t ey);
#define vo_remove_text(...) osd_remove_text(global_osd, __VA_ARGS__)
#endif
+// used only by osd_ft.c or osd_libass.c
+void osd_alloc_buf(mp_osd_obj_t* obj);
+void draw_alpha_buf(mp_osd_obj_t* obj, int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride);
+void vo_draw_text_from_buffer(mp_osd_obj_t* obj,void (*draw_alpha)(void *ctx, int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride), void *ctx);
+
+// defined in osd_ft.c or osd_libass.c
+void vo_update_text_osd(struct osd_state *osd, mp_osd_obj_t *obj);
+void vo_update_text_teletext(struct osd_state *osd, mp_osd_obj_t *obj);
+void vo_update_text_progbar(struct osd_state *osd, mp_osd_obj_t *obj);
+void vo_update_text_sub(struct osd_state *osd, mp_osd_obj_t *obj);
+void osd_get_function_sym(char *buffer, size_t buffer_size, int osd_function);
+void osd_font_invalidate(void);
+void osd_font_load(struct osd_state *osd);
+void osd_init_backend(struct osd_state *osd);
+void osd_destroy_backend(struct osd_state *osd);
+
#endif /* MPLAYER_SUB_H */