diff options
author | wm4 <wm4@nowhere> | 2012-09-28 21:48:30 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2012-10-16 07:26:30 +0200 |
commit | 5fc5ae752bfaa6bddf76aa1912b4b9724578f5dd (patch) | |
tree | 109fe6a200877e1388f7d8b69c85d4ae84e96fc5 /sub/sub.c | |
parent | 3365514951e9c07ec3a21bb3898e5796c214f8b7 (diff) | |
download | mpv-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.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -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; |