diff options
author | wm4 <wm4@nowhere> | 2012-10-02 00:25:06 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2012-10-16 07:26:31 +0200 |
commit | 42572fdcc0931f814147974a11bc2c531843d124 (patch) | |
tree | 99b5fa253d68f14ff007296649f35ec4a4306d3e | |
parent | 252ddcc014b7672a4434823fc6275be1b039bd79 (diff) | |
download | mpv-42572fdcc0931f814147974a11bc2c531843d124.tar.bz2 mpv-42572fdcc0931f814147974a11bc2c531843d124.tar.xz |
sub, vo_gl3, vo_vdpau: exit early if there are no sub-images to draw
libass may always return a full change if no subtitle images are
rendered in some cases (empty tracks). Also, a full change despite empty
sub-images list may be reported on initialization. Avoid invoking odd
special cases in the VO code by always exiting early if the sub-image
list is empty.
Note that at least for OSD, the code in sub.c doesn't even send a
request VOCTRL_DRAW_EOSD if the image list is empty. But the subtitle
rendering code in vf_vo.c is independent from this (at least for now).
-rw-r--r-- | libvo/vo_gl3.c | 2 | ||||
-rw-r--r-- | libvo/vo_vdpau.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/libvo/vo_gl3.c b/libvo/vo_gl3.c index 2af63700b4..03d04b7038 100644 --- a/libvo/vo_gl3.c +++ b/libvo/vo_gl3.c @@ -1419,7 +1419,7 @@ static void gen_eosd(struct gl_priv *p, struct osd_render *osd, osd->num_vertices = 0; - if (imgs->format == SUBBITMAP_EMPTY) + if (imgs->format == SUBBITMAP_EMPTY || imgs->num_parts == 0) return; bool need_upload = imgs->bitmap_id != osd->bitmap_id; diff --git a/libvo/vo_vdpau.c b/libvo/vo_vdpau.c index 41feaca7b6..14b9d0df63 100644 --- a/libvo/vo_vdpau.c +++ b/libvo/vo_vdpau.c @@ -997,7 +997,7 @@ static void generate_eosd(struct vo *vo, mp_eosd_images_t *imgs) sfc->render_count = 0; - if (imgs->format == SUBBITMAP_EMPTY) + if (imgs->format == SUBBITMAP_EMPTY || imgs->num_parts == 0) return; if (imgs->bitmap_id == sfc->bitmap_id) |