summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrigori Goronzy <greg@blackbox>2009-06-29 04:17:24 +0200
committerGrigori Goronzy <greg@blackbox>2009-06-29 04:27:43 +0200
commit1f176b7645318ec5d3f0e2dee81986b14eb8f1c2 (patch)
treee9bb3ea49400f22abb8531318552956edc3c6b09
parent4aec4ab7b705535859d91fe0df562ec9679a7d40 (diff)
downloadlibass-1f176b7645318ec5d3f0e2dee81986b14eb8f1c2.tar.bz2
libass-1f176b7645318ec5d3f0e2dee81986b14eb8f1c2.tar.xz
Handle conflicting \t time intervals
If end <= start for a time interval specification, set end to the end of the event. VSFilter handles it like that, too.
-rw-r--r--libass/ass_render.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c
index c779f3b..86dfd3d 100644
--- a/libass/ass_render.c
+++ b/libass/ass_render.c
@@ -1269,11 +1269,11 @@ static char *parse_tag(ass_renderer_t *render_priv, char *p, double pwr)
}
if (cnt == 3) {
v1 = v[0];
- v2 = v[1];
+ v2 = (v[1] <= v1) ? render_priv->state.event->Duration : v[1];
v3 = v[2];
} else if (cnt == 2) {
v1 = v[0];
- v2 = v[1];
+ v2 = (v[1] <= v1) ? render_priv->state.event->Duration : v[1];
v3 = 1.;
} else if (cnt == 1) {
v1 = 0;