• Timothy B. Terriberry's avatar
    Opus demuxing fixes. · bf835128
    Timothy B. Terriberry authored
    This properly handles pre-skip, seeking pre-roll, and end-trim. It
    uses the i_nb_samples field of block_t to signal to the decoder how
    many samples should be returned after (possibly) skipping some at
    the start of the block (for both pre-skip and pre-roll). In
    addition, it abuses the i_length field of block_t to signal to the
    decoder how many samples to trim from the end of the packet (for
    end-trimming).
    
    This patch does not compute correct timestamps for streams which
    start at a non-zero offset (e.g., live streams joined in the
    middle), nor does it correctly compute the length of a stream. But
    neither of those things work for Vorbis, either. I'm leaving them
    for a follow-up patch.
    Signed-off-by: default avatarRafaël Carré <funman@videolan.org>
    (cherry picked from commit 675072a8)
    Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
    bf835128
ogg.h 4.48 KB