[FFmpeg-trac] #369(avcodec:new): Multichannel encoding with the native aac encoder crashes

FFmpeg trac at avcodec.org
Thu Jul 28 18:21:06 CEST 2011


#369: Multichannel encoding with the native aac encoder crashes
-------------------------+----------------------------
  Reporter:  cehoyos     |      Owner:
      Type:  defect      |     Status:  new
  Priority:  important   |  Component:  avcodec
   Version:  git-master  |   Keywords:  aac regression
Blocked By:              |   Blocking:
Reproduced:  0           |   Analyzed:  0
-------------------------+----------------------------
 Regression since

 commit 01344fe409da286cd377f9af610eb4c4888687ec
 Author: Nathan Caldwell <saintdev at gmail.com>
 Date:   Wed May 18 23:14:59 2011 -0600

     aacenc: Implement dummy channel group analysis that just calls the
 single channel analysis for each channel.

 Using samples.mplayerhq.hu/A-codecs/AC3/Canyon-5.1-48khz-448kbit.ac3 (or
 any 5.1 sample):
 {{{
 (gdb) r -i Canyon-5.1-48khz-448kbit.ac3 -strict experimental out.aac
 Starting program: ffmpeg_g -i Canyon-5.1-48khz-448kbit.ac3 -strict
 experimental out.aac
 [Thread debugging using libthread_db enabled]
 ffmpeg version N-31670-g956c901, Copyright (c) 2000-2011 the FFmpeg
 developers
   built on Jul 28 2011 18:16:14 with gcc 4.3.2 [gcc-4_3-branch revision
 141291]
   configuration:
   libavutil    51. 11. 1 / 51. 11. 1
   libavcodec   53.  9. 0 / 53.  9. 0
   libavformat  53.  6. 0 / 53.  6. 0
   libavdevice  53.  2. 0 / 53.  2. 0
   libavfilter   2. 27. 3 /  2. 27. 3
   libswscale    2.  0. 0 /  2.  0. 0
 [ac3 @ 0x8cf5380] max_analyze_duration 5000000 reached at 5024000
 [ac3 @ 0x8cf5380] Estimating duration from bitrate, this may be inaccurate
 Input #0, ac3, from 'Canyon-5.1-48khz-448kbit.ac3':
   Duration: 00:00:37.98, start: 0.000000, bitrate: 448 kb/s
     Stream #0.0: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s
 Output #0, adts, to 'out.aac':
   Metadata:
     encoder         : Lavf53.6.0
     Stream #0.0: Audio: aac, 48000 Hz, 5.1, s16, 64 kb/s
 Stream mapping:
   Stream #0.0 -> #0.0
 Press [q] to stop, [?] for help

 Program received signal SIGSEGV, Segmentation fault.
 psy_3gpp_analyze_channel (ctx=0x8cf18d4, channel=8, coefs=0x1,
 wi=0xbfffd6e8) at libavcodec/aacpsy.c:583
 583                     band->energy += coefs[start+i] * coefs[start+i];
 (gdb) bt
 #0  psy_3gpp_analyze_channel (ctx=0x8cf18d4, channel=8, coefs=0x1,
 wi=0xbfffd6e8) at libavcodec/aacpsy.c:583
 #1  0x085f646c in psy_3gpp_analyze (ctx=0x8cf18d4, channel=5,
 coeffs=0xbfffd688, wi=0xbfffd640)
     at libavcodec/aacpsy.c:751
 #2  0x08550988 in aac_encode_frame (avctx=0x8cf5a80, frame=<value
 optimized out>, buf_size=173272,
     data=0xb7996020) at libavcodec/aacenc.c:593
 #3  0x08439d33 in avcodec_encode_audio (avctx=0x8cf5a80, buf=0xb7969020
 "�", buf_size=173272, samples=0x1)
     at libavcodec/utils.c:680
 #4  0x0804fd37 in output_packet (ist=0x8cf9270, ist_index=0,
 ost_table=0x8cf08c0, nb_ostreams=1,
     pkt=0xbfffeeb4) at ffmpeg.c:1011
 #5  0x08054ac5 in transcode (output_files=0x87962c0, nb_output_files=1,
 input_files=0x8cfb1a0,
     nb_input_files=1, stream_maps=0x0, nb_stream_maps=0) at ffmpeg.c:2819
 #6  0x080558bd in main (argc=Cannot access memory at address 0x0
 ) at ffmpeg.c:4575
 (gdb) disass $pc-32 $pc+32
 Dump of assembler code from 0x85f5222 to 0x85f5262:
 0x085f5222 <psy_3gpp_analyze_channel+274>:      fsts   (%edi)
 0x085f5224 <psy_3gpp_analyze_channel+276>:      cmpb   $0x0,(%esi,%ebx,1)
 0x085f5228 <psy_3gpp_analyze_channel+280>:      fld    %st(0)
 0x085f522a <psy_3gpp_analyze_channel+282>:      fld    %st(1)
 0x085f522c <psy_3gpp_analyze_channel+284>:      je     0x85f5264
 <psy_3gpp_analyze_channel+340>
 0x085f522e <psy_3gpp_analyze_channel+286>:      fstp   %st(0)
 0x085f5230 <psy_3gpp_analyze_channel+288>:      fstp   %st(0)
 0x085f5232 <psy_3gpp_analyze_channel+290>:      mov    0x70(%esp),%eax
 0x085f5236 <psy_3gpp_analyze_channel+294>:      fld    %st(0)
 0x085f5238 <psy_3gpp_analyze_channel+296>:      xor    %ecx,%ecx
 0x085f523a <psy_3gpp_analyze_channel+298>:      lea    (%eax,%ebp,4),%edx
 0x085f523d <psy_3gpp_analyze_channel+301>:      jmp    0x85f5242
 <psy_3gpp_analyze_channel+306>
 0x085f523f <psy_3gpp_analyze_channel+303>:      nop
 0x085f5240 <psy_3gpp_analyze_channel+304>:      fxch   %st(1)
 0x085f5242 <psy_3gpp_analyze_channel+306>:      flds   (%edx)
 0x085f5244 <psy_3gpp_analyze_channel+308>:      add    $0x1,%ecx
 0x085f5247 <psy_3gpp_analyze_channel+311>:      fmul   %st(0),%st
 0x085f5249 <psy_3gpp_analyze_channel+313>:      faddp  %st,%st(2)
 0x085f524b <psy_3gpp_analyze_channel+315>:      fxch   %st(1)
 0x085f524d <psy_3gpp_analyze_channel+317>:      fsts   (%edi)
 0x085f524f <psy_3gpp_analyze_channel+319>:      movzbl (%esi,%ebx,1),%eax
 0x085f5253 <psy_3gpp_analyze_channel+323>:      flds   (%edx)
 0x085f5255 <psy_3gpp_analyze_channel+325>:      add    $0x4,%edx
 0x085f5258 <psy_3gpp_analyze_channel+328>:      fabs
 0x085f525a <psy_3gpp_analyze_channel+330>:      fsqrt
 0x085f525c <psy_3gpp_analyze_channel+332>:      cmp    %ecx,%eax
 0x085f525e <psy_3gpp_analyze_channel+334>:      faddp  %st,%st(2)
 0x085f5260 <psy_3gpp_analyze_channel+336>:      jg     0x85f5240
 <psy_3gpp_analyze_channel+304>
 End of assembler dump.
 (gdb) info register
 eax            0x1      1
 ecx            0x0      0
 edx            0x1      1
 ebx            0x0      0
 esp            0xbfffd060       0xbfffd060
 ebp            0x0      0x0
 esi            0x874f100        141881600
 edi            0x8d80a80        148376192
 eip            0x85f5242        0x85f5242 <psy_3gpp_analyze_channel+306>
 eflags         0x10246  [ PF ZF IF RF ]
 cs             0x73     115
 ss             0x7b     123
 ds             0x7b     123
 es             0x7b     123
 fs             0x0      0
 gs             0x33     51
 st0            0        (raw 0x00000000000000000000)
 st1            0        (raw 0x00000000000000000000)
 st2            66.6687469482421875      (raw 0x40058556660000000000)
 st3            0.5999999940395355224609375      (raw
 0x3ffe9999998000000000)
 st4            3571.3314971923828125    (raw 0x400adf354dd000000000)
 st5            45.60345458984375        (raw 0x4004b669f00000000000)
 st6            112.2722015380859375     (raw 0x4005e08b5e0000000000)
 st7            0        (raw 0x00000000000000000000)
 }}}

-- 
Ticket URL: <http://www.avcodec.org/trac/ffmpeg/ticket/369>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list