stream. It is also intended to be used like a weak hash so that a collision is very unlikely when multiplexing different streams, which eliminates the need for continuous recalculation of page headers at every multiplexing step. The following 4 bytes are the page sequence number within the stream. This is a page counter that allows detection of lost pages. In comparison to other container formats, the large number of bits also allows direct UDP unicast/multicast with Ogg handling reordering and reassembly. The next 4 bytes, starting at the 23rd byte of the page, is the CRC checksum of the page. Because the value of this field changes, the result of the check is computed with this field equal to zero. Next, the 27th byte of each page specifies the number of segments it contains, ranging from 0 to 255. This is also the size of the following segment table in bytes. Each byte of the segment table provides the length of a segment. Each segment can be up to 255 bytes in length and is bounded by the page. A segment smaller than 255 bytes marks the end of a packet; the next segment will begin a new packet. A packet with a length that is a multiple of 255 bytes will end with a segment of length 0. If the last segment of the page is 255 bytes then the last packet is continued on the following page. Editing with pages One of the common uses of Ogg pages is to allow the editing of Ogg files without a reduction in quality or the need to transcode files. Any series of pages within a stream can be preceded by the stream's header pages (pages with an absolute granule position of 0) and be decoded properly by media players. This technique can be used to losslessly crop a media file. Multiple cropped segments can be appended to each other with a process known as chaining provided that the serial numbers of these segments are modified to unique numbers. New content can also be inserted between these segments. References External links Ogg Page Structure Xiph.Org projects