diff options
-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; |