Hi All:
Here is a test link:
http://vm2.dashif.org/livesim/testpic_2s/cea608_and_segs.mpd
When you play this link with dash.js, and choose to show ttml subtitle.
The time is wrong and have 2s offset from correct time.
Could you help to fix this issue?
Regression introduced in v2.6.1
Hi @oldmtn and @epiclabsDASH ,
according to me, it's not a regression. I tested with version like 2.1.1 : the bug is already there. You just have to select 'en' subtitle track and wait for 5 or 6 seconds and the offset time appears.
in TextSourceBuffer file, we can see that subtitles mp4 sample, 'cts' has an offset of 2 seconds compared to chunk start time. It's the origin of the issue. I 'm not sure if it's an issue on the dash.js (offset processing) or on the stream.
@palemieux , could you, please, give us your opinion on this issue? Thanks,
Nico
@oldmtn Can you attach the source IMSC1 to the ticket?
@palemieux I dump a subtitle content as below:
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling" xml:lang="en" >
<head >
<styling >
<style xml:id="defaultStyle" tts:color="#FFFFFF" tts:textAlign="center" />
<style xml:id="bgBlack" tts:backgroundColor="#000000" />
</styling>
<layout >
<region xml:id="region1" tts:extent="100% 20%" />
</layout>
</head>
<body style="defaultStyle" >
<div region="region1" ><p xml:id="sub2356" begin="420629:39:16.000" end="420629:39:17.000" >
<span style="bgBlack" >00:39:16.000</span>
</p><p xml:id="sub2357" begin="420629:39:17.000" end="420629:39:18.000" >
<span style="bgBlack" >00:39:17.000</span>
</p></div>
</body>
</tt>
I do not see anything in the IMSC1 document that would cause a 2-second offset.
@palemieux , You can see TextSourceBuffer.js in dashjs.
As @nicosang says,
subtitles mp4 sample, 'cts' has an offset of 2 seconds compared to chunk start time. It's the origin of the issue.
@oldmtn Oh. By _IMSC1 document_, I meant the TTML essence, not the ISOBMFF container.
Pretty certain this is a copy and paste error that occurred when the MPD was constructed - I think startNumber for the TTML representation should be 0, not 1.
This would certainly explain the offset between the requested time and the baseMediaDecodeTime (which subsequently causes the CTS offset), and changing it to 0 locally solved the issue for me.
@wilaw, do you know who we should contact with to ask for changes in above test link (http://vm2.dashif.org/livesim/testpic_2s/cea608_and_segs.mpd)?
It is not critical but, if possible, it would be nice fixing that mpd according to @bbcrddave suggestion.
@epiclabsDASH - contact @TobbeEdgeware for all things livesim.
@bbcrddave Good that you spotted the mismatch in startNumber. It turned out to be an input VoD manifest with <SegmentTemplate> inside the <Representation> node, and in that case the simulator did not find and rewrite the startNumber.
The source has now been fixed.
Thank you.
Most helpful comment
The source has now been fixed.