diff options
author | jstebbins <[email protected]> | 2009-11-05 22:50:06 +0000 |
---|---|---|
committer | jstebbins <[email protected]> | 2009-11-05 22:50:06 +0000 |
commit | 953bf32afdef1656cc22c3ab973b32cc4b2b78f0 (patch) | |
tree | a49f66d36ae0e03fff486c0fb418f3f0701a6e43 /libhb/muxmkv.c | |
parent | 972320287e9c2f6ce404b2bddc28151595d94eff (diff) |
possible fix for WDTV vobsub duration problem
There were 2 problems
1. The duration was not being written to the mkv track. Other players use
the timestamps in the vobsub. WDTV appears to use the duration in the mkv.
2. The vobsub timestamps were being rewritten improperly in sync.c. They
don't need to be rewritten at all.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2917 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'libhb/muxmkv.c')
-rw-r--r-- | libhb/muxmkv.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/libhb/muxmkv.c b/libhb/muxmkv.c index 2e8814ca9..f179cb755 100644 --- a/libhb/muxmkv.c +++ b/libhb/muxmkv.c @@ -404,24 +404,24 @@ static int MKVMux( hb_mux_object_t * m, hb_mux_data_t * mux_data, } else if ( mux_data->subtitle ) { + uint64_t duration; timecode = buf->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; } + + duration = buf->stop * TIMECODE_SCALE - timecode; if( mux_data->sub_format == TEXTSUB ) { - uint64_t duration; - - duration = buf->stop * TIMECODE_SCALE - timecode; mk_addFrameData(m->file, mux_data->track, buf->data, buf->size); mk_setFrameFlags(m->file, mux_data->track, timecode, 1, duration); } else { mk_addFrameData(m->file, mux_data->track, buf->data, buf->size); - mk_setFrameFlags(m->file, mux_data->track, timecode, 1, 0); + mk_setFrameFlags(m->file, mux_data->track, timecode, 1, duration); } mk_flushFrame(m->file, mux_data->track); return 0; |