
Author: ods15 Date: Sat Oct 28 21:27:00 2006 New Revision: 169 Modified: trunk/docs/nut-english.txt Log: I'm too lazy to explain seeking again :) Modified: trunk/docs/nut-english.txt ============================================================================== --- trunk/docs/nut-english.txt (original) +++ trunk/docs/nut-english.txt Sat Oct 28 21:27:00 2006 @@ -246,7 +246,14 @@ to reset the last_pts context of all streams, and to find the appropriate syncpoint when seeking. Demuxing can only begin at syncpoints for proper last_pts context across all streams, including after seeking. -back_ptr is explained in greater detail in the Seeking section. +A back_ptr points to a previous syncpoint in the file. The area between +the previous syncpoint and this one must contain a keyframe for every +stream, with a pts lower than or equal to the timestamp of this syncpoint. +This back_ptr is used for optimal seeking in files without an index. +For compression, the back_ptr is relative to this syncpoint, and is +divided by 16. The reason for this is that the minimum size for a +syncpoint is 16 bytes: +8 startcode + 1 forward_ptr + 1 timestamp + 1 back_ptr + 4 checksum + 1 frame_code Error Checking @@ -280,3 +287,8 @@ closest syncpoint startcode found, and resume demuxing from there. If possible, before the linear search, rewind to the last syncpoint seen, in case a syncpoint was already skipped due to demuxing damaged data. + +Seeking + +An in depth explanation of an optimal seeking algorithm can be found in +http://wiki.multimedia.cx/index.php?title=NUT