Christophe Gisquet <git <at> videolan.org> writes: > hevc/sao: use aligned copies
This makes reading hevc files crash if compiled with icc 14.0.2 on Linux: http://fate.ffmpeg.org/history.cgi?slot=x86_64-linux-gnu-icc-2013_sp1.0.080 Program received signal SIGSEGV, Segmentation fault. 0x000000000048af01 in copy_CTB (dst=<optimized out>, src=0x7ffff67ed07f, width=<optimized out>, height=<optimized out>, stride_dst=<optimized out>, stride_src=<optimized out>) at libavcodec/hevc_filter.c:150 150 AV_COPY64(dst+j, src+j); AV_COPY64() in libavutil/x86/intreadwrite.h looks like this: __asm__("movq %1, %%mm0 \n\t" "movq %%mm0, %0 \n\t" : "=m"(*(uint64_t*)d) : "m" (*(const uint64_t*)s) : "mm0"); (gdb) disass $pc-32,$pc+32 0x000000000048aee1 <sao_filter_CTB+4209>: test $0xf,%edi 0x000000000048aee7 <sao_filter_CTB+4215>: je 0x48af0b <sao_filter_CTB+4251> 0x000000000048aee9 <sao_filter_CTB+4217>: lea 0x0(,%r12,8),%r15d 0x000000000048aef1 <sao_filter_CTB+4225>: add $0x2,%r12d 0x000000000048aef5 <sao_filter_CTB+4229>: movslq %r15d,%r15 0x000000000048aef8 <sao_filter_CTB+4232>: cmp %r13d,%r12d 0x000000000048aefb <sao_filter_CTB+4235>: movdqu (%r15,%r8,1),%xmm0 => 0x000000000048af01 <sao_filter_CTB+4241>: movdqa %xmm0,(%r15,%r9,1) 0x000000000048af07 <sao_filter_CTB+4247>: jb 0x48aee9 <sao_filter_CTB+4217> 0x000000000048af09 <sao_filter_CTB+4249>: jmp 0x48af2b <sao_filter_CTB+4283> 0x000000000048af0b <sao_filter_CTB+4251>: lea 0x0(,%r12,8),%r15d 0x000000000048af13 <sao_filter_CTB+4259>: add $0x2,%r12d 0x000000000048af17 <sao_filter_CTB+4263>: movslq %r15d,%r15 0x000000000048af1a <sao_filter_CTB+4266>: cmp %r13d,%r12d 0x000000000048af1d <sao_filter_CTB+4269>: movdqa (%r15,%r8,1),%xmm0 (gdb) info register rax 0x4 4 rbx 0x1 1 rcx 0x42 66 rdx 0x9 9 rsi 0xa00 2560 rdi 0x0 0 rbp 0x0 0x0 rsp 0x7fffffffc9b0 0x7fffffffc9b0 r8 0x7ffff67ed07f 140737328894079 r9 0x7ffff6de2adf 140737335143135 r10 0x49 73 r11 0xa40 2624 r12 0x3 3 r13 0x9 9 r14 0x40 64 r15 0x8 8 rip 0x48af01 0x48af01 <sao_filter_CTB+4241> eflags 0x10297 [ CF PF AF SF IF RF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0 ymm0 v2_int128 = {0x1b1b1b1b1b1c1c1c1d1d1d1d1d1e1f25, 0x00000000000000000000000000000000} Note that I do not know where to report icc bugs. Carl Eugen _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog