https://wiki.xiph.org/index.php?title=TransOgg_Transport&feed=atom&action=history
TransOgg Transport - Revision history
2024-03-29T08:15:25Z
Revision history for this page on the wiki
MediaWiki 1.40.1
https://wiki.xiph.org/index.php?title=TransOgg_Transport&diff=13692&oldid=prev
Xiphmont: /* Continuous vs. Discontinuous streams */
2012-09-20T00:54:48Z
<p><span dir="auto"><span class="autocomment">Continuous vs. Discontinuous streams</span></span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 17:54, 19 September 2012</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l14">Line 14:</td>
<td colspan="2" class="diff-lineno">Line 14:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* 1: Only continuous-time streams are considered when filling buffers. </div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* 1: Only continuous-time streams are considered when filling buffers. </div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* 2: Pages in continuous-time streams are stamped by <del style="font-weight: bold; text-decoration: none;">end-time (</del>end time of last packet completed on a page. If no packet is completed on a page, the page's timestamp shall be equal to the endtime of the packet begun on or spanning the page<del style="font-weight: bold; text-decoration: none;">)</del>. Pages from discontinuous-time streams are stamped by <del style="font-weight: bold; text-decoration: none;">begin-time (</del>begin time <del style="font-weight: bold; text-decoration: none;"> </del>of first packet <del style="font-weight: bold; text-decoration: none;">started </del>on <del style="font-weight: bold; text-decoration: none;">a </del>page<del style="font-weight: bold; text-decoration: none;">. If no </del>packet <del style="font-weight: bold; text-decoration: none;">is started on a page, </del>the page<del style="font-weight: bold; text-decoration: none;">'s timestamp shall be the begin time of </del>the packet <del style="font-weight: bold; text-decoration: none;">ending </del>on <del style="font-weight: bold; text-decoration: none;">or spanning </del>the page<del style="font-weight: bold; text-decoration: none;">)</del>. <del style="font-weight: bold; text-decoration: none;">Note that </del>continuous<del style="font-weight: bold; text-decoration: none;">/discontinuous is not considered when interleaving pages in time order during multiplexing. This ensures proper delivery of discontinuous-time data when demuxing/buffering. (NUT documentation uses different terminology, but has a really good example that touches </del>on <del style="font-weight: bold; text-decoration: none;">this in </del>the <del style="font-weight: bold; text-decoration: none;">context </del>of <del style="font-weight: bold; text-decoration: none;">subtitles--- go get it)</del></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* 2: Pages in continuous-time streams are stamped by <ins style="font-weight: bold; text-decoration: none;">the </ins>end time of last packet completed on a page. If no packet is completed on a page, the page's timestamp shall be equal to the endtime of the packet begun on or spanning the page. </div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">* 3: </ins>Pages from discontinuous-time streams are stamped by begin time of first packet on <ins style="font-weight: bold; text-decoration: none;">the </ins>page<ins style="font-weight: bold; text-decoration: none;">, whether the </ins>packet <ins style="font-weight: bold; text-decoration: none;">spans onto </ins>the page <ins style="font-weight: bold; text-decoration: none;">or </ins>the packet <ins style="font-weight: bold; text-decoration: none;">is begun </ins>on the page. <ins style="font-weight: bold; text-decoration: none;"> Discontinuous streams include additional restrictions over </ins>continuous <ins style="font-weight: bold; text-decoration: none;">streams </ins>on the <ins style="font-weight: bold; text-decoration: none;">allowed pagination and packet contents </ins>of <ins style="font-weight: bold; text-decoration: none;">pages.</ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>= Page arrangement =</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>= Page arrangement =</div></td></tr>
<!-- diff cache key xiphwiki:diff::1.12:old-12192:rev-13692 -->
</table>
Xiphmont
https://wiki.xiph.org/index.php?title=TransOgg_Transport&diff=12192&oldid=prev
Xiphmont at 11:16, 27 May 2010
2010-05-27T11:16:25Z
<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 04:16, 27 May 2010</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l12">Line 12:</td>
<td colspan="2" class="diff-lineno">Line 12:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>in mux and demux save two points:</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>in mux and demux save two points:</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"> </del>1<del style="font-weight: bold; text-decoration: none;">) </del>Only continuous-time streams are considered when filling buffers. </div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">* </ins>1<ins style="font-weight: bold; text-decoration: none;">: </ins>Only continuous-time streams are considered when filling buffers. </div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"> </del>2<del style="font-weight: bold; text-decoration: none;">) </del>Pages in continuous-time streams are stamped by end-time (end</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">* </ins>2<ins style="font-weight: bold; text-decoration: none;">: </ins>Pages in continuous-time streams are stamped by end-time (end time of last packet completed on a page. If no packet is completed on a page, the page's timestamp shall be equal to the endtime of the packet begun on or spanning the page). Pages from discontinuous-time streams are stamped by begin-time (begin time <ins style="font-weight: bold; text-decoration: none;"> </ins>of first packet started on a page. If no packet is started on a page, the page's timestamp shall be the begin time of the packet ending on or spanning the page). Note that continuous/discontinuous is not considered when interleaving pages in time order during multiplexing. This ensures proper delivery of discontinuous-time data when demuxing/buffering. (NUT documentation uses different terminology, but has a really good example that touches on this in the context of subtitles--- go get it)</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"> </del>time of last packet completed on a page. If no packet is</div></td><td colspan="2" class="diff-side-added"></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"> </del>completed on a page, the page's timestamp shall be equal to the</div></td><td colspan="2" class="diff-side-added"></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"> </del>endtime of the packet begun on or spanning the page). Pages from</div></td><td colspan="2" class="diff-side-added"></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"> </del>discontinuous-time streams are stamped by begin-time (begin time</div></td><td colspan="2" class="diff-side-added"></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"> </del>of first packet started on a page. If no packet is started on a</div></td><td colspan="2" class="diff-side-added"></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"> </del>page, the page's timestamp shall be the begin time of the packet</div></td><td colspan="2" class="diff-side-added"></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"> </del>ending on or spanning the page). Note that</div></td><td colspan="2" class="diff-side-added"></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"> </del>continuous/discontinuous is not considered when interleaving</div></td><td colspan="2" class="diff-side-added"></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"> </del>pages in time order during multiplexing. This ensures proper</div></td><td colspan="2" class="diff-side-added"></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"> </del>delivery of discontinuous-time data when demuxing/buffering.</div></td><td colspan="2" class="diff-side-added"></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> </div></td><td colspan="2" class="diff-side-added"></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"> </del>(NUT documentation uses different terminology, but has a really</div></td><td colspan="2" class="diff-side-added"></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"> </del>good example that touches on this in the context of subtitles---</div></td><td colspan="2" class="diff-side-added"></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"> </del>go get it)</div></td><td colspan="2" class="diff-side-added"></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>= Page arrangement =</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>= Page arrangement =</div></td></tr>
<!-- diff cache key xiphwiki:diff::1.12:old-12191:rev-12192 -->
</table>
Xiphmont
https://wiki.xiph.org/index.php?title=TransOgg_Transport&diff=12191&oldid=prev
Xiphmont: Created page with '= Continuous vs. Discontinuous streams = For purposes of buffering and multiplexing, transport defines two stream types, 'continuous-time' and 'discontinuous time'. A continuou…'
2010-05-27T11:15:08Z
<p>Created page with '= Continuous vs. Discontinuous streams = For purposes of buffering and multiplexing, transport defines two stream types, 'continuous-time' and 'discontinuous time'. A continuou…'</p>
<p><b>New page</b></p><div>= Continuous vs. Discontinuous streams =<br />
<br />
For purposes of buffering and multiplexing, transport defines two<br />
stream types, 'continuous-time' and 'discontinuous time'. A<br />
continuous-time stream contains no time or data gaps, with packets at<br />
regular predictable intervals. A discontinuous-time stream is more<br />
typically widely-spaced events with wide timing and data gaps between.<br />
Streams are declared continuous or discontinuous in the mandatory<br />
metadata.<br />
<br />
Continuous time and discontinuous time streams are treated identically<br />
in mux and demux save two points:<br />
<br />
1) Only continuous-time streams are considered when filling buffers. <br />
<br />
2) Pages in continuous-time streams are stamped by end-time (end<br />
time of last packet completed on a page. If no packet is<br />
completed on a page, the page's timestamp shall be equal to the<br />
endtime of the packet begun on or spanning the page). Pages from<br />
discontinuous-time streams are stamped by begin-time (begin time<br />
of first packet started on a page. If no packet is started on a<br />
page, the page's timestamp shall be the begin time of the packet<br />
ending on or spanning the page). Note that<br />
continuous/discontinuous is not considered when interleaving<br />
pages in time order during multiplexing. This ensures proper<br />
delivery of discontinuous-time data when demuxing/buffering.<br />
<br />
(NUT documentation uses different terminology, but has a really<br />
good example that touches on this in the context of subtitles---<br />
go get it)<br />
<br />
= Page arrangement =<br />
<br />
No data may be inserted between transOgg pages in a transOgg stream.<br />
Data outside of of transOgg pages results in a loss-of-capture<br />
condition when reading the four bytes immediately following the end of<br />
a page does not yield the capture pattern.</div>
Xiphmont