summaryrefslogtreecommitdiffstats
path: root/sub/dec_sub.c
diff options
context:
space:
mode:
Diffstat (limited to 'sub/dec_sub.c')
-rw-r--r--sub/dec_sub.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sub/dec_sub.c b/sub/dec_sub.c
index ec9af94abb..7e4427a40f 100644
--- a/sub/dec_sub.c
+++ b/sub/dec_sub.c
@@ -121,6 +121,10 @@ static void read_sub_data(struct dec_sub *sub, struct sub_data *subdata)
assert(sub_accept_packets_in_advance(sub));
char *temp = NULL;
+ struct sd *sd = sub_get_last_sd(sub);
+
+ sd->no_remove_duplicates = true;
+
for (int i = 0; i < subdata->sub_num; i++) {
subtitle *st = &subdata->subtitles[i];
// subdata is in 10 ms ticks, pts is in seconds
@@ -161,7 +165,6 @@ static void read_sub_data(struct dec_sub *sub, struct sub_data *subdata)
sub_decode(sub, &pkt);
}
- struct sd *sd = sub_get_last_sd(sub);
// Hack for broken FFmpeg packet format: make sd_ass keep the subtitle
// events on reset(), even though broken FFmpeg ASS packets were received
// (from sd_lavc_conv.c). Normally, these events are removed on seek/reset,
@@ -169,6 +172,8 @@ static void read_sub_data(struct dec_sub *sub, struct sub_data *subdata)
if (sd && sd->driver->fix_events)
sd->driver->fix_events(sd);
+ sd->no_remove_duplicates = false;
+
talloc_free(temp);
}