[FFmpeg-trac] #2525(FFmpeg:new): -vf deshake=opencl=1 Segmentation fault after: lavfi/unsharp: add opencl unsharp filter

FFmpeg trac at avcodec.org
Wed May 1 14:48:47 CEST 2013


#2525: -vf deshake=opencl=1 Segmentation fault after: lavfi/unsharp: add opencl
unsharp filter
-----------------------------------+--------------------------------------
             Reporter:  telperion  |                     Type:  defect
               Status:  new        |                 Priority:  normal
            Component:  FFmpeg     |                  Version:  git-master
             Keywords:             |               Blocked By:
             Blocking:             |  Reproduced by developer:  0
Analyzed by developer:  0          |
-----------------------------------+--------------------------------------
 after this commit
 http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=cd134963e8fdaae14a25779799e4436f99e50557

 {{{
 mc at debian64:~/Scrivania/1111/ffmpeg-cd13496$ ./ffmpeg -i ../test.mkv -vf
 deshake=opencl=1 -b:v 1600k ../out.avi
 ffmpeg version 1.1.git-cd13496 Copyright (c) 2000-2013 the FFmpeg
 developers
   built on May  1 2013 14:19:50 with gcc 4.7 (Debian 4.7.2-5)
   configuration: --extra-cflags='-Wall -g -O3 -march=core2 -mtune=core2'
 --prefix=/usr --enable-libmp3lame --enable-gpl --enable-nonfree --enable-
 libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-
 postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-
 libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-
 libspeex --enable-nonfree --disable-stripping --enable-libschroedinger
 --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg
 --enable-libvpx --enable-librtmp --enable-avfilter --enable-frei0r
 --enable-libopencv --enable-libfreetype --enable-libvo-aacenc --disable-
 decoder=amrnb --enable-libvo-amrwbenc --enable-libaacplus --enable-
 libdc1394 --disable-altivec --disable-armv5te --disable-armv6 --disable-
 vis --enable-filter=delogo --enable-filter=boxblur --enable-filter=frei0r
 --enable-filter=drawtext --enable-filter=gradfun --disable-ffserver
 --disable-shared --enable-static --enable-vdpau --enable-libfdk-aac
 --enable-libass --enable-libvidst --enable-opencl
   libavutil      52. 27.101 / 52. 27.101
   libavcodec     55.  6.100 / 55.  6.100
   libavformat    55.  3.100 / 55.  3.100
   libavdevice    55.  0.100 / 55.  0.100
   libavfilter     3. 60.102 /  3. 60.102
   libswscale      2.  2.100 /  2.  2.100
   libswresample   0. 17.102 /  0. 17.102
   libpostproc    52.  3.100 / 52.  3.100
 Input #0, matroska,webm, from '../test.mkv':
   Metadata:
     ENCODER         : Lavf55.3.100
   Duration: 00:01:00.14, start: 0.000000, bitrate: 883 kb/s
     Stream #0:0(eng): Video: h264 (High), yuv420p, 720x404 [SAR 1:1 DAR
 180:101], 23.98 fps, 23.98 tbr, 1k tbn, 180k tbc (default)
     Stream #0:1: Audio: aac, 48000 Hz, stereo, fltp (default)
 Segmentation fault
 }}}

 {{{
 mc at debian64:~/Scrivania/1111/ffmpeg-cd13496$ gdb ffmpeg_g
 GNU gdb (GDB) 7.4.1-debian
 Copyright (C) 2012 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 "x86_64-linux-gnu".
 For bug reporting instructions, please see:
 <http://www.gnu.org/software/gdb/bugs/>...
 Reading symbols from /home/mc/Scrivania/1111/ffmpeg-
 cd13496/ffmpeg_g...done.
 (gdb) r -i ../test.mkv -vf deshake=opencl=1 -b:v 1600k ../out.avi
 Starting program: /home/mc/Scrivania/1111/ffmpeg-cd13496/ffmpeg_g -i
 ../test.mkv -vf deshake=opencl=1 -b:v 1600 ../out.avi
 [Thread debugging using libthread_db enabled]
 Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
 ffmpeg version 1.1.git-cd13496 Copyright (c) 2000-2013 the FFmpeg
 developers
   built on May  1 2013 14:19:50 with gcc 4.7 (Debian 4.7.2-5)
   configuration: --extra-cflags='-Wall -g -O3 -march=core2 -mtune=core2'
 --prefix=/usr --enable-libmp3lame --enable-gpl --enable-nonfree --enable-
 libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-
 postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-
 libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-
 libspeex --enable-nonfree --disable-stripping --enable-libschroedinger
 --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg
 --enable-libvpx --enable-librtmp --enable-avfilter --enable-frei0r
 --enable-libopencv --enable-libfreetype --enable-libvo-aacenc --disable-
 decoder=amrnb --enable-libvo-amrwbenc --enable-libaacplus --enable-
 libdc1394 --disable-altivec --disable-armv5te --disable-armv6 --disable-
 vis --enable-filter=delogo --enable-filter=boxblur --enable-filter=frei0r
 --enable-filter=drawtext --enable-filter=gradfun --disable-ffserver
 --disable-shared --enable-static --enable-vdpau --enable-libfdk-aac
 --enable-libass --enable-libvidst --enable-opencl
   libavutil      52. 27.101 / 52. 27.101
   libavcodec     55.  6.100 / 55.  6.100
   libavformat    55.  3.100 / 55.  3.100
   libavdevice    55.  0.100 / 55.  0.100
   libavfilter     3. 60.102 /  3. 60.102
   libswscale      2.  2.100 /  2.  2.100
   libswresample   0. 17.102 /  0. 17.102
   libpostproc    52.  3.100 / 52.  3.100
 Input #0, matroska,webm, from '../test.mkv':
   Metadata:
     ENCODER         : Lavf55.3.100
   Duration: 00:01:00.14, start: 0.000000, bitrate: 883 kb/s
     Stream #0:0(eng): Video: h264 (High), yuv420p, 720x404 [SAR 1:1 DAR
 180:101], 23.98 fps, 23.98 tbr, 1k tbn, 180k tbc (default)
     Stream #0:1: Audio: aac, 48000 Hz, stereo, fltp (default)

 Program received signal SIGSEGV, Segmentation fault.
 0x00007ffff1aa125a in ?? () from /lib/x86_64-linux-gnu/libc.so.6
 (gdb) bt
 #0  0x00007ffff1aa125a in ?? () from /lib/x86_64-linux-gnu/libc.so.6
 #1  0x0000000000bf0b8a in av_opt_find2 (obj=obj at entry=0x108e780,
     name=0x65676e617220666f <Address 0x65676e617220666f out of bounds>,
     search_flags=search_flags at entry=0,
 target_obj=target_obj at entry=0x7fffffff90a8,
     opt_flags=0, unit=0x0) at libavutil/opt.c:1255
 #2  0x0000000000bf42af in set_number (search_flags=0,
 intnum=8461244959899871316,
     den=1, num=1, name=<optimized out>, obj=0x108e780) at
 libavutil/opt.c:359
 #3  av_opt_set_int (search_flags=0, val=8461244959899871316,
 name=<optimized out>,
     obj=0x108e780) at libavutil/opt.c:396
 #4  av_opt_set_defaults2 (s=s at entry=0x108e780, mask=mask at entry=0,
 flags=flags at entry=0)
     at libavutil/opt.c:966
 #5  0x0000000000bf43d9 in av_opt_set_defaults (s=s at entry=0x108e780)
     at libavutil/opt.c:945
 #6  0x0000000000bef3f2 in av_opencl_init
 (ext_opencl_env=ext_opencl_env at entry=0x0)
     at libavutil/opencl.c:593
 #7  0x00000000004cf331 in ff_opencl_deshake_init (ctx=ctx at entry=0x168b820)
     at libavfilter/deshake_opencl.c:101
 #8  0x0000000000412397 in init (ctx=0x168b820) at
 libavfilter/vf_deshake.c:377
 #9  0x00000000004833f6 in avfilter_init_dict (options=0x7fffffff91b0,
 ctx=0x168b820)
     at libavfilter/avfilter.c:781
 #10 avfilter_init_str (filter=filter at entry=0x168b820, args=<optimized
 out>,
     args at entry=0x1686fa0 "opencl=1") at libavfilter/avfilter.c:894
 #11 0x000000000048ea05 in create_filter
 (filt_ctx=filt_ctx at entry=0x7fffffff9398,
     ctx=ctx at entry=0x1677fc0, index=index at entry=0, filt_name=<optimized
 out>,
     args=args at entry=0x1686fa0 "opencl=1", log_ctx=log_ctx at entry=0x1677fc0)
     at libavfilter/graphparser.c:126
 #12 0x000000000048f3ea in parse_filter (log_ctx=0x1677fc0, index=0,
 graph=0x1677fc0,
     buf=0x7fffffff9378, filt_ctx=0x7fffffff9398) at
 libavfilter/graphparser.c:164
 #13 avfilter_graph_parse2 (graph=0x1677fc0, filters=0x1687b50 "",
     filters at entry=0x1687b40 "deshake=opencl=1",
 inputs=inputs at entry=0x7fffffff9468,
     outputs=outputs at entry=0x7fffffff9470) at libavfilter/graphparser.c:399
 #14 0x0000000000468278 in configure_filtergraph (fg=0x168b640) at
 ffmpeg_filter.c:758
 #15 0x00000000004714f4 in transcode_init () at ffmpeg.c:2273
 #16 0x000000000045d9e6 in transcode () at ffmpeg.c:3155
 #17 main (argc=8, argv=0x7fffffffe1e8) at ffmpeg.c:3361
 (gdb) disass $pc-32,$pc+32
 Dump of assembler code from 0x7ffff1aa123a to 0x7ffff1aa127a:
    0x00007ffff1aa123a:  test   %al,(%rax)
    0x00007ffff1aa123c:  add    %al,(%rax)
    0x00007ffff1aa123e:  add    %al,(%rax)
    0x00007ffff1aa1240:  mov    %esi,%ecx
    0x00007ffff1aa1242:  mov    %edi,%eax
    0x00007ffff1aa1244:  and    $0x3f,%rcx
    0x00007ffff1aa1248:  and    $0x3f,%rax
    0x00007ffff1aa124c:  cmp    $0x30,%ecx
    0x00007ffff1aa124f:  ja     0x7ffff1aa1290
    0x00007ffff1aa1251:  cmp    $0x30,%eax
    0x00007ffff1aa1254:  ja     0x7ffff1aa1290
    0x00007ffff1aa1256:  movlpd (%rdi),%xmm1
 => 0x00007ffff1aa125a:  movlpd (%rsi),%xmm2
    0x00007ffff1aa125e:  movhpd 0x8(%rdi),%xmm1
    0x00007ffff1aa1263:  movhpd 0x8(%rsi),%xmm2
    0x00007ffff1aa1268:  pxor   %xmm0,%xmm0
    0x00007ffff1aa126c:  pcmpeqb %xmm1,%xmm0
    0x00007ffff1aa1270:  pcmpeqb %xmm2,%xmm1
    0x00007ffff1aa1274:  psubb  %xmm0,%xmm1
    0x00007ffff1aa1278:  pmovmskb %xmm1,%edx
 End of assembler dump.
 }}}

 Segmentation fault also with -vf unsharp=5:5.0.5:opencl=1 previously
 unavailable.

 Before that commit it worked,
 build from snapshot
 http://git.videolan.org/?p=ffmpeg.git;a=commit;h=f31247cf47dcb7f3d986c67f1abbc0b50f1beefe

 {{{
 mc at debian64:~/Scrivania/1111/ffmpeg-f31247c$ ./ffmpeg -i ../test.mkv -vf
 deshake=opencl=1 -b:v 1600k ../out.avi
 ffmpeg version 1.1.git-f31247c Copyright (c) 2000-2013 the FFmpeg
 developers
   built on May  1 2013 14:13:52 with gcc 4.7 (Debian 4.7.2-5)
   configuration: --extra-cflags='-Wall -g -O3 -march=core2 -mtune=core2'
 --prefix=/usr --enable-libmp3lame --enable-gpl --enable-nonfree --enable-
 libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-
 postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-
 libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-
 libspeex --enable-nonfree --disable-stripping --enable-libschroedinger
 --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg
 --enable-libvpx --enable-librtmp --enable-avfilter --enable-frei0r
 --enable-libopencv --enable-libfreetype --enable-libvo-aacenc --disable-
 decoder=amrnb --enable-libvo-amrwbenc --enable-libaacplus --enable-
 libdc1394 --disable-altivec --disable-armv5te --disable-armv6 --disable-
 vis --enable-filter=delogo --enable-filter=boxblur --enable-filter=frei0r
 --enable-filter=drawtext --enable-filter=gradfun --disable-ffserver
 --disable-shared --enable-static --enable-vdpau --enable-libfdk-aac
 --enable-libass --enable-libvidst --enable-opencl
   libavutil      52. 27.101 / 52. 27.101
   libavcodec     55.  6.100 / 55.  6.100
   libavformat    55.  3.100 / 55.  3.100
   libavdevice    55.  0.100 / 55.  0.100
   libavfilter     3. 60.101 /  3. 60.101
   libswscale      2.  2.100 /  2.  2.100
   libswresample   0. 17.102 /  0. 17.102
   libpostproc    52.  3.100 / 52.  3.100
 Input #0, matroska,webm, from '../test.mkv':
   Metadata:
     ENCODER         : Lavf55.3.100
   Duration: 00:01:00.14, start: 0.000000, bitrate: 883 kb/s
     Stream #0:0(eng): Video: h264 (High), yuv420p, 720x404 [SAR 1:1 DAR
 180:101], 23.98 fps, 23.98 tbr, 1k tbn, 180k tbc (default)
     Stream #0:1: Audio: aac, 48000 Hz, stereo, fltp (default)
 Output #0, avi, to '../out.avi':
   Metadata:
     ISFT            : Lavf55.3.100
     Stream #0:0(eng): Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 720x404
 [SAR 1:1 DAR 180:101], q=2-31, 1600 kb/s, 23.98 tbn, 23.98 tbc (default)
     Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, fltp
 (default)
 Stream mapping:
   Stream #0:0 -> #0:0 (h264 -> mpeg4)
   Stream #0:1 -> #0:1 (aac -> libmp3lame)
 Press [q] to stop, [?] for help
 frame= 1441 fps= 73 q=9.0 Lsize=   13034kB time=00:01:00.18
 bitrate=1774.2kbits/s
 video:11994kB audio:938kB subtitle:0 global headers:0kB muxing overhead
 0.796354%
 }}}

 Debian sid 64 bit, nvidia 440GT.

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2525>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list