Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#2241 closed defect (fixed)

ffmpeg/ffprobe: hangs on specific wav files

Reported by: auphonic Owned by:
Priority: important Component: avformat
Version: git-master Keywords: wav regression
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

ffprobe and ffmpeg hangs forever on specific wav input files - in other programs (e.g. audacity) they are loading fine!
Tested with ffmpeg 1.1.1 on Ubuntu 12.10 - more details below.
See also the attached file to reproduce the problem!

How to reproduce:

ffprobe -v 9 -loglevel 99 ice_chapel.wav 

Output of ffprobe:

ffprobe version 1.1.1 Copyright (c) 2007-2013 the FFmpeg developers
  built on Feb  5 2013 15:37:17 with gcc 4.7 (Ubuntu/Linaro 4.7.2-2ubuntu1)
  configuration: --enable-gpl --enable-version3 --enable-nonfree --disable-ffplay --disable-ffserver --disable-avdevice --enable-bzlib --enable-libopencore-amrnb --enable-libfreetype --enable-libopencore-amrwb --enable-libfaac --enable-libgsm --enable-libmp3lame --enable-libschroedinger --enable-libspeex --enable-libvorbis --enable-libvpx --enable-libopus
  libavutil      52. 13.100 / 52. 13.100
  libavcodec     54. 86.100 / 54. 86.100
  libavformat    54. 59.106 / 54. 59.106
  libavfilter     3. 32.100 /  3. 32.100
  libswscale      2.  1.103 /  2.  1.103
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
[wav @ 0x975ce80] Format wav probed with size=2048 and score=99

Here it just hangs forever ...

Please let me know if you need more information, I have a few files with similar behaviour ...

Attachments (1)

ice_chapel.wav (128.4 KB) - added by auphonic 5 years ago.

Download all attachments as: .zip

Change History (7)

Changed 5 years ago by auphonic

comment:1 Changed 5 years ago by cehoyos

  • Component changed from FFmpeg to avformat
  • Keywords wav regression added
  • Priority changed from normal to important
  • Reproduced by developer set
  • Status changed from new to open
  • Version changed from unspecified to git-master

DoS regression since 1350dff (symptoms changed in 259d8c5), decoding regression since 1e19927 / 12bc205

comment:2 Changed 5 years ago by cehoyos

(gdb) r -i ice_chapel.wav
Starting program: ffmpeg_g -i ice_chapel.wav
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
ffmpeg version N-49608-g2b20397 Copyright (c) 2000-2013 the FFmpeg developers
  built on Feb  5 2013 16:49:00 with gcc 4.7 (SUSE Linux)
  configuration: --enable-gpl --disable-indev=jack
  libavutil      52. 17.101 / 52. 17.101
  libavcodec     54. 91.100 / 54. 91.100
  libavformat    54. 61.104 / 54. 61.104
  libavdevice    54.  3.103 / 54.  3.103
  libavfilter     3. 35.101 /  3. 35.101
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100

Program received signal SIGINT, Interrupt.
0x00000000004dcd85 in fill_buffer (s=s@entry=0x15fcc00) at libavformat/aviobuf.c:393
393     {
(gdb) bt
#0  0x00000000004dcd85 in fill_buffer (s=s@entry=0x15fcc00) at libavformat/aviobuf.c:393
#1  0x00000000004e003d in avio_r8 (s=<optimized out>) at libavformat/aviobuf.c:471
#2  avio_rl16 (s=0x15fcc00) at libavformat/aviobuf.c:566
#3  avio_rl32 (s=s@entry=0x15fcc00) at libavformat/aviobuf.c:581
#4  0x0000000000561e5b in ff_read_riff_info (s=s@entry=0x15f4520, size=size@entry=382)
    at libavformat/riff.c:819
#5  0x00000000005a8ee9 in wav_read_header (s=0x15f4520) at libavformat/wavdec.c:352
#6  0x00000000005a3900 in avformat_open_input (ps=ps@entry=0x7fffffffd6a8,
    filename=filename@entry=0x7fffffffe2a0 "ice_chapel.wav", fmt=fmt@entry=0x0,
    options=0x15e4408) at libavformat/utils.c:626
#7  0x0000000000451bc1 in open_input_file (o=o@entry=0x7fffffffd7e0,
    filename=<optimized out>) at ffmpeg_opt.c:768
#8  0x0000000000450850 in open_files (inout=<optimized out>, inout@entry=0xc1b33f "input",
    open_file=open_file@entry=0x451950 <open_input_file>,
    l=<error reading variable: Unhandled dwarf expression opcode 0xfa>,
    l=<error reading variable: Unhandled dwarf expression opcode 0xfa>) at ffmpeg_opt.c:2284
#9  0x0000000000456299 in ffmpeg_parse_options (argc=argc@entry=3,
    argv=argv@entry=0x7fffffffde28) at ffmpeg_opt.c:2321
#10 0x000000000044e6e8 in main (argc=3, argv=0x7fffffffde28) at ffmpeg.c:3289

comment:3 Changed 5 years ago by michael

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

comment:4 follow-up: Changed 5 years ago by auphonic

Thanks for the fast fix, I guess it's this commit?
https://github.com/FFmpeg/FFmpeg/commit/a8343bfb6a3f00777943b94ff2969422f578f246

Just a question:
I assume that this fix only affects WAV/AIFF etc. files - however, I had the same problems also with e.g. an Ogg Vorbis file.
It's a very big file and should not be public, so I cannot attach it here (>90MB) ...

However, I can send it to a developer privately, if you need it!

comment:5 in reply to: ↑ 4 Changed 5 years ago by michael

Replying to auphonic:

Just a question:
I assume that this fix only affects WAV/AIFF etc. files - however, I had the same problems also with e.g. an Ogg Vorbis file.
It's a very big file and should not be public, so I cannot attach it here (>90MB) ...

However, I can send it to a developer privately, if you need it!

We certainly will need the file, and please open a seperate ticket for it. You can either upload it to our ftp or send it to me per email, either way make sure the filename makes it clear that its suppsoed to be private/non public

comment:6 Changed 5 years ago by auphonic

Ok sorry, it was another problem on my side - however, I will send further files if I detect some problems ;)

Thanks a lot for fixing it!

Note: See TracTickets for help on using tickets.