diff options
Diffstat (limited to 'sub/sub.c')
-rw-r--r-- | sub/sub.c | 12 |
1 files changed, 11 insertions, 1 deletions
@@ -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; } |