Opened 4 years ago

Closed 4 years ago

Last modified 4 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 Changed 4 years ago by alexanderino

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 Changed 4 years ago by cehoyos

  • Keywords regression added
  • Reproduced by developer set
  • Status changed from new to open

Regression since 36b7e983

comment:3 Changed 4 years ago by michael

  • Resolution set to fixed
  • Status changed from open to closed

comment:4 Changed 4 years ago by alexanderino

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!

May I ask what was the exact cause of this problem, and what had to be done to fix it? This affects files I encoded during the space of a few days. Outside it, they're flawless [though the same encoder, ripper and settings were used].

Last edited 4 years ago by alexanderino (previous) (diff)
Note: See TracTickets for help on using tickets.