summaryrefslogtreecommitdiffstats
path: root/sub/sd_ass.c
diff options
context:
space:
mode:
Diffstat (limited to 'sub/sd_ass.c')
-rw-r--r--sub/sd_ass.c48
1 files changed, 0 insertions, 48 deletions
diff --git a/sub/sd_ass.c b/sub/sd_ass.c
index 81e1df8dec..9b56eb5046 100644
--- a/sub/sd_ass.c
+++ b/sub/sd_ass.c
@@ -35,14 +35,9 @@
#include "ass_mp.h"
#include "sd.h"
-// Enable code that treats subtitle events with duration 0 specially, and
-// adjust their duration so that they will disappear with the next event.
-#define INCOMPLETE_EVENTS 0
-
struct sd_ass_priv {
struct ass_track *ass_track;
bool is_converted;
- bool incomplete_event;
struct sub_bitmap *parts;
bool flush_on_seek;
char last_text[500];
@@ -62,13 +57,6 @@ static bool supports_format(const char *format)
strcmp(format, "ass-text") == 0);
}
-static void free_last_event(ASS_Track *track)
-{
- assert(track->n_events > 0);
- ass_free_event(track, track->n_events - 1);
- track->n_events--;
-}
-
static int init(struct sd *sd)
{
struct MPOpts *opts = sd->opts;
@@ -125,38 +113,6 @@ static void decode(struct sd *sd, struct demux_packet *packet)
}
long long ipts = pts * 1000 + 0.5;
long long iduration = duration * 1000 + 0.5;
-#if INCOMPLETE_EVENTS
- if (ctx->incomplete_event) {
- ctx->incomplete_event = false;
- ASS_Event *event = track->events + track->n_events - 1;
- if (ipts <= event->Start)
- free_last_event(track);
- else
- event->Duration = ipts - event->Start;
- }
- // Note: we rely on there being guaranteed 0 bytes after data packets
- int len = strlen(text);
- if (len < 5) {
- // Some tracks use a whitespace (but not empty) packet to mark end
- // of previous subtitle.
- for (int i = 0; i < len; i++)
- if (!strchr(" \f\n\r\t\v", text[i]))
- goto not_all_whitespace;
- return;
- }
- not_all_whitespace:;
- if (!sd->no_remove_duplicates) {
- for (int i = 0; i < track->n_events; i++)
- if (track->events[i].Start == ipts
- && (duration <= 0 || track->events[i].Duration == iduration)
- && strcmp(track->events[i].Text, text) == 0)
- return; // We've already added this subtitle
- }
- if (duration <= 0) {
- iduration = 10000;
- ctx->incomplete_event = true;
- }
-#else
if (duration <= 0) {
mp_msg(MSGT_SUBREADER, MSGL_WARN, "Subtitle without duration or "
"duration set to 0 at pts %f, ignored\n", pts);
@@ -170,7 +126,6 @@ static void decode(struct sd *sd, struct demux_packet *packet)
return; // We've already added this subtitle
}
}
-#endif
int eid = ass_alloc_event(track);
ASS_Event *event = track->events + eid;
event->Start = ipts;
@@ -320,9 +275,6 @@ static void fix_events(struct sd *sd)
static void reset(struct sd *sd)
{
struct sd_ass_priv *ctx = sd->priv;
- if (ctx->incomplete_event)
- free_last_event(ctx->ass_track);
- ctx->incomplete_event = false;
if (ctx->flush_on_seek)
ass_flush_events(ctx->ass_track);
ctx->flush_on_seek = false;