id,summary,reporter,owner,description,type,status,priority,component,version,resolution,keywords,cc,blockedby,blocking,reproduced,analyzed
1041,Illegal instruction when opening some files with (HE-)AAC streams,qyot27,,"Sometime between the 18th of February and the 25th of February, the AAC decoder (at least, I think it's the AAC decoder doing this) started breaking on certain files.  I've observed it in native builds for both Windows (built with MinGW) and Linux.  It seems to fail with files that contain AAC streams that MediaInfo detects as being HE-AAC, as my purchases from iTunes (which report as standard LC-AAC) can open fine in the same FFmpeg builds that have issues with the streams that report as HE-AAC.

Since I also saw avconv crash with the same sample, I'm guessing this issue arose with one of the merges that occurred during the timeframe between the 18th and 25th.  I tried to use git revert on specific AAC-related commits from that date range, but that didn't resolve the error.

Furthermore, even this HE-AAC thing doesn't seem to occur on other computers I have access to that are much newer and more powerful than mine.  For reference, my setup has a Celeron Coppermine and 512MBs of PC133 SDRAM.  Another computer that didn't exhibit this issue runs an Athlon64 Orleans with 2GBs of DDR2 SDRAM (I think DDR2-800).  The actual FFmpeg binary used was the same on both computers.

The output of a working FFmpeg build:
{{{

./ffmpeg.exe -v 9 -loglevel 99 -i $HOME/sample-5.flv
ffmpeg version r37999 git-57182b9 Copyright (c) 2000-2012 the FFmpeg developers
  built on Feb 18 2012 21:44:50 with gcc 4.6.1
  configuration: --prefix=/home/qyot27/win32_build --cross-prefix=i686-w64-mingw32- --enable-gpl --enable-version3 --disable-w32threads --enable-memalign-hack --disable-decoder=utvideo --enable-libutvideo --enable-libxvid --disable-encoder=mpeg4 --enable-avisynth --cpu=pentium3 --extra-cflags='-I/home/qyot27/win32_build/include -march=pentium3 -mtune=pentium3 -DPTW32_STATIC_LIB' --extra-ldflags=-L/home/qyot27/win32_build/lib --target-os=mingw32 --arch=x86
  libavutil      51. 39.100 / 51. 39.100
  libavcodec     54.  3.100 / 54.  3.100
  libavformat    54.  1.100 / 54.  1.100
  libavdevice    53.  4.100 / 53.  4.100
  libavfilter     2. 62.101 /  2. 62.101
  libswscale      2.  1.100 /  2.  1.100
  libswresample   0.  6.100 /  0.  6.100
  libpostproc    52.  0.100 / 52.  0.100
[flv @ 00142840] Format flv probed with size=2048 and score=100
[h264 @ 00148A00] no picture 
[flv @ 00142840] All info found
rfps: 23.750000 0.011777
    Last message repeated 1 times
rfps: 23.833333 0.004697
rfps: 23.916667 0.000836
rfps: 24.000000 0.000195
rfps: 24.083333 0.002773
rfps: 24.166667 0.008572
    Last message repeated 1 times
rfps: 24.250000 0.017590
    Last message repeated 1 times
rfps: 47.666667 0.018788
rfps: 47.750000 0.009456
rfps: 47.833333 0.003344
rfps: 47.916667 0.000452
rfps: 48.000000 0.000779
rfps: 48.083333 0.004327
rfps: 48.166667 0.011094
rfps: 23.976024 0.000049
Input #0, flv, from '/home/qyot27/sample-5.flv':
  Metadata:
    moovPosition    : 272105568
    avcprofile      : 77
    avclevel        : 31
    aacaot          : 2
    videoframerate  : 24
    audiochannels   : 2
  Duration: 00:21:22.80, start: 0.000000, bitrate: 32 kb/s
    Stream #0:0, 41, 1/1000: Video: h264 (Main), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1001/48000, 23.98 tbr, 1k tbn, 47.95 tbc
    Stream #0:1, 36, 1/1000: Audio: aac, 44100 Hz, stereo, s16
At least one output file must be specified
}}}

The output of a non-working FFmpeg:
{{{
./ffmpeg -v 9 -loglevel 99 -i $HOME/sample-5.flv
ffmpeg version N-38556-g456d65a Copyright (c) 2000-2012 the FFmpeg developers
  built on Mar  5 2012 14:32:36 with gcc 4.6.1
  configuration: --prefix=/home/qyot27/linuxffmpeg_build --enable-gpl --enable-version3 --enable-libxvid --disable-encoder=mpeg4 --cpu=pentium3 --extra-cflags='-march=pentium3 -mtune=pentium3'
  libavutil      51. 41.100 / 51. 41.100
  libavcodec     54.  8.100 / 54.  8.100
  libavformat    54.  2.100 / 54.  2.100
  libavdevice    53.  4.100 / 53.  4.100
  libavfilter     2. 63.100 /  2. 63.100
  libswscale      2.  1.100 /  2.  1.100
  libswresample   0.  7.100 /  0.  7.100
  libpostproc    52.  0.100 / 52.  0.100
[flv @ 0x95eeac0] Format flv probed with size=2048 and score=100
[h264 @ 0x95f4da0] no picture 
Illegal instruction
}}}

