[FFmpeg-devel] [PATCH] VC-1 MMX DSP functions

infernix infernix
Sat Jul 7 14:13:42 CEST 2007


Christophe GISQUET wrote:
> here are the MMX functions now licensed under the MIT license.

This breaks compilation on Debian Etch x86_64. I'm unsure if this is 
expected behavior though.

I applied (in order):

vc1dsp_c_cosmetics.diff
vc1dsp_c_macroify.diff
vc1dsp_c_proto.diff
vc1dsp_mmx.diff

If i build with --enable-gpl --enable-pp --enable-pthreads 
--enable-libx264 --cpu=nocona --disable-dv1394 --enable-libvorbis 
--enable-libogg --enable-libxvid --enable-libmp3lame --enable-liba52, 
the error is:

gcc -I"/home/infernix/src/ffmpeg/trunk-20060706"/libswscale 
-I"/home/infernix/src/ffmpeg/trunk-20060706"/libavcodec 
-DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE 
-D_ISOC9X_SOURCE -I"/home/infernix/src/ffmpeg/trunk-20060706" 
-I"/home/infernix/src/ffmpeg/trunk-20060706" 
-I"/home/infernix/src/ffmpeg/trunk-20060706"/libavutil 
-fomit-frame-pointer -march=nocona -pthread -g 
-Wdeclaration-after-statement -Wall -Wno-switch -Wdisabled-optimization 
-Wpointer-arith -Wredundant-decls -Wno-pointer-sign -O3  -c -o 
i386/cputest.o i386/cputest.c
In file included from 
/home/infernix/src/ffmpeg/trunk-20060706/libavcodec/dsputil.h:33,
                  from i386/cputest.c:24:
/home/infernix/src/ffmpeg/trunk-20060706/libavcodec/avcodec.h:2252: 
warning: 'ImgReSampleContext' is deprecated
/home/infernix/src/ffmpeg/trunk-20060706/libavcodec/avcodec.h:2258: 
warning: 'ImgReSampleContext' is deprecated
gcc -I"/home/infernix/src/ffmpeg/trunk-20060706"/libswscale 
-I"/home/infernix/src/ffmpeg/trunk-20060706"/libavcodec 
-DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE 
-D_ISOC9X_SOURCE -I"/home/infernix/src/ffmpeg/trunk-20060706" 
-I"/home/infernix/src/ffmpeg/trunk-20060706" 
-I"/home/infernix/src/ffmpeg/trunk-20060706"/libavutil 
-fomit-frame-pointer -march=nocona -pthread -g 
-Wdeclaration-after-statement -Wall -Wno-switch -Wdisabled-optimization 
-Wpointer-arith -Wredundant-decls -Wno-pointer-sign -O3  -c -o 
i386/dsputil_mmx.o i386/dsputil_mmx.c
In file included from 
/home/infernix/src/ffmpeg/trunk-20060706/libavcodec/dsputil.h:33,
                  from i386/dsputil_mmx.c:25:
