summaryrefslogtreecommitdiffstats
path: root/sub/sub.c
diff options
context:
space:
mode:
Diffstat (limited to 'sub/sub.c')
-rw-r--r--sub/sub.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/sub/sub.c b/sub/sub.c
index a5ff9e2593..0e297e3bf8 100644
--- a/sub/sub.c
+++ b/sub/sub.c
@@ -202,13 +202,23 @@ static void render_object(struct osd_state *osd, struct osd_object *obj,
if (formats[SUBBITMAP_RGBA] && out_imgs->format == SUBBITMAP_INDEXED)
cached |= osd_conv_idx_to_rgba(obj->cache[1], out_imgs);
- if (out_imgs->format == SUBBITMAP_RGBA && opts->sub_gauss != 0.0f)
+ if (formats[SUBBITMAP_RGBA_STR] && out_imgs->format == SUBBITMAP_INDEXED)
+ cached |= osd_conv_idx_to_rgba_str(obj->cache[1], out_imgs);
+
+ if ((out_imgs->format == SUBBITMAP_RGBA ||
+ out_imgs->format == SUBBITMAP_RGBA_STR)
+ && opts->sub_gauss != 0.0f)
+ {
cached |= osd_conv_blur_rgba(obj->cache[2], out_imgs, opts->sub_gauss);
+ }
// Do this conversion last to not trigger gauss blurring for ASS
if (formats[SUBBITMAP_RGBA] && out_imgs->format == SUBBITMAP_LIBASS)
cached |= osd_conv_ass_to_rgba(obj->cache[3], out_imgs);
+ if (formats[SUBBITMAP_RGBA_STR] && out_imgs->format == SUBBITMAP_LIBASS)
+ cached |= osd_conv_ass_to_rgba_str(obj->cache[3], out_imgs);
+
if (cached)
obj->cached = *out_imgs;
}