[FFmpeg-trac] #3380(swresample:open): swresample segfault with 10-channel amerge+pan

FFmpeg trac at avcodec.org
Tue Feb 11 15:38:22 CET 2014


#3380: swresample segfault with 10-channel amerge+pan
------------------------------------+--------------------------------------
             Reporter:  MarkZV      |                    Owner:
                 Type:  defect      |                   Status:  open
             Priority:  important   |                Component:  swresample
              Version:  git-master  |               Resolution:
             Keywords:  crash       |               Blocked By:
             Blocking:              |  Reproduced by developer:  1
Analyzed by developer:  0           |
------------------------------------+--------------------------------------

Comment (by cehoyos):

 {{{
 $ cp fate-suite/audio-reference/luckynight_2ch_44kHz_s16.wav in.wav
 $ valgrind ./ffmpeg_g -i in.wav -i in.wav -i in.wav -i in.wav -i in.wav
 -filter_complex 'amerge=inputs=5,pan=stereo|FL=0.5*c0+0.2*c2+0.1*c8|FR=c9'
 -acodec ac3 -f null -
 ==13549== Memcheck, a memory error detector
 ==13549== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
 ==13549== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright
 info
 ==13549== Command: ./ffmpeg_g -i in.wav -i in.wav -i in.wav -i in.wav -i
 in.wav -filter_complex
 amerge=inputs=5,pan=stereo|FL=0.5*c0+0.2*c2+0.1*c8|FR=c9 -acodec ac3 -f
 null -
 ==13549==
 ffmpeg version N-60530-g6c12b1d Copyright (c) 2000-2014 the FFmpeg
 developers
   built on Feb 11 2014 14:27:58 with gcc 4.7 (SUSE Linux)
   configuration: --enable-gpl
   libavutil      52. 63.101 / 52. 63.101
   libavcodec     55. 50.100 / 55. 50.100
   libavformat    55. 31.100 / 55. 31.100
   libavdevice    55.  8.100 / 55.  8.100
   libavfilter     4.  1.102 /  4.  1.102
   libswscale      2.  5.101 /  2.  5.101
   libswresample   0. 17.104 /  0. 17.104
   libpostproc    52.  3.100 / 52.  3.100
 Guessed Channel Layout for  Input Stream #0.0 : stereo
 Input #0, wav, from 'in.wav':
   Duration: 00:00:09.50, bitrate: 1411 kb/s
     Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz,
 stereo, s16, 1411 kb/s
 Guessed Channel Layout for  Input Stream #1.0 : stereo
 Input #1, wav, from 'in.wav':
   Duration: 00:00:09.50, bitrate: 1411 kb/s
     Stream #1:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz,
 stereo, s16, 1411 kb/s
 Guessed Channel Layout for  Input Stream #2.0 : stereo
 Input #2, wav, from 'in.wav':
   Duration: 00:00:09.50, bitrate: 1411 kb/s
     Stream #2:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz,
 stereo, s16, 1411 kb/s
 Guessed Channel Layout for  Input Stream #3.0 : stereo
 Input #3, wav, from 'in.wav':
   Duration: 00:00:09.50, bitrate: 1411 kb/s
     Stream #3:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz,
 stereo, s16, 1411 kb/s
 Guessed Channel Layout for  Input Stream #4.0 : stereo
 Input #4, wav, from 'in.wav':
   Duration: 00:00:09.50, bitrate: 1411 kb/s
     Stream #4:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz,
 stereo, s16, 1411 kb/s
 [Parsed_amerge_0 @ 0x7b40320] No channel layout for input 1
 [Parsed_amerge_0 @ 0x7b40320] Input channel layouts overlap: output layout
 will be determined by the number of distinct input channels
 Output #0, null, to 'pipe:':
   Metadata:
     encoder         : Lavf55.31.100
     Stream #0:0: Audio: ac3, 44100 Hz, stereo, fltp, 192 kb/s (default)
 Stream mapping:
   Stream #0:0 (pcm_s16le) -> amerge:in0
   Stream #1:0 (pcm_s16le) -> amerge:in1
   Stream #2:0 (pcm_s16le) -> amerge:in2
   Stream #3:0 (pcm_s16le) -> amerge:in3
   Stream #4:0 (pcm_s16le) -> amerge:in4
   pan -> Stream #0:0 (ac3)
 Press [q] to stop, [?] for help
 ==13549== Invalid read of size 4
 ==13549==    at 0xCAB257: swri_rematrix (rematrix.c:474)
 ==13549==    by 0xCAC257: swr_convert_internal.part.3 (swresample.c:681)
 ==13549==    by 0xCACFCA: swr_convert (swresample.c:523)
 ==13549==    by 0x4EC7C3: filter_frame (af_pan.c:373)
 ==13549==    by 0x48D129: ff_filter_frame_framed (avfilter.c:1081)
 ==13549==    by 0x48E228: ff_filter_frame (avfilter.c:1161)
 ==13549==    by 0x4E4D02: filter_frame (af_aresample.c:215)
 ==13549==    by 0x48D129: ff_filter_frame_framed (avfilter.c:1081)
 ==13549==    by 0x48E228: ff_filter_frame (avfilter.c:1161)
 ==13549==    by 0x4E288F: filter_frame (af_amerge.c:303)
 ==13549==    by 0x48D129: ff_filter_frame_framed (avfilter.c:1081)
 ==13549==    by 0x48E228: ff_filter_frame (avfilter.c:1161)
 ==13549==  Address 0x1080 is not stack'd, malloc'd or (recently) free'd
 ==13549==
 ==13549==
 ==13549== Process terminating with default action of signal 11 (SIGSEGV)
 ==13549==  Access not within mapped region at address 0x1080
 ==13549==    at 0xCAB257: swri_rematrix (rematrix.c:474)
 ==13549==    by 0xCAC257: swr_convert_internal.part.3 (swresample.c:681)
 ==13549==    by 0xCACFCA: swr_convert (swresample.c:523)
 ==13549==    by 0x4EC7C3: filter_frame (af_pan.c:373)
 ==13549==    by 0x48D129: ff_filter_frame_framed (avfilter.c:1081)
 ==13549==    by 0x48E228: ff_filter_frame (avfilter.c:1161)
 ==13549==    by 0x4E4D02: filter_frame (af_aresample.c:215)
 ==13549==    by 0x48D129: ff_filter_frame_framed (avfilter.c:1081)
 ==13549==    by 0x48E228: ff_filter_frame (avfilter.c:1161)
 ==13549==    by 0x4E288F: filter_frame (af_amerge.c:303)
 ==13549==    by 0x48D129: ff_filter_frame_framed (avfilter.c:1081)
 ==13549==    by 0x48E228: ff_filter_frame (avfilter.c:1161)
 ==13549==  If you believe this happened as a result of a stack
 ==13549==  overflow in your program's main thread (unlikely but
 ==13549==  possible), you can try to increase the size of the
 ==13549==  main thread stack using the --main-stacksize= flag.
 ==13549==  The main thread stack size used in this run was 8388608.
 ==13549==
 ==13549== HEAP SUMMARY:
 ==13549==     in use at exit: 5,358,575 bytes in 4,748 blocks
 ==13549==   total heap usage: 7,189 allocs, 2,441 frees, 7,141,529 bytes
 allocated
 ==13549==
 ==13549== LEAK SUMMARY:
 ==13549==    definitely lost: 0 bytes in 0 blocks
 ==13549==    indirectly lost: 0 bytes in 0 blocks
 ==13549==      possibly lost: 3,808 bytes in 14 blocks
 ==13549==    still reachable: 5,354,767 bytes in 4,734 blocks
 ==13549==         suppressed: 0 bytes in 0 blocks
 ==13549== Rerun with --leak-check=full to see details of leaked memory
 ==13549==
 ==13549== For counts of detected and suppressed errors, rerun with: -v
 ==13549== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 2 from 2)
 Killed
 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/3380#comment:3>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list