summaryrefslogtreecommitdiffstats
path: root/sub
diff options
context:
space:
mode:
Diffstat (limited to 'sub')
-rw-r--r--sub/sub.c9
-rw-r--r--sub/sub.h3
2 files changed, 11 insertions, 1 deletions
diff --git a/sub/sub.c b/sub/sub.c
index 880793373c..efe648948c 100644
--- a/sub/sub.c
+++ b/sub/sub.c
@@ -1239,9 +1239,18 @@ struct osd_state *osd_create(void)
#ifdef CONFIG_FREETYPE
force_load_font = 1;
#endif
+ osd_set_text(osd, NULL);
return osd;
}
+void osd_set_text(struct osd_state *osd, const char *text) {
+ talloc_free(osd->osd_text);
+ //osd->text must never be NULL
+ if (!text)
+ text = "";
+ osd->osd_text = talloc_strdup(osd, text);
+}
+
int vo_osd_changed_flag=0;
void osd_remove_text(struct osd_state *osd, int dxs, int dys,
diff --git a/sub/sub.h b/sub/sub.h
index 30a7919aa1..e7ded2556a 100644
--- a/sub/sub.h
+++ b/sub/sub.h
@@ -72,7 +72,7 @@ struct osd_state {
struct ass_library *ass_library;
// flag to signal reinitialization due to ass-related option changes
bool ass_force_reload;
- unsigned char osd_text[128];
+ char *osd_text;
struct font_desc *sub_font;
struct ass_track *ass_track;
bool ass_track_changed;
@@ -148,6 +148,7 @@ 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);
+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);
int vo_osd_check_range_update(int,int,int,int);