#7011: Decoding of chained opus streams isn't properly supported -----------------------------------+--------------------------------------- Reporter: neknek446 | Type: defect Status: new | Priority: normal Component: avformat | Version: unspecified Keywords: opus ogg | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -----------------------------------+--------------------------------------- Summary of the bug: ffmpeg currently doesn't support chained opus streams (as specified in <https://tools.ietf.org/html/rfc7845.html#section-7.2>). When decoding opus stream with `OpusHead`/`OpusTags` packets not in begining of overall stream, it produces "Error parsing the packet header." error messages and crack noises, and also doesn't update tags. For opus stream chaining to work, opus decoder (libavformat/oggparseopus.c) should: * handle `OpusHead` packets (including discarding pre-skip ammount of samples). It currently handles this well only in opus_header function. * handle `OpusTags` packets (including updating metadata). It currently handles this well only in opus_header function. * handle EOS-marked packets with granule position smaller than last granule position + ammount of samples contained in packet by discarding excess decoded samples. I looked at code and it seems to currently do this already.
How to reproduce: {{{ wget https://jmvalin.ca/misc_stuff/chain_works.opus ffmpeg -i chain_works.opus chain_works.wav }}} or {{{ mpv https://jmvalin.ca/misc_stuff/chain_works.opus }}} or {{{ mplayer https://jmvalin.ca/misc_stuff/chain_works.opus }}} Also relevant VLC ticket: <https://trac.videolan.org/vlc/ticket/18401>. -- Ticket URL: <https://trac.ffmpeg.org/ticket/7011> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker _______________________________________________ FFmpeg-trac mailing list FFmpeg-trac@avcodec.org http://ffmpeg.org/mailman/listinfo/ffmpeg-trac