summaryrefslogtreecommitdiffstats
path: root/sub/sub.c
diff options
context:
space:
mode:
Diffstat (limited to 'sub/sub.c')
-rw-r--r--sub/sub.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/sub/sub.c b/sub/sub.c
index 39cb32e488..b37ec07747 100644
--- a/sub/sub.c
+++ b/sub/sub.c
@@ -176,11 +176,6 @@ static bool render_object(struct osd_state *osd, struct osd_object *obj,
//spudec_get_bitmap(vo_spudec, osd->res.w, osd->res.h, out_imgs);
spudec_get_indexed(vo_spudec, &osd->res, out_imgs);
}
- // Normal change-detection (sub. dec. calls vo_osd_changed(OSDTYPE_SPU))
- if (obj->force_redraw) {
- out_imgs->bitmap_id++;
- out_imgs->bitmap_pos_id++;
- }
} else if (obj->type == OSDTYPE_SUB) {
struct sub_render_params p = *sub_params;
if (p.pts != MP_NOPTS_VALUE)
@@ -190,6 +185,11 @@ static bool render_object(struct osd_state *osd, struct osd_object *obj,
osd_object_get_bitmaps(osd, obj, out_imgs);
}
+ if (obj->force_redraw) {
+ out_imgs->bitmap_id++;
+ out_imgs->bitmap_pos_id++;
+ }
+
obj->force_redraw = false;
obj->vo_bitmap_id += out_imgs->bitmap_id;
obj->vo_bitmap_pos_id += out_imgs->bitmap_pos_id;
@@ -197,8 +197,7 @@ static bool render_object(struct osd_state *osd, struct osd_object *obj,
if (out_imgs->num_parts == 0)
return false;
- if (out_imgs->bitmap_id == 0 && out_imgs->bitmap_pos_id == 0
- && obj->cached.bitmap_id == obj->vo_bitmap_id
+ if (obj->cached.bitmap_id == obj->vo_bitmap_id
&& obj->cached.bitmap_pos_id == obj->vo_bitmap_pos_id
&& formats[obj->cached.format])
{