[FFmpeg-trac] #392(undetermined:open): ffplay segfaults trying any video format

FFmpeg trac at avcodec.org
Sat Aug 13 12:38:29 CEST 2011


#392: ffplay segfaults trying any video format
----------------------------+---------------------------
Reporter:  01micko          |       Owner:  michael
    Type:  defect           |      Status:  open
Priority:  normal           |   Component:  undetermined
 Version:  unspecified      |  Resolution:
Keywords:  segfault, video  |  Blocked By:
Blocking:                   |  Reproduced:  0
Analyzed:  0                |
----------------------------+---------------------------

Comment (by 01micko):

 Replying to [ticket:392 01micko]:
 > This is using 0.8.2. Any video format, trying to play with ffplay it
 almost starts then segfaults.
 > This is in Puppylinux built using Slackware-13.37 libraries.
 > This behaviour occurs in 0.8 and 0.8.1
 >
 > {{{
 > # ffplay movie2.3gp
 > ffplay version 0.8.2, Copyright (c) 2003-2011 the FFmpeg developers
 >   built on Aug 12 2011 08:52:43 with gcc 4.5.2
 >   configuration: --prefix=/usr --cpu=i686 --enable-libmp3lame --enable-
 libx264 --enable-libfaac --enable-pthreads --enable-small --enable-
 postproc --enable-libvorbis --enable-gpl --enable-shared --enable-nonfree
 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-debug
 --enable-bzlib --enable-zlib --enable-libspeex --enable-version3 --enable-
 runtime-cpudetect --enable-x11grab --enable-libdc1394 --enable-
 libschroedinger --enable-libtheora --enable-libxvid --enable-swscale
 --enable-libvpx
 >   libavutil    51.  9. 1 / 51.  9. 1
 >   libavcodec   53.  7. 0 / 53.  7. 0
 >   libavformat  53.  4. 0 / 53.  4. 0
 >   libavdevice  53.  1. 1 / 53.  1. 1
 >   libavfilter   2. 23. 0 /  2. 23. 0
 >   libswscale    2.  0. 0 /  2.  0. 0
 >   libpostproc  51.  2. 0 / 51.  2. 0
 > Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'movie2.3gp':
 >   Metadata:
 >     major_brand     : 3gp4
 >     minor_version   : 512
 >     compatible_brands: isomiso23gp4
 >     creation_time   : 1970-01-01 00:00:00
 >   Duration: 00:05:43.21, start: 0.000000, bitrate: 214 kb/s
 >     Stream #0.0(eng): Video: h263, yuv420p, 176x144 [PAR 12:11 DAR 4:3],
 205 kb/s, 25.02 fps, 25.02 tbr, 1001 tbn, 29.97 tbc
 >     Metadata:
 >       creation_time   : 1970-01-01 00:00:00
 >     Stream #0.1(eng): Audio: amrnb, 8000 Hz, 1 channels, flt, 6 kb/s
 >     Metadata:
 >       creation_time   : 1970-01-01 00:00:00
 > Segmentation fault03638.330 s:0.0 aq=  320KB vq= 2114KB sq=    0B f=0/0
 > # gdb ffmpeg_g
 > GNU gdb (GDB) 7.2
 > Copyright (C) 2010 Free Software Foundation, Inc.
 > License GPLv3+: GNU GPL version 3 or later
 <http://gnu.org/licenses/gpl.html>
 > This is free software: you are free to change and redistribute it.
 > There is NO WARRANTY, to the extent permitted by law.  Type "show
 copying"
 > and "show warranty" for details.
 > This GDB was configured as "i486-slackware-linux".
 > For bug reporting instructions, please see:
 > <http://www.gnu.org/software/gdb/bugs/>...
 > ffmpeg_g: No such file or directory.
 > (gdb) q
 > # ffplay_g movie2.3gp
 > ffplay version 0.8.2, Copyright (c) 2003-2011 the FFmpeg developers
 >   built on Aug 12 2011 08:52:43 with gcc 4.5.2
 >   configuration: --prefix=/usr --cpu=i686 --enable-libmp3lame --enable-
 libx264 --enable-libfaac --enable-pthreads --enable-small --enable-
 postproc --enable-libvorbis --enable-gpl --enable-shared --enable-nonfree
 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-debug
 --enable-bzlib --enable-zlib --enable-libspeex --enable-version3 --enable-
 runtime-cpudetect --enable-x11grab --enable-libdc1394 --enable-
 libschroedinger --enable-libtheora --enable-libxvid --enable-swscale
 --enable-libvpx
 >   libavutil    51.  9. 1 / 51.  9. 1
 >   libavcodec   53.  7. 0 / 53.  7. 0
 >   libavformat  53.  4. 0 / 53.  4. 0
 >   libavdevice  53.  1. 1 / 53.  1. 1
 >   libavfilter   2. 23. 0 /  2. 23. 0
 >   libswscale    2.  0. 0 /  2.  0. 0
 >   libpostproc  51.  2. 0 / 51.  2. 0
 > Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'movie2.3gp':
 >   Metadata:
 >     major_brand     : 3gp4
 >     minor_version   : 512
 >     compatible_brands: isomiso23gp4
 >     creation_time   : 1970-01-01 00:00:00
 >   Duration: 00:05:43.21, start: 0.000000, bitrate: 214 kb/s
 >     Stream #0.0(eng): Video: h263, yuv420p, 176x144 [PAR 12:11 DAR 4:3],
 205 kb/s, 25.02 fps, 25.02 tbr, 1001 tbn, 29.97 tbc
 >     Metadata:
 >       creation_time   : 1970-01-01 00:00:00
 >     Stream #0.1(eng): Audio: amrnb, 8000 Hz, 1 channels, flt, 6 kb/s
 >     Metadata:
 >       creation_time   : 1970-01-01 00:00:00
 > Segmentation fault03899.247 s:0.0 aq=  320KB vq= 2114KB sq=    0B f=0/0
 > # gdb ffplay_g movie2.3gp
 > GNU gdb (GDB) 7.2
 > Copyright (C) 2010 Free Software Foundation, Inc.
 > License GPLv3+: GNU GPL version 3 or later
 <http://gnu.org/licenses/gpl.html>
 > This is free software: you are free to change and redistribute it.
 > There is NO WARRANTY, to the extent permitted by law.  Type "show
 copying"
 > and "show warranty" for details.
 > This GDB was configured as "i486-slackware-linux".
 > For bug reporting instructions, please see:
 > <http://www.gnu.org/software/gdb/bugs/>...
 > Reading symbols from /usr/sbin/ffplay_g...done.
 > "/mnt/sdb7/0video/nvid/movie2.3gp" is not a core dump: File format not
 recognized
 > (gdb) r ffplay_g movie2.3gp
 > Starting program: /usr/sbin/ffplay_g ffplay_g movie2.3gp
 > [Thread debugging using libthread_db enabled]
 > ffplay version 0.8.2, Copyright (c) 2003-2011 the FFmpeg developers
 >   built on Aug 12 2011 08:52:43 with gcc 4.5.2
 >   configuration: --prefix=/usr --cpu=i686 --enable-libmp3lame --enable-
 libx264 --enable-libfaac --enable-pthreads --enable-small --enable-
 postproc --enable-libvorbis --enable-gpl --enable-shared --enable-nonfree
 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-debug
 --enable-bzlib --enable-zlib --enable-libspeex --enable-version3 --enable-
 runtime-cpudetect --enable-x11grab --enable-libdc1394 --enable-
 libschroedinger --enable-libtheora --enable-libxvid --enable-swscale
 --enable-libvpx
 >   libavutil    51.  9. 1 / 51.  9. 1
 >   libavcodec   53.  7. 0 / 53.  7. 0
 >   libavformat  53.  4. 0 / 53.  4. 0
 >   libavdevice  53.  1. 1 / 53.  1. 1
 >   libavfilter   2. 23. 0 /  2. 23. 0
 >   libswscale    2.  0. 0 /  2.  0. 0
 >   libpostproc  51.  2. 0 / 51.  2. 0
 > Argument 'movie2.3gp' provided as input filename, but 'ffplay_g' was
 already specified.
 >
 > Program exited with code 01.
 > (gdb) r movie2.3gp
 > Starting program: /usr/sbin/ffplay_g movie2.3gp
 > [Thread debugging using libthread_db enabled]
 > ffplay version 0.8.2, Copyright (c) 2003-2011 the FFmpeg developers
 >   built on Aug 12 2011 08:52:43 with gcc 4.5.2
 >   configuration: --prefix=/usr --cpu=i686 --enable-libmp3lame --enable-
 libx264 --enable-libfaac --enable-pthreads --enable-small --enable-
 postproc --enable-libvorbis --enable-gpl --enable-shared --enable-nonfree
 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-debug
 --enable-bzlib --enable-zlib --enable-libspeex --enable-version3 --enable-
 runtime-cpudetect --enable-x11grab --enable-libdc1394 --enable-
 libschroedinger --enable-libtheora --enable-libxvid --enable-swscale
 --enable-libvpx
 >   libavutil    51.  9. 1 / 51.  9. 1
 >   libavcodec   53.  7. 0 / 53.  7. 0
 >   libavformat  53.  4. 0 / 53.  4. 0
 >   libavdevice  53.  1. 1 / 53.  1. 1
 >   libavfilter   2. 23. 0 /  2. 23. 0
 >   libswscale    2.  0. 0 /  2.  0. 0
 >   libpostproc  51.  2. 0 / 51.  2. 0
 > [New Thread 0xb6902b70 (LWP 1465)]
 > [New Thread 0xb5f22b70 (LWP 1466)]
 > Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'movie2.3gp':
 >   Metadata:
 >     major_brand     : 3gp4
 >     minor_version   : 512
 >     compatible_brands: isomiso23gp4
 >     creation_time   : 1970-01-01 00:00:00
 >   Duration: 00:05:43.21, start: 0.000000, bitrate: 214 kb/s
 >     Stream #0.0(eng): Video: h263, yuv420p, 176x144 [PAR 12:11 DAR 4:3],
 205 kb/s, 25.02 fps, 25.02 tbr, 1001 tbn, 29.97 tbc
 >     Metadata:
 >       creation_time   : 1970-01-01 00:00:00
 >     Stream #0.1(eng): Audio: amrnb, 8000 Hz, 1 channels, flt, 6 kb/s
 >     Metadata:
 >       creation_time   : 1970-01-01 00:00:00
 > [New Thread 0xb5657b70 (LWP 1467)]
 > [New Thread 0xb4e57b70 (LWP 1468)]
 > [New Thread 0xb4657b70 (LWP 1469)]
 >
 > Program received signal SIGSEGV, Segmentation fault.
 > [Switching to Thread 0xb4e57b70 (LWP 1468)]
 > 0xb7353b87 in strcmp () from /lib/libc.so.6
 > (gdb) bt
 > #0  0xb7353b87 in strcmp () from /lib/libc.so.6
 > #1  0xb7f9e0a1 in avfilter_get_by_name () from /usr/lib/libavfilter.so.2
 > #2  0x00000006 in ?? ()
 > #3  0x00000006 in ?? ()
 > #4  0x080bbda0 in ?? ()
 > #5  0x080c4eb8 in ?? ()
 > Backtrace stopped: previous frame inner to this frame (corrupt stack?)
 > (gdb) disass $pc-32,$pc+32
 > Dump of assembler code from 0xb7353b67 to 0xb7353ba7:
 >    0xb7353b67:        nop
 >    0xb7353b68:        nop
 >    0xb7353b69:        nop
 >    0xb7353b6a:        nop
 >    0xb7353b6b:        nop
 >    0xb7353b6c:        nop
 >    0xb7353b6d:        nop
 >    0xb7353b6e:        nop
 >    0xb7353b6f:        nop
 >    0xb7353b70 <strcmp+0>:     push   %ebp
 >    0xb7353b71 <strcmp+1>:     xor    %eax,%eax
 >    0xb7353b73 <strcmp+3>:     mov    %esp,%ebp
 >    0xb7353b75 <strcmp+5>:     push   %edi
 >    0xb7353b76 <strcmp+6>:     mov    0x8(%ebp),%edi
 >    0xb7353b79 <strcmp+9>:     push   %esi
 >    0xb7353b7a <strcmp+10>:    mov    0xc(%ebp),%esi
 >    0xb7353b7d <strcmp+13>:    jmp    0xb7353b87 <strcmp+23>
 >    0xb7353b7f <strcmp+15>:    nop
 >    0xb7353b80 <strcmp+16>:    add    $0x1,%eax
 >    0xb7353b83 <strcmp+19>:    cmp    %cl,%dl
 >    0xb7353b85 <strcmp+21>:    jne    0xb7353ba0 <strcmp+48>
 > => 0xb7353b87 <strcmp+23>:    movzbl (%edi,%eax,1),%edx
 > ---Type <return> to continue, or q <return> to quit---
 >    0xb7353b8b <strcmp+27>:    movzbl (%esi,%eax,1),%ecx
 >    0xb7353b8f <strcmp+31>:    test   %dl,%dl
 >    0xb7353b91 <strcmp+33>:    jne    0xb7353b80 <strcmp+16>
 >    0xb7353b93 <strcmp+35>:    movzbl %cl,%eax
 >    0xb7353b96 <strcmp+38>:    neg    %eax
 >    0xb7353b98 <strcmp+40>:    pop    %esi
 >    0xb7353b99 <strcmp+41>:    pop    %edi
 >    0xb7353b9a <strcmp+42>:    pop    %ebp
 >    0xb7353b9b <strcmp+43>:    ret
 >    0xb7353b9c <strcmp+44>:    lea    0x0(%esi,%eiz,1),%esi
 >    0xb7353ba0 <strcmp+48>:    movzbl %dl,%eax
 >    0xb7353ba3 <strcmp+51>:    movzbl %cl,%ecx
 >    0xb7353ba6 <strcmp+54>:    sub    %ecx,%eax
 > End of assembler dump.
 > (gdb) info all-registers
 > eax            0x0    0
 > ecx            0x62   98
 > edx            0x68   104
 > ebx            0xb7fce2a0     -1208163680
 > esp            0xb4e57180     0xb4e57180
 > ebp            0xb4e57188     0xb4e57188
 > esi            0x8052634      134555188
 > edi            0x0    0
 > eip            0xb7353b87     0xb7353b87 <strcmp+23>
 > 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            -nan(0x8080808080808080)       (raw
 0xffff8080808080808080)
 > st1            -nan(0x80008000800080) (raw 0xffff0080008000800080)
 > st2            0.00430206954479217529296875   (raw
 0x3ff78cf8600000000000)
 > st3            0.024543692606170257163581598439106024 (raw
 0x3ff9c90fdaa22168bc6a)
 > st4            0.357096850872039794921875     (raw
 0x3ffdb6d5660000000000)
 > st5            4000   (raw 0x400afa00000000000000)
 > ---Type <return> to continue, or q <return> to quit---
 > st6            8000   (raw 0x400bfa00000000000000)
 > st7            0.25599999999999999998937481870964206  (raw
 0x3ffd83126e978d4fdf3b)
 > fctrl          0x37f  895
 > fstat          0x4220 16928
 > ftag           0xffff 65535
 > fiseg          0x0    0
 > fioff          0x0    0
 > foseg          0x0    0
 > fooff          0x0    0
 > fop            0x0    0
 > xmm0           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
 >   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
 >     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
 >   uint128 = 0x00000000000000000000000000000000}
 > xmm1           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
 >   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
 >     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
 >   uint128 = 0x00000000000000000000000000000000}
 > xmm2           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
 >   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
 >     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
 >   uint128 = 0x00000000000000000000000000000000}
 > ---Type <return> to continue, or q <return> to quit---
 > xmm3           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
 >   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
 >     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
 >   uint128 = 0x00000000000000000000000000000000}
 > xmm4           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
 >   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
 >     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
 >   uint128 = 0x00000000000000000000000000000000}
 > xmm5           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
 >   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
 >     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
 >   uint128 = 0x00000000000000000000000000000000}
 > xmm6           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
 >   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
 >     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
 >   uint128 = 0x00000000000000000000000000000000}
 > xmm7           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
 >   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
 >     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
 >   uint128 = 0x00000000000000000000000000000000}
 > mxcsr          0x1f80 [ IM DM ZM OM UM PM ]
 > mm0            {uint64 = 0x8080808080808080, v2_int32 = {0x80808080,
 >     0x80808080}, v4_int16 = {0x8080, 0x8080, 0x8080, 0x8080}, v8_int8 =
 {0x80,
 > ---Type <return> to continue, or q <return> to quit---
 >     0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80}}
 > mm1            {uint64 = 0x80008000800080, v2_int32 = {0x800080,
 0x800080},
 >   v4_int16 = {0x80, 0x80, 0x80, 0x80}, v8_int8 = {0x80, 0x0, 0x80, 0x0,
 0x80,
 >     0x0, 0x80, 0x0}}
 > mm2            {uint64 = 0x8cf8600000000000, v2_int32 = {0x0,
 0x8cf86000},
 >   v4_int16 = {0x0, 0x0, 0x6000, 0x8cf8}, v8_int8 = {0x0, 0x0, 0x0, 0x0,
 0x0,
 >     0x60, 0xf8, 0x8c}}
 > mm3            {uint64 = 0xc90fdaa22168bc6a, v2_int32 = {0x2168bc6a,
 >     0xc90fdaa2}, v4_int16 = {0xbc6a, 0x2168, 0xdaa2, 0xc90f}, v8_int8 =
 {0x6a,
 >     0xbc, 0x68, 0x21, 0xa2, 0xda, 0xf, 0xc9}}
 > mm4            {uint64 = 0xb6d5660000000000, v2_int32 = {0x0,
 0xb6d56600},
 >   v4_int16 = {0x0, 0x0, 0x6600, 0xb6d5}, v8_int8 = {0x0, 0x0, 0x0, 0x0,
 0x0,
 >     0x66, 0xd5, 0xb6}}
 > mm5            {uint64 = 0xfa00000000000000, v2_int32 = {0x0,
 0xfa000000},
 >   v4_int16 = {0x0, 0x0, 0x0, 0xfa00}, v8_int8 = {0x0, 0x0, 0x0, 0x0,
 0x0, 0x0,
 >     0x0, 0xfa}}
 > mm6            {uint64 = 0xfa00000000000000, v2_int32 = {0x0,
 0xfa000000},
 >   v4_int16 = {0x0, 0x0, 0x0, 0xfa00}, v8_int8 = {0x0, 0x0, 0x0, 0x0,
 0x0, 0x0,
 >     0x0, 0xfa}}
 > mm7            {uint64 = 0x83126e978d4fdf3b, v2_int32 = {0x8d4fdf3b,
 >     0x83126e97}, v4_int16 = {0xdf3b, 0x8d4f, 0x6e97, 0x8312}, v8_int8 =
 {0x3b,
 >     0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83}}
 > (gdb)
 >
 > }}}
 >
 > Thank you
 Ok, if I just use "--prefix=/usr" it works but I have massive binaries.
 Inefficient I feel. Similar compile options have been used successfully in
 the 0.7 and 0.6 series.
 Thanks

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/392#comment:2>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list