SEEKTABLE is block type 3. A stream has at most one. It is an optional list of places in the stream that a player can jump to without reading the whole of it: the block’s length divided by 18 gives the number of seek points.
Seek points
| Bytes | Field | Meaning |
|---|---|---|
| 8 | Sample number | The first sample of the target frame, counted from the start of the stream. FFFFFFFFFFFFFFFF marks a placeholder |
| 8 | Byte offset | The target frame’s offset, from the first byte of the first frame header |
| 2 | Frame samples | How many samples the target frame holds |
A placeholder is a point left for later use: an editor can fill it in without moving the audio. Points must be in ascending order of sample number, and unique, except for placeholders, which all come last.
The offset counts from the first frame, not from the start of the file, so the table stays right when the metadata before it changes size.