Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#3590 closed defect (fixed)

Decoding errors/failures on older Ogg Vorbis files

Reported by: alexanderino Owned by:
Priority: important Component: avcodec
Version: git-master Keywords: vorbis regression
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Summary of the bug:
FFmpeg cannot decode certain Ogg Vorbis files created by older encoders [in this example, the 'vorbis_vendor' tag is 'Xiphophorus libVorbis I 20020408'].

Attempting to play the attached file with software that uses the FFmpeg library [such as foobar2000 1.2.x and VLC] results in a warbling distortion, and is unlistenable. The newest foobar2000 1.3.2 simply refuses to play them.

Older versions of foobar2000 [0.6x-0.8x], and other players that do not use the ffmpeg library, decode these files flawlessly.

The FFmpeg.exe output is reproduced below.
How to reproduce:

% ffmpeg -v 9 -loglevel 99 -i death_08_destiny.ogg out.wav
ffmpeg version N-62720-gb217dc9 Copyright (c) 2000-2014 the FFmpeg developers
  built on Apr 25 2014 22:08:27 with gcc 4.8.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-decklink --enable-zlib
  libavutil      52. 78.100 / 52. 78.100
  libavcodec     55. 59.100 / 55. 59.100
  libavformat    55. 37.101 / 55. 37.101
  libavdevice    55. 13.100 / 55. 13.100
  libavfilter     4.  4.100 /  4.  4.100
  libswscale      2.  6.100 /  2.  6.100
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with argument '9'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument '99'.
Reading option '-i' ... matched as input file with argument 'death_08_destiny.ogg'.
Reading option 'out.wav' ... matched as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument 9.
Successfully parsed a group of options.
Parsing a group of options: input file death_08_destiny.ogg.
Successfully parsed a group of options.
Opening an input file: death_08_destiny.ogg.
[ogg @ 000000000461e1c0] Format ogg probed with size=2048 and score=100
[ogg @ 000000000461e1c0] Before avformat_find_stream_info() pos: 7575 bytes read:130843 seeks:3
[vorbis @ 0000000004617720] partition out of bounds: type, begin, end, size, blocksize: 2, 0, 2080, 32, 1024
[vorbis @ 0000000004617720]  Vorbis setup header packet corrupt (residues).
[vorbis @ 0000000004617720] Setup header corrupt.
[ogg @ 000000000461e1c0] Failed to open codec in av_find_stream_info
[vorbis @ 0000000004617720] partition out of bounds: type, begin, end, size, blocksize: 2, 0, 2080, 32, 1024
[vorbis @ 0000000004617720]  Vorbis setup header packet corrupt (residues).
[vorbis @ 0000000004617720] Setup header corrupt.
[ogg @ 000000000461e1c0] All info found
[ogg @ 000000000461e1c0] After avformat_find_stream_info() pos: 7575 bytes read:130843 seeks:3 frames:1
Guessed Channel Layout for  Input Stream #0.0 : stereo
Input #0, ogg, from 'death_08_destiny.ogg':
  Duration: 00:04:05.83, start: 0.000000, bitrate: 167 kb/s
    Stream #0:0, 1, 1/44100: Audio: vorbis, 44100 Hz, stereo, fltp, 160 kb/s
    Metadata:
      TITLE           : Destiny
      ARTIST          : Death
      ALBUM           : Individual Thought Patterns
      track           : 8
      DATE            : 1993
      GENRE           : Death Metal
      RIPPER          : Exact Audio Copy 0.9 beta 3
      QUALITY         : 5.00
      RG_PEAK         : 1.01353502
      RG_RADIO        : -2.78 dB
      RG_AUDIOPHILE   : -3.76 dB
Successfully opened the file.
Parsing a group of options: output file out.wav.
Successfully parsed a group of options.
Opening an output file: out.wav.
Successfully opened the file.
detected 4 logical cores
[graph 0 input from stream 0:0 @ 00000000046239c0] Setting 'time_base' to value '1/44100'
[graph 0 input from stream 0:0 @ 00000000046239c0] Setting 'sample_rate' to value '44100'
[graph 0 input from stream 0:0 @ 00000000046239c0] Setting 'sample_fmt' to value 'fltp'
[graph 0 input from stream 0:0 @ 00000000046239c0] Setting 'channel_layout' to value '0x3'
[graph 0 input from stream 0:0 @ 00000000046239c0] tb:1/44100 samplefmt:fltp samplerate:44100 chlayout:0x3
[audio format for output stream 0:0 @ 00000000046d9d40] Setting 'sample_fmts' to value 's16'
[audio format for output stream 0:0 @ 00000000046d9d40] auto-inserting filter 'auto-inserted resampler 0' between the filter 'Parsed_anull_0' and the filter 'audio format for output stream 0:0'
[AVFilterGraph @ 000000000461e0a0] query_formats: 4 queried, 6 merged, 3 already done, 0 delayed
[auto-inserted resampler 0 @ 00000000046d9f40] ch:2 chl:stereo fmt:fltp r:44100Hz -> ch:2 chl:stereo fmt:s16 r:44100Hz
[vorbis @ 0000000004617720] partition out of bounds: type, begin, end, size, blocksize: 2, 0, 2080, 32, 1024
[vorbis @ 0000000004617720]  Vorbis setup header packet corrupt (residues).
[vorbis @ 0000000004617720] Setup header corrupt.
Output #0, wav, to 'out.wav':
    Stream #0:0, 0, 1/90000: Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s
    Metadata:
      TITLE           : Destiny
      ARTIST          : Death
      ALBUM           : Individual Thought Patterns
      track           : 8
      DATE            : 1993
      GENRE           : Death Metal
      RIPPER          : Exact Audio Copy 0.9 beta 3
      QUALITY         : 5.00
      RG_PEAK         : 1.01353502
      RG_RADIO        : -2.78 dB
      RG_AUDIOPHILE   : -3.76 dB
Stream mapping:
  Stream #0:0 -> #0:0 (vorbis -> pcm_s16le)
Error while opening decoder for input stream #0:0 : Invalid data found when processing input
[AVIOContext @ 0000000004618ec0] Statistics: 0 seeks, 0 writeouts
[AVIOContext @ 000000000461e7a0] Statistics: 130843 bytes read, 3 seeks

Change History (4)

comment:1 by alexanderino, 11 years ago

The smallest buggy file I have is over 4 MB, so it has been uploaded via FTP. The filename is 'bug_3590_death_08_destiny.ogg', and a text file called 'bug_3590_death_08_destiny_vorbis_decode.txt' also accompanies it.

comment:2 by Carl Eugen Hoyos, 11 years ago

Keywords: regression added
Reproduced by developer: set
Status: newopen

Regression since 36b7e983

comment:3 by Michael Niedermayer, 11 years ago

Resolution: fixed
Status: openclosed

comment:4 by alexanderino, 11 years ago

Confirming that the latest ffmpeg.exe and ffplay.exe [git-feaa31d (2014-05-01) 64-bit Static build downloaded from Zeranoe] flawlessly decode this file, as well as others exhibiting the same error.

Thank you for the very quick fix, it is highly appreciated!

Version 0, edited 11 years ago by alexanderino (next)
Note: See TracTickets for help on using tickets.