11 changed files with 519 additions and 387 deletions
File diff suppressed because it is too large
@ -0,0 +1,22 @@ |
|||||
|
--- a/Makefile.in
|
||||
|
+++ b/Makefile.in
|
||||
|
@@ -484,15 +484,15 @@
|
||||
|
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' |
||||
|
distcleancheck_listfiles = find . -type f -print |
||||
|
ABS_TAPSET_DIR = @ABS_TAPSET_DIR@ |
||||
|
-ACLOCAL = @ACLOCAL@
|
||||
|
+ACLOCAL = true
|
||||
|
ALLOCA = @ALLOCA@ |
||||
|
AMTAR = @AMTAR@ |
||||
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ |
||||
|
AR = @AR@ |
||||
|
AS = @AS@ |
||||
|
-AUTOCONF = @AUTOCONF@
|
||||
|
-AUTOHEADER = @AUTOHEADER@
|
||||
|
-AUTOMAKE = @AUTOMAKE@
|
||||
|
+AUTOCONF = true
|
||||
|
+AUTOHEADER = true
|
||||
|
+AUTOMAKE = true
|
||||
|
AWK = @AWK@ |
||||
|
CARBON_LIBS = @CARBON_LIBS@ |
||||
|
CATALOGS = @CATALOGS@ |
@ -0,0 +1,51 @@ |
|||||
|
--- a/libass/ass.c
|
||||
|
+++ b/libass/ass.c
|
||||
|
@@ -627,6 +627,26 @@
|
||||
|
"No event format found, using fallback"); |
||||
|
} |
||||
|
|
||||
|
+// we may get duplicate events from a rewinded stream ...
|
||||
|
+static int check_duplicate_event_adv(ASS_Track *track)
|
||||
|
+{
|
||||
|
+ int i, last = track->n_events - 1;
|
||||
|
+ for (i = 0; i < last; ++i)
|
||||
|
+ if (track->events[i].Start == track->events[last].Start
|
||||
|
+ && track->events[i].Duration == track->events[last].Duration
|
||||
|
+ && track->events[i].Layer == track->events[last].Layer
|
||||
|
+ && track->events[i].Style == track->events[last].Style
|
||||
|
+ && track->events[i].MarginL == track->events[last].MarginL
|
||||
|
+ && track->events[i].MarginR == track->events[last].MarginR
|
||||
|
+ && track->events[i].MarginV == track->events[last].MarginV
|
||||
|
+ && !strcmp(track->events[i].Name, track->events[last].Name)
|
||||
|
+ && !strcmp(track->events[i].Effect, track->events[last].Effect)
|
||||
|
+ && !strcmp(track->events[i].Text, track->events[last].Text)
|
||||
|
+ )
|
||||
|
+ return 1;
|
||||
|
+ return 0;
|
||||
|
+}
|
||||
|
+
|
||||
|
static int process_events_line(ASS_Track *track, char *str) |
||||
|
{ |
||||
|
if (!strncmp(str, "Format:", 7)) { |
||||
|
@@ -653,6 +673,11 @@
|
||||
|
event_format_fallback(track); |
||||
|
|
||||
|
process_event_tail(track, event, str, 0); |
||||
|
+
|
||||
|
+ if (check_duplicate_event_adv(track)) {
|
||||
|
+ ass_free_event(track, eid);
|
||||
|
+ track->n_events--;
|
||||
|
+ }
|
||||
|
} else { |
||||
|
ass_msg(track->library, MSGL_V, "Not understood: '%.30s'", str); |
||||
|
} |
||||
|
@@ -939,6 +964,9 @@
|
||||
|
|
||||
|
event->Start = timecode; |
||||
|
event->Duration = duration; |
||||
|
+
|
||||
|
+ if (check_duplicate_event_adv(track))
|
||||
|
+ break;
|
||||
|
|
||||
|
free(str); |
||||
|
return; |
@ -1,31 +0,0 @@ |
|||||
From 18f8a605e176f0362da22fd1203eb7cedb136aaf Mon Sep 17 00:00:00 2001 |
|
||||
From: Khem Raj <raj.khem@gmail.com> |
|
||||
Date: Tue, 20 Jun 2017 22:06:35 +0200 |
|
||||
Subject: [PATCH] include stdint.h for uintptr_t |
|
||||
|
|
||||
Fixes |
|
||||
| ../../libtirpc-1.0.1/src/xdr_sizeof.c:93:13: error: 'uintptr_t' undeclared (first use in this function); did you mean '__intptr_t'? |
|
||||
| if (len < (uintptr_t)xdrs->x_base) { |
|
||||
| ^~~~~~~~~ |
|
||||
|
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com> |
|
||||
Signed-off-by: Dmitrii Kolesnichenko <dmitrii@synopsys.com> |
|
||||
---
|
|
||||
src/xdr_sizeof.c | 1 + |
|
||||
1 file changed, 1 insertion(+) |
|
||||
|
|
||||
diff --git a/src/xdr_sizeof.c b/src/xdr_sizeof.c
|
|
||||
index d23fbd1..79d6707 100644
|
|
||||
--- a/src/xdr_sizeof.c
|
|
||||
+++ b/src/xdr_sizeof.c
|
|
||||
@@ -39,6 +39,7 @@
|
|
||||
#include <rpc/xdr.h> |
|
||||
#include <sys/types.h> |
|
||||
#include <stdlib.h> |
|
||||
+#include <stdint.h>
|
|
||||
#include "un-namespace.h" |
|
||||
|
|
||||
/* ARGSUSED */ |
|
||||
--
|
|
||||
2.9.4 |
|
||||
|
|
Loading…
Reference in new issue