mirror of https://github.com/mpv-player/mpv
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:
parent
f48829b546
commit
125c20bd08
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue