diff options
Diffstat (limited to 'libhb/muxmkv.c')
-rw-r--r-- | libhb/muxmkv.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/libhb/muxmkv.c b/libhb/muxmkv.c index 227159579..b1927ff80 100644 --- a/libhb/muxmkv.c +++ b/libhb/muxmkv.c @@ -473,17 +473,19 @@ static int MKVMux( hb_mux_object_t * m, hb_mux_data_t * mux_data, return 0; } } - else if ( mux_data->subtitle ) + else if (mux_data->subtitle) { - uint64_t duration; - timecode = buf->s.start * TIMECODE_SCALE; if( mk_startFrame(m->file, mux_data->track) < 0) { hb_error( "Failed to write frame to output file, Disk Full?" ); *job->die = 1; } - + uint64_t duration; + timecode = buf->s.start * TIMECODE_SCALE; duration = buf->s.stop * TIMECODE_SCALE - timecode; + // PGS subtitles have negative durations (buf->s.start - 0) + if (duration < 0) + duration = 0; mk_addFrameData(m->file, mux_data->track, buf->data, buf->size); mk_setFrameFlags(m->file, mux_data->track, timecode, 1, duration); mk_flushFrame(m->file, mux_data->track); |