[Ffmpeg-devel] regression tests broken

Michael Niedermayer michaelni
Sat Mar 4 00:46:20 CET 2006


Hi

On Fri, Mar 03, 2006 at 10:58:31PM +0100, Diego Biurrun wrote:
> On Sat, Feb 25, 2006 at 01:16:17AM +0100, Michael Niedermayer wrote:
> > 
> > On Fri, Feb 24, 2006 at 07:38:11PM +0100, Diego Biurrun wrote:
> > > The regression tests currently fail for me on both x86 and ppc, in
> > > different places:
> > > 
> > > x86:
> > > ../ffmpeg_g -y -flags +bitexact -dct fastint -idct simple -y -strict -2 -f pgmyuv -i vsynth1/%02d.pgm -an -vcodec snow -qscale 2 -flags +qpel -me iter -dia_size 2 -cmp 12 -subcmp 12 -s 128x64 ./data/a-snow.avi
> > > /usr/src/mplayer/ffmpeg/tests/regression.sh: line 112:  7038 Illegal instruction     $ffmpeg -y -flags +bitexact -dct fastint -idct simple -benchmark $* >$datadir/bench.tmp 2>/tmp/ffmpeg$$
> > > make[1]: *** [codectest] Error 132
> > > make[1]: Leaving directory `/usr/src/mplayer/ffmpeg/tests'
> > > make: *** [test] Error 2
> > 
> > gdb backtrace & disasm, gcc version, config.h, cputype please
> 
> Debian unstable, gcc 2.95.4, K6-III 500 MHz, rest below
> 
> Diego
> 
[...]
> 1061    QPEL_H264(put_,       PUT_OP, 3dnow)
> (gdb) bt
> #0  0x082975ed in put_h264_qpel16_mc32_3dnow (dst=0xbfffd170 "\206\201wu|vVCix\201\225???\220]>Ojw\204\217 ??pLSo|\214????,O??????",
>     src=0x8469e07 "\224w\201|\212k\207ks\205\216  A ??vbr\205\224??? ?\233ty\215\234- ??x\227^m}\205\224? ?O ru\202\222? ??EE\207aq\206\215\237?AOU?i|\216\233?\234?  ?xhz\211\232???U?\215w\205\203\211\226 ?EO?nu\203\224?? IYI\203cq}\213\237RAE?", '?' <repeats 34 times>, "n)B\215\204v|\207\203kq\207\\8D[gu\213\225\225X4>5EWev\202\223{52=NZl\202\221\233\2249\032);"..., stride=160) at i386/h264dsp_mmx.c:1061
> #1  0x08259b7a in pred_block (s=0x40958020, dst=0xbfffd170 "\206\201wu|vVCix\201\225???\220]>Ojw\204\217 ??pLSo|\214????,O??????",
>     src=0x8469cc5 "O\206GXft\213\225"?A?mdt\200\220?????dO\\n|\216\234  I?bjy\203\227\233\235R?\237RXjs\202\226 ?E?nbs\206}\210\225?? \216T^q|\213\233 ??Rba^m{\221\235???~Wfz\204\230??AO\213FUiy\204\224? E?m]p~\217?? ??aL_m\201\213?", '?' <repeats 17 times>, '-' <repeats 17 times>, "?E?c?t\202\215\211}x\221?E\214cu\202\217\237-?OU\232V\\kz\216\237??IEyh\177\210\226 ,A?"..., tmp=0xbfffba50 "", stride=160, sx=5, sy=8, b_w=32, b_h=32, block=0x8425eea, plane_index=0, w=128,
>     h=64) at snow.c:2532
> #2  0x0825a20a in get_block_rd (s=0x40958020, mb_x=1, mb_y=1, plane_index=0, obmc_edged=0xbfffe650 "") at snow.c:3113
> #3  0x0825cd59 in iterative_me (s=0x40958020) at snow.c:3246
> #4  0x08268853 in encode_frame (avctx=0x83fed60, buf=0x40917020 "qU?^\230T\023aY", buf_size=262144, data=0xbfffef10) at snow.c:2356
> #5  0x080aaa2e in avcodec_encode_video (avctx=0x83fed60, buf=0x40917020 "qU?^\230T\023aY", buf_size=262144, pict=0xbfffef10) at utils.c:905
> #6  0x08056223 in do_video_out (s=0x83fdde0, ost=0x84073b0, ist=0x83fd7a0, in_picture=0xbffff328, frame_size=0xbffff208) at ffmpeg.c:963
> #7  0x08057495 in output_packet (ist=0x83fd7a0, ist_index=0, ost_table=0x842b7f0, nb_ostreams=1, pkt=0xbffff4c8) at ffmpeg.c:1353
> #8  0x08059391 in av_encode (output_files=0x8399e00, nb_output_files=1, input_files=0x8399d00, nb_input_files=1, stream_maps=0x8399e60, nb_stream_maps=0)
>     at ffmpeg.c:2072
> #9  0x0805c4b1 in main (argc=34, argv=0xbffff9c4) at ffmpeg.c:4278
> (gdb) disass $pc-32 $pc+32
> Dump of assembler code from 0x82975cd to 0x829760d:
> 0x082975cd <put_h264_qpel16_mc32_3dnow+1145>:   inc    %edi
> 0x082975ce <put_h264_qpel16_mc32_3dnow+1146>:   mov    %esi,%esi
> 0x082975d0 <put_h264_qpel16_mc32_3dnow+1148>:   mov    0xfffffbe0(%ebp),%eax
> 0x082975d6 <put_h264_qpel16_mc32_3dnow+1154>:   mov    %ebx,%edx
> 0x082975d8 <put_h264_qpel16_mc32_3dnow+1156>:   movq   (%ecx),%mm0
> 0x082975db <put_h264_qpel16_mc32_3dnow+1159>:   movq   0x8(%ecx),%mm1
> 0x082975df <put_h264_qpel16_mc32_3dnow+1163>:   paddw  %mm6,%mm0
> 0x082975e2 <put_h264_qpel16_mc32_3dnow+1166>:   paddw  %mm6,%mm1
> 0x082975e5 <put_h264_qpel16_mc32_3dnow+1169>:   psraw  $0x5,%mm0
> 0x082975e9 <put_h264_qpel16_mc32_3dnow+1173>:   psraw  $0x5,%mm1
> 0x082975ed <put_h264_qpel16_mc32_3dnow+1177>:   pmaxsw %mm7,%mm0

pmaxsw is a MMX2 instruction, it cant work on 3dnow only cpus, IIRC this
has been written by loren, ill leave it to him to fix, though i guess
simply removing the pmaxsw instructions might work, they seem
redundant to me

[...]
-- 
Michael





More information about the ffmpeg-devel mailing list