summaryrefslogtreecommitdiffstats
path: root/sub/sub.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2012-09-28 21:48:30 +0200
committerwm4 <wm4@nowhere>2012-10-16 07:26:30 +0200
commit5fc5ae752bfaa6bddf76aa1912b4b9724578f5dd (patch)
tree109fe6a200877e1388f7d8b69c85d4ae84e96fc5 /sub/sub.c
parent3365514951e9c07ec3a21bb3898e5796c214f8b7 (diff)
downloadmpv-5fc5ae752bfaa6bddf76aa1912b4b9724578f5dd.tar.bz2
mpv-5fc5ae752bfaa6bddf76aa1912b4b9724578f5dd.tar.xz
sub: allow converting DVD subs to RGBA
The mplayer DVD sub decoder is the only remaining OSD image producer that still requires the old mplayer OSD format (SUBBITMAP_OLD_PLANAR). To make supporting this format optional in VOs, add a step that allows converting these images to RGBA in case the VO doesn't have direct support for it. Note: the mplayer DVD sub decoder uses the old mplayer OSD format (SUBBITMAP_OLD_PLANAR), which is assumed to use premultiplied alpha. However, it seems DVDs allow only binary transparency, so the rendered result will be the same.
Diffstat (limited to 'sub/sub.c')
-rw-r--r--sub/sub.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sub/sub.c b/sub/sub.c
index 3f1b08c185..182215310f 100644
--- a/sub/sub.c
+++ b/sub/sub.c
@@ -210,6 +210,10 @@ static bool render_object(struct osd_state *osd, struct osd_object *obj,
cached |= osd_conv_old_p_to_old(obj->cache[1], out_imgs);
}
+ if (formats[SUBBITMAP_RGBA] && out_imgs->format == SUBBITMAP_OLD_PLANAR) {
+ cached |= osd_conv_old_p_to_rgba(obj->cache[2], out_imgs);
+ }
+
if (cached)
obj->cached = *out_imgs;