summaryrefslogtreecommitdiffstats
path: root/sub
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-07-15 01:49:02 +0200
committerwm4 <wm4@nowhere>2014-07-15 01:49:02 +0200
commit23a7257cca5982fa44300825ea489ba95a7e4c17 (patch)
tree5c03e6b1e0127d2e6b72fa168ea0dce8294ca122 /sub
parent4b93210e0c244a65ef10a566abed2ad25ecaf9a1 (diff)
downloadmpv-23a7257cca5982fa44300825ea489ba95a7e4c17.tar.bz2
mpv-23a7257cca5982fa44300825ea489ba95a7e4c17.tar.xz
Revert "Remove DVD and Bluray support"
This reverts commit 4b93210e0c244a65ef10a566abed2ad25ecaf9a1. *shrug*
Diffstat (limited to 'sub')
-rw-r--r--sub/osd.c11
-rw-r--r--sub/osd.h8
2 files changed, 19 insertions, 0 deletions
diff --git a/sub/osd.c b/sub/osd.c
index 3a3c8b6c25..e88df98afe 100644
--- a/sub/osd.c
+++ b/sub/osd.c
@@ -206,6 +206,14 @@ void osd_set_external2(struct osd_state *osd, struct sub_bitmaps *imgs)
pthread_mutex_unlock(&osd->lock);
}
+void osd_set_nav_highlight(struct osd_state *osd, void *priv)
+{
+ pthread_mutex_lock(&osd->lock);
+ osd->objs[OSDTYPE_NAV_HIGHLIGHT]->highlight_priv = priv;
+ osd_changed_unlocked(osd, OSDTYPE_NAV_HIGHLIGHT);
+ pthread_mutex_unlock(&osd->lock);
+}
+
static void render_object(struct osd_state *osd, struct osd_object *obj,
struct mp_osd_res res, double video_pts,
const bool sub_formats[SUBBITMAP_COUNT],
@@ -239,6 +247,9 @@ static void render_object(struct osd_state *osd, struct osd_object *obj,
*out_imgs = *obj->external2;
obj->external2->bitmap_id = obj->external2->bitmap_pos_id = 0;
}
+ } else if (obj->type == OSDTYPE_NAV_HIGHLIGHT) {
+ if (obj->highlight_priv)
+ mp_nav_get_highlight(obj->highlight_priv, obj->vo_res, out_imgs);
} else {
osd_object_get_bitmaps(osd, obj, out_imgs);
}
diff --git a/sub/osd.h b/sub/osd.h
index 97bc2f067d..2a5bf71b05 100644
--- a/sub/osd.h
+++ b/sub/osd.h
@@ -84,6 +84,8 @@ enum mp_osdtype {
OSDTYPE_SUB,
OSDTYPE_SUB2,
+ OSDTYPE_NAV_HIGHLIGHT, // dvdnav fake highlights
+
OSDTYPE_PROGBAR,
OSDTYPE_OSD,
@@ -172,6 +174,8 @@ void osd_set_external(struct osd_state *osd, int res_x, int res_y, char *text);
void osd_set_external2(struct osd_state *osd, struct sub_bitmaps *imgs);
+void osd_set_nav_highlight(struct osd_state *osd, void *priv);
+
enum mp_osd_draw_flags {
OSD_DRAW_SUB_FILTER = (1 << 0),
OSD_DRAW_SUB_ONLY = (1 << 1),
@@ -220,4 +224,8 @@ void osd_get_function_sym(char *buffer, size_t buffer_size, int osd_function);
void osd_object_get_resolution(struct osd_state *osd, int obj,
int *out_w, int *out_h);
+// defined in player
+void mp_nav_get_highlight(void *priv, struct mp_osd_res res,
+ struct sub_bitmaps *out_imgs);
+
#endif /* MPLAYER_SUB_H */