On Thu, Aug 20, 2020 at 12:53:05 +0200, Moritz Barsnick wrote: > Alas, with the patchset, the following command quickly terminates with > Illegal instruction in ff_cfhd_horiz_filter_clip10_sse2 ():
The same on this CPU, obviously, because it also doesn't support SSE4.1: [barsnick@paradise ffmpeg]$ hwinfo --cpu 01: None 00.0: 10103 CPU [Created at cpu.462] Unique ID: rdCR.j8NaKXDZtZ6 Hardware Class: cpu Arch: X86-64 Vendor: "GenuineIntel" Model: 6.28.10 "Intel(R) Atom(TM) CPU D525 @ 1.80GHz" Features: fpu,vme,de,pse,tsc,msr,pae,mce,cx8,apic,sep,mtrr,pge,mca,cmov,pat,pse36,clflush,dts,acpi,mmx,fxsr,sse,sse2,ss,ht,t m,pbe,syscall,nx,lm,constant_tsc,arch_perfmon,pebs,bts,rep_good,nopl,cpuid,aperfmperf,pni,dtes64,monitor,ds_cpl,tm2,ssse3,cx16 ,xtpr,pdcm,movbe,lahf_lm,dtherm Clock: 1800 MHz BogoMips: 3599.75 Cache: 512 kb Units/Processor: 4 Config Status: cfg=new, avail=yes, need=no, active=unknown [... x4] Additionally, with bigger_res.mov, I get a double-free: Compiler: gcc-10.2.1 Assembler: nasm-2.14.02 glibc-2.31 [barsnick@paradise ffmpeg]$ gdb -ex r --args ./ffmpeg_g -i bigger_res.mov -map 0:v -f null - GNU gdb (GDB) Fedora 9.1-5.fc32 [...] Reading symbols from ./ffmpeg_g... Starting program: /home/barsnick/Development/ffmpeg-stuff/ffmpeg/ffmpeg_g -i bigger_res.mov -map 0:v -f null - [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". ffmpeg version N-98786-g9ed82ca732 Copyright (c) 2000-2020 the FFmpeg developers built with gcc 10 (GCC) configuration: --disable-doc --disable-everything --disable-network --disable-vdpau --enable-indev=lavfi --enable-muxer=null --enable-demuxer='avi,mov' --enable-encoder='wrapped_avframe,rawvideo,pcm_s16le' --enable-decoder='rawvideo,pcm_f64le,cfhd,pc m_s16le' --enable-filter='color,testsrc,anoisesrc,null,aresample,scale' --enable-protocol='pipe,file' libavutil 56. 58.100 / 56. 58.100 libavcodec 58.100.100 / 58.100.100 libavformat 58. 51.100 / 58. 51.100 libavdevice 58. 11.101 / 58. 11.101 libavfilter 7. 87.100 / 7. 87.100 libswscale 5. 8.100 / 5. 8.100 libswresample 3. 8.100 / 3. 8.100 double free or corruption (out) Program received signal SIGABRT, Aborted. 0x00007ffff7c939e5 in raise () from /lib64/libc.so.6 Missing separate debuginfos, use: dnf debuginfo-install glibc-2.31-4.fc32.x86_64 zlib-1.2.11-21.fc32.x86_64 (gdb) bt #0 0x00007ffff7c939e5 in raise () from /lib64/libc.so.6 #1 0x00007ffff7c7c895 in abort () from /lib64/libc.so.6 #2 0x00007ffff7cd7857 in __libc_message () from /lib64/libc.so.6 #3 0x00007ffff7cded7c in malloc_printerr () from /lib64/libc.so.6 #4 0x00007ffff7ce03c0 in _int_free () from /lib64/libc.so.6 #5 0x0000000000404ea0 in free_buffers (s=0x5fc6c0) at libavcodec/cfhd.c:222 #6 cfhd_close (avctx=<optimized out>) at libavcodec/cfhd.c:1331 #7 0x000000000040585b in avcodec_close (avctx=0x5ee180) at libavcodec/utils.c:1143 #8 0x0000000000485453 in avformat_find_stream_info (ic=<optimized out>, options=<optimized out>) at libavformat/utils.c:4212 #9 0x000000000041954d in open_input_file (o=o@entry=0x7fffffffd480, filename=<optimized out>) at fftools/ffmpeg_opt.c:1186 #10 0x000000000041cbb8 in open_files (open_file=0x4189e0 <open_input_file>, inout=0x58a603 "input", l=0x5eb058) at fftools/ffmpeg_opt.c:3303 #11 ffmpeg_parse_options (argc=argc@entry=8, argv=argv@entry=0x7fffffffd9a8) at fftools/ffmpeg_opt.c:3343 #12 0x0000000000411c18 in main (argc=8, argv=0x7fffffffd9a8) at fftools/ffmpeg.c:4850 (gdb) disass $pc-32,$pc+32 Dump of assembler code from 0x7ffff7c939c5 to 0x7ffff7c93a05: 0x00007ffff7c939c5 <raise+293>: add %dh,%al 0x00007ffff7c939c7 <raise+295>: (bad) 0x00007ffff7c939c8 <raise+296>: pushq 0x3d(%rdi) 0x00007ffff7c939cb <raise+299>: mov %eax,%r8d 0x00007ffff7c939ce <raise+302>: mov $0x8,%r10d 0x00007ffff7c939d4 <raise+308>: xor %edx,%edx 0x00007ffff7c939d6 <raise+310>: mov %r9,%rsi 0x00007ffff7c939d9 <raise+313>: mov $0x2,%edi 0x00007ffff7c939de <raise+318>: mov $0xe,%eax 0x00007ffff7c939e3 <raise+323>: syscall => 0x00007ffff7c939e5 <raise+325>: mov 0x108(%rsp),%rax 0x00007ffff7c939ed <raise+333>: sub %fs:0x28,%rax 0x00007ffff7c939f6 <raise+342>: jne 0x7ffff7c93a1c <raise+380> 0x00007ffff7c939f8 <raise+344>: mov %r8d,%eax 0x00007ffff7c939fb <raise+347>: add $0x118,%rsp 0x00007ffff7c93a02 <raise+354>: retq 0x00007ffff7c93a03 <raise+355>: nopl 0x0(%rax,%rax,1) End of assembler dump. (gdb) up 5 #5 0x0000000000404ea0 in free_buffers (s=0x5fc6c0) at libavcodec/cfhd.c:222 222 av_freep(&s->plane[i].idwt_buf); (gdb) p &s->plane[i].idwt_buf $1 = (int16_t **) 0x606ba8 (gdb) p s->plane[i].idwt_buf $2 = (int16_t *) 0x0 No benchmarks here. :-( If you're still interested in benchmarks, my next try will be on Haswell. Cheers, Moritz _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".