Allow decoding forward instead of seeking.
This lets us seek forward by small amounts (currently less than 90 ms) by decoding forward instead of actually seeking. This is often a good idea, since we would have to decode at least 80 ms of pre-roll anyway. This optimization also handles the case of seeking to what is already the current position cheaply. This became relatively easy after we dropped op_pcm_seek_page() from the public API. However, because others may look to libopusfile's seeking code as a model, we've added an OP_SMALL_FOOTPRINT #define to cordon off some of these complex sections of code that are deeply specific to libopusfile's design, ancillary to the main seeking algorithm, and relatively unimportant to overall seeking performance.
Showing with 99 additions and 32 deletions