Hi,<div><br></div><div>I'm not sure if overlapping subtitle buffers are officially supported in gstreamer, but given that some containers specifically request support for this[1] I'm going to assume so.</div><div><br>

</div><div>This causes some problems</div><div><br></div><div>Assuming we have very long subtitle buffers</div><div><br></div><div>buf 1 - PTS 0s   Duration 25s</div><div>buf 2 - PTS 50s  Duration 25s</div><div><br></div>

<div>So the output from demuxer should look something like this</div><div>buf 1</div><div>gap (25 - duration 25)</div><div>buf 2</div><div><br></div><div>The issue here is that the GAP event will not be sent until the other streams catch up. In this case until the demuxer sends first 25 seconds of audio and video, it doesn't send any gap event. But the subtitle elements downstream may now know whether to wait for another subtitle (that possibly overlaps current one) or whether to render this one. Only after it gets next subtitle buffer or gap event can the element know for sure that the subtitle can be rendered.</div>

<div><br></div><div>I'm not sure how to fix this, perhaps the sematics of the GAP event could be altered so that it would indicate that there is no following subtitle buffer in the time range of the event? So the output from demuxer could look like</div>

<div>buf 1 (PTS 0, Duration 25)</div><div>gap (time 0, duration 5)</div><div>gap (time 5, duration 5)</div><div>gap (time 10, duration 5)</div><div>…</div><div>gap (time 45, duration 5)</div><div>buf2 (PTS 50, duration 25)</div>

<div>gap (time 50, duration 5)</div><div>...</div><div><br></div><div>(of course the gap events can be coalesced if demuxer knows beforehand)</div><div><br></div><div>-Matej</div><div><br></div><div>[1] <a href="http://www.webmproject.org/docs/container/">http://www.webmproject.org/docs/container/</a></div>