Only the audio (demuxed using the working build), still errors out with newer builds:
{{{
./ffmpeg -v 9 -loglevel 99 -i $HOME/sample-5.aac
ffmpeg version N-38556-g456d65a Copyright (c) 2000-2012 the FFmpeg developers
  built on Mar  5 2012 14:32:36 with gcc 4.6.1
  configuration: --prefix=/home/qyot27/linuxffmpeg_build --enable-gpl --enable-version3 --enable-libxvid --disable-encoder=mpeg4 --cpu=pentium3 --extra-cflags='-march=pentium3 -mtune=pentium3'
  libavutil      51. 41.100 / 51. 41.100
  libavcodec     54.  8.100 / 54.  8.100
  libavformat    54.  2.100 / 54.  2.100
  libavdevice    53.  4.100 / 53.  4.100
  libavfilter     2. 63.100 /  2. 63.100
  libswscale      2.  1.100 /  2.  1.100
  libswresample   0.  7.100 /  0.  7.100
  libpostproc    52.  0.100 / 52.  0.100
[aac @ 0xa2f7ac0] Format aac probed with size=2048 and score=51
Illegal instruction
}}}

Remuxing instead to MKV or MP4 produces virtually the same result, with 'Illegal instruction' after the Format probing message (and the h264 no picture message, if the video stream has been retained; otherwise it jumps directly to 'Illegal instruction').

To show that it's not all AAC files, the output of a different file (bought from iTunes):
{{{
./ffmpeg -v 9 -loglevel 99 -i /home/qyot27/Music/Songbird\ Music/Depeche\ Mode\ -\ Never\ Let\ Me\ Down\ Again\ \(Single\ Version\).m4a 
ffmpeg version N-38556-g456d65a Copyright (c) 2000-2012 the FFmpeg developers
  built on Mar  5 2012 14:32:36 with gcc 4.6.1
  configuration: --prefix=/home/qyot27/linuxffmpeg_build --enable-gpl --enable-version3 --enable-libxvid --disable-encoder=mpeg4 --cpu=pentium3 --extra-cflags='-march=pentium3 -mtune=pentium3'
  libavutil      51. 41.100 / 51. 41.100
  libavcodec     54.  8.100 / 54.  8.100
  libavformat    54.  2.100 / 54.  2.100
  libavdevice    53.  4.100 / 53.  4.100
  libavfilter     2. 63.100 /  2. 63.100
  libswscale      2.  1.100 /  2.  1.100
  libswresample   0.  7.100 /  0.  7.100
  libpostproc    52.  0.100 / 52.  0.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xaee3ac0] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xaee3ac0] ISO: File Type Major Brand: M4A 
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xaee3ac0] All info found
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/qyot27/Music/Songbird Music/Depeche Mode - Never Let Me Down Again (Single Version).m4a':
  Metadata:
    major_brand     : M4A 
    minor_version   : 0
    compatible_brands: M4A mp42isom
    creation_time   : 1941-06-18 03:43:01
    title           : Never Let Me Down Again (Single Version)
    artist          : Depeche Mode
    album_artist    : Depeche Mode
    album           : Singles Box 4
    genre           : Rock
    track           : 1/8
    disc            : 2/6
    date            : 2004-12-07T08:00:00Z
    gapless_playback: 0
    copyright       : ℗ 2004 Warner Bros. Records. Manufactured and Marketed by Warner Strategic Marketing
    media_type      : 1
  Duration: 00:04:22.03, start: 0.000000, bitrate: 278 kb/s
    Stream #0:0(eng), 1, 1/44100: Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, s16, 259 kb/s
    Metadata:
      creation_time   : 1941-06-18 03:43:01
      handler_name    : 
At least one output file must be specified
}}}

or one I'd encoded myself:
{{{
./ffmpeg -v 9 -loglevel 99 -i /home/qyot27/Music/Songbird\ Music/Third\ Eye\ Blind\ -\ Semi-Charmed\ Life.m4a 
ffmpeg version N-38556-g456d65a Copyright (c) 2000-2012 the FFmpeg developers
  built on Mar  5 2012 14:32:36 with gcc 4.6.1
  configuration: --prefix=/home/qyot27/linuxffmpeg_build --enable-gpl --enable-version3 --enable-libxvid --disable-encoder=mpeg4 --cpu=pentium3 --extra-cflags='-march=pentium3 -mtune=pentium3'
  libavutil      51. 41.100 / 51. 41.100
  libavcodec     54.  8.100 / 54.  8.100
  libavformat    54.  2.100 / 54.  2.100
  libavdevice    53.  4.100 / 53.  4.100
  libavfilter     2. 63.100 /  2. 63.100
  libswscale      2.  1.100 /  2.  1.100
  libswresample   0.  7.100 /  0.  7.100
  libpostproc    52.  0.100 / 52.  0.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xaba5ac0] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xaba5ac0] ISO: File Type Major Brand: mp42
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xaba5ac0] All info found
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/qyot27/Music/Songbird Music/Third Eye Blind - Semi-Charmed Life.m4a':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isom
    creation_time   : 2008-02-17 22:24:11
    track           : 5/21
    genre           : Soundtrack
    album           : ESPN Presents Jock Rock 2000
    artist          : Third Eye Blind
    title           : Semi-Charmed Life
    date            : 1999
  Duration: 00:04:24.60, start: 0.000000, bitrate: 208 kb/s
    Stream #0:0(eng), 1, 1/44100: Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, s16, 207 kb/s
    Metadata:
      creation_time   : 2008-02-17 22:24:11
      handler_name    : 
    Stream #0:1(eng), 0, 1/1000: Data: none (mp4s / 0x7334706D)
    Metadata:
      creation_time   : 2008-02-17 22:24:43
      handler_name    : 
    Stream #0:2(eng), 0, 1/1000: Data: none (mp4s / 0x7334706D)
    Metadata:
      creation_time   : 2008-02-17 22:24:43
      handler_name    : 
At least one output file must be specified
}}}

I don't know if a sample would be helpful if this actually requires a decade-old computer to reproduce the issue, but I've attached one anyway.",defect,closed,important,avcodec,git-master,fixed,aac sse,,,,0,0
