dec_sub: add hack to display last MicroDVD subtitle event

The old subreader.c infrastructure handled this in a similar way.
This commit is contained in:
wm4 2013-06-24 23:52:53 +02:00
parent f48829b546
commit 125c20bd08
1 changed files with 11 additions and 0 deletions

View File

@ -411,6 +411,17 @@ bool sub_read_all_packets(struct dec_sub *sub, struct sh_sub *sh)
if (!opts->suboverlap_enabled)
fix_overlaps_and_gaps(subs);
if (sh->gsh->codec && strcmp(sh->gsh->codec, "microdvd") == 0) {
// The last subtitle event in MicroDVD subs can have duration unset,
// which means show the subtitle until end of video.
// See FFmpeg FATE MicroDVD_capability_tester.sub
if (subs->num_packets) {
struct demux_packet *last = subs->packets[subs->num_packets - 1];
if (last->duration <= 0)
last->duration = 10; // arbitrary
}
}
add_sub_list(sub, preprocess, subs);
talloc_free(subs);