Opus demuxing fixes.
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: Rafaël Carré <funman@videolan.org> (cherry picked from commit 675072a8a6a520f79e9892e26ff3be98b069df7a) Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
Showing
Please register or sign in to comment