/home/infernix/src/ffmpeg/trunk-20060706/libavcodec/avcodec.h:2252: 
warning: 'ImgReSampleContext' is deprecated
/home/infernix/src/ffmpeg/trunk-20060706/libavcodec/avcodec.h:2258: 
warning: 'ImgReSampleContext' is deprecated
i386/dsputil_mmx.c: In function 'gmc_mmx':
i386/dsputil_mmx.c:2658: warning: suggest parentheses around arithmetic 
in operand of |
i386/dsputil_mmx.c:2658: warning: suggest parentheses around arithmetic 
in operand of |
i386/dsputil_mmx.c:2659: warning: suggest parentheses around arithmetic 
in operand of |
i386/dsputil_mmx.c:2659: warning: suggest parentheses around arithmetic 
in operand of |
i386/dsputil_mmx.c:2659: warning: suggest parentheses around arithmetic 
in operand of |
In file included from i386/dsputil_mmx.c:2831:
i386/h264dsp_mmx.c: In function 'put_h264_qpel4_mc22_3dnow':
i386/h264dsp_mmx.c:1359: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel4_mc21_3dnow':
i386/h264dsp_mmx.c:1359: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel4_mc23_3dnow':
i386/h264dsp_mmx.c:1359: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel4_mc12_3dnow':
i386/h264dsp_mmx.c:1359: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel4_mc32_3dnow':
i386/h264dsp_mmx.c:1359: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel8_mc22_3dnow':
i386/h264dsp_mmx.c:1360: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel8_mc21_3dnow':
i386/h264dsp_mmx.c:1360: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel8_mc23_3dnow':
i386/h264dsp_mmx.c:1360: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel8_mc12_3dnow':
i386/h264dsp_mmx.c:1360: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel8_mc32_3dnow':
i386/h264dsp_mmx.c:1360: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel16_mc22_3dnow':
i386/h264dsp_mmx.c:1361: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel16_mc21_3dnow':
i386/h264dsp_mmx.c:1361: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel16_mc23_3dnow':
i386/h264dsp_mmx.c:1361: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel16_mc12_3dnow':
i386/h264dsp_mmx.c:1361: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel16_mc32_3dnow':
i386/h264dsp_mmx.c:1361: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel4_mc22_3dnow':
i386/h264dsp_mmx.c:1362: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel4_mc21_3dnow':
i386/h264dsp_mmx.c:1362: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel4_mc23_3dnow':
i386/h264dsp_mmx.c:1362: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel4_mc12_3dnow':
i386/h264dsp_mmx.c:1362: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel4_mc32_3dnow':
i386/h264dsp_mmx.c:1362: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel8_mc22_3dnow':
i386/h264dsp_mmx.c:1363: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel8_mc21_3dnow':
i386/h264dsp_mmx.c:1363: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel8_mc23_3dnow':
i386/h264dsp_mmx.c:1363: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel8_mc12_3dnow':
i386/h264dsp_mmx.c:1363: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel8_mc32_3dnow':
i386/h264dsp_mmx.c:1363: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel16_mc22_3dnow':
i386/h264dsp_mmx.c:1364: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel16_mc21_3dnow':
i386/h264dsp_mmx.c:1364: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel16_mc23_3dnow':
i386/h264dsp_mmx.c:1364: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel16_mc12_3dnow':
i386/h264dsp_mmx.c:1364: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel16_mc32_3dnow':
i386/h264dsp_mmx.c:1364: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel4_mc22_mmx2':
i386/h264dsp_mmx.c:1365: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel4_mc21_mmx2':
i386/h264dsp_mmx.c:1365: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel4_mc23_mmx2':
i386/h264dsp_mmx.c:1365: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel4_mc12_mmx2':
i386/h264dsp_mmx.c:1365: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel4_mc32_mmx2':
i386/h264dsp_mmx.c:1365: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel8_mc22_mmx2':
i386/h264dsp_mmx.c:1366: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel8_mc21_mmx2':
i386/h264dsp_mmx.c:1366: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel8_mc23_mmx2':
i386/h264dsp_mmx.c:1366: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel8_mc12_mmx2':
i386/h264dsp_mmx.c:1366: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel8_mc32_mmx2':
i386/h264dsp_mmx.c:1366: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel16_mc22_mmx2':
i386/h264dsp_mmx.c:1367: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel16_mc21_mmx2':
i386/h264dsp_mmx.c:1367: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel16_mc23_mmx2':
i386/h264dsp_mmx.c:1367: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel16_mc12_mmx2':
i386/h264dsp_mmx.c:1367: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'put_h264_qpel16_mc32_mmx2':
i386/h264dsp_mmx.c:1367: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel4_mc22_mmx2':
i386/h264dsp_mmx.c:1368: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel4_mc21_mmx2':
i386/h264dsp_mmx.c:1368: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel4_mc23_mmx2':
i386/h264dsp_mmx.c:1368: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel4_mc12_mmx2':
i386/h264dsp_mmx.c:1368: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel4_mc32_mmx2':
i386/h264dsp_mmx.c:1368: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel8_mc22_mmx2':
i386/h264dsp_mmx.c:1369: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel8_mc21_mmx2':
i386/h264dsp_mmx.c:1369: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel8_mc23_mmx2':
i386/h264dsp_mmx.c:1369: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel8_mc12_mmx2':
i386/h264dsp_mmx.c:1369: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel8_mc32_mmx2':
i386/h264dsp_mmx.c:1369: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel16_mc22_mmx2':
i386/h264dsp_mmx.c:1370: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel16_mc21_mmx2':
i386/h264dsp_mmx.c:1370: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel16_mc23_mmx2':
i386/h264dsp_mmx.c:1370: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel16_mc12_mmx2':
i386/h264dsp_mmx.c:1370: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
i386/h264dsp_mmx.c: In function 'avg_h264_qpel16_mc32_mmx2':
i386/h264dsp_mmx.c:1370: warning: dereferencing type-punned pointer will 
break strict-aliasing rules
/tmp/ccaopxZe.s: Assembler messages:
/tmp/ccaopxZe.s:25763: Error: `0(%rdx,%ecx)' is not a valid base/index 
expression
/tmp/ccaopxZe.s:25764: Error: `4(%rdx,%ecx)' is not a valid base/index 
expression
/tmp/ccaopxZe.s:25765: Error: `0(%rdx,%ecx,2)' is not a valid base/index 
expression
/tmp/ccaopxZe.s:25766: Error: `4(%rdx,%ecx,2)' is not a valid base/index 
expression
/tmp/ccaopxZe.s:25785: Error: `0(%rdx,%eax)' is not a valid base/index 
expression
/tmp/ccaopxZe.s:25786: Error: `4(%rdx,%eax)' is not a valid base/index 
expression
/tmp/ccaopxZe.s:25832: Error: `0(%rdx,%eax)' is not a valid base/index 
expression
/tmp/ccaopxZe.s:25833: Error: `4(%rdx,%eax)' is not a valid base/index 
expression
/tmp/ccaopxZe.s:25842: Error: `0(%rdx,%ecx,2)' is not a valid base/index 
expression
/tmp/ccaopxZe.s:25843: Error: `4(%rdx,%ecx,2)' is not a valid base/index 
expression
/tmp/ccaopxZe.s:25850: Error: `0(%rdx,%ecx)' is not a valid base/index 
expression
/tmp/ccaopxZe.s:25851: Error: `4(%rdx,%ecx)' is not a valid base/index 
expression
/tmp/ccaopxZe.s:25916: Error: `0(%rdx,%ecx)' is not a valid base/index 
expression
/tmp/ccaopxZe.s:25917: Error: `4(%rdx,%ecx)' is not a valid base/index 
expression
/tmp/ccaopxZe.s:25924: Error: `0(%rdx,%ecx,2)' is not a valid base/index 
expression
/tmp/ccaopxZe.s:25925: Error: `4(%rdx,%ecx,2)' is not a valid base/index 
expression
/tmp/ccaopxZe.s:25932: Error: `0(%rdx,%eax)' is not a valid base/index 
expression
/tmp/ccaopxZe.s:25933: Error: `4(%rdx,%eax)' is not a valid base/index 
expression
make[2]: *** [i386/dsputil_mmx.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory 
`/home/infernix/src/ffmpeg/trunk-20060706/libavcodec'
make[1]: *** [lib] Error 2
rm doc/ffserver.pod doc/ffmpeg.pod doc/ffplay.pod
make[1]: Leaving directory `/home/infernix/src/ffmpeg/trunk-20060706'
make: *** [build-stamp] Error 2





More information about the ffmpeg-devel mailing list