diff options
author | John Stebbins <[email protected]> | 2016-01-27 09:27:45 -0700 |
---|---|---|
committer | John Stebbins <[email protected]> | 2016-01-27 09:27:45 -0700 |
commit | 4b408bced10509e378ee91aa526e126b264cfccf (patch) | |
tree | 494d85b8658350930fd00af49f775d843de71573 /libhb/sync.c | |
parent | fa95126fe78249de6c9d42c5a5f99210ad76c9a2 (diff) |
sync: fix delayed subtitles when burned-in
sync was delaying delivery of subtitles which caused burn-in late.
Diffstat (limited to 'libhb/sync.c')
-rw-r--r-- | libhb/sync.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/libhb/sync.c b/libhb/sync.c index 23e96a964..9f95c3c53 100644 --- a/libhb/sync.c +++ b/libhb/sync.c @@ -801,6 +801,20 @@ static void OutputBuffer( sync_common_t * common ) if (hb_list_count(stream->in_queue) > stream->min_len) { buf = hb_list_item(stream->in_queue, 0); + if (stream->type == SYNC_TYPE_SUBTITLE) + { + // Forward subtitles immediately instead of interleaving. + // + // Normally, we interleave output by PTS in order to + // optimize sync recovery. This results in queueing + // stream data that may not get delivered to it's + // respecitive output fifo until the next input data + // is received for that stream. This isn't a problem + // for continuous streams like audio and video, but + // it delays subtitles unacceptably. + out_stream = stream; + break; + } if (buf->s.start < pts) { pts = buf->s.start; |