Has anyone recently been successfull building FFMPEG for WinCE.
I feel like I'm so close but yet so far.

So far I've managed to get cegcc built and installed (I had to get the latest version from subversion and build it myself under cygwin to meet the ming32 3.15 requirement for building FFMPEG). I've got the FFMPEG source and I can build it for standard old windows using the very excellent instructions on the web. I appear to be running into 2 problems when I try to build for WinCE.

1. I can't seem to build libavcodec/armv4l/disputil_arm_s.S and I can't even seem to begin to understand what's wrong. I've seen a few posts of people having the same problem but no one has posted a solution, there is even a bug in FFMPEG database about it. I saw one post that indicated that there might be armv5 code in that file and that could be causing the problem. Another post said that they manually compiled it with an elf compiler but didn't indicate which one. For right now I think I'm getting around this by setting --arch=generic when I run .configure and that seems to keep it from trying to build disputil_arm_s.S but I assume that is at the expense of performance. Here are some of the errors I'm seeing:

libavcodec/arm/dsputil_arm_s.S: Assembler messages:
libavcodec/arm/dsputil_arm_s.S:25: Error: unknown pseudo-op: `.eabi_attribute' libavcodec/arm/dsputil_arm_s.S:106: Warning: .type pseudo-op used outside of .def/.endef ignored. libavcodec/arm/dsputil_arm_s.S:106: Error: junk at end of line, first unrecognized character is `p' libavcodec/arm/dsputil_arm_s.S:158: Warning: .type pseudo-op used outside of .def/.endef ignored. libavcodec/arm/dsputil_arm_s.S:158: Error: junk at end of line, first unrecognized character is `p' libavcodec/arm/dsputil_arm_s.S:210: Warning: .type pseudo-op used outside of .def/.endef ignored. libavcodec/arm/dsputil_arm_s.S:210: Error: junk at end of line, first unrecognized character is `p'
...


2. When the build tries to link libavcodec it complains that it can't find -lavutil. I don't understand this one because avutil.so has already been built and is in libavutil and it looks like the link command line has ../libavutil included as a library search path. The command line is really long:

/c/msys/mingw/opt/mingw32ce/arm-mingw32ce/bin/gcc -shared -Wl,-soname,libavcodec.so.52 -L"/c/builds/SDKs/ffmpeg/ffmpeg-r15986/ffmpeg-r15986"/libavutil -Wl,--warn-common -Wl,--as-needed -Wl,-rpath-link,"/c/builds/SDKs/ffmpeg/ffmpeg-r15986/ffmpeg-r15986"/libpostproc -Wl,-rpath-link,"/c/builds/SDKs/ffmpeg/ffmpeg-r15986/ffmpeg-r15986"/libswscale -Wl,-rpath-link,"/c/builds/SDKs/ffmpeg/ffmpeg-r15986/ffmpeg-r15986"/libavfilter -Wl,-rpath-link,"/c/builds/SDKs/ffmpeg/ffmpeg-r15986/ffmpeg-r15986"/libavdevice -Wl,-rpath-link,"/c/builds/SDKs/ffmpeg/ffmpeg-r15986/ffmpeg-r15986"/libavformat -Wl,-rpath-link,"/c/builds/SDKs/ffmpeg/ffmpeg-r15986/ffmpeg-r15986"/libavcodec -Wl,-rpath-link,"/c/builds/SDKs/ffmpeg/ffmpeg-r15986/ffmpeg-r15986"/libavutil -Wl,-Bsymbolic -o libavcodec/libavcodec.so.52 libavcodec/allcodecs.o libavcodec/audioconvert.o libavcodec/bitstream.o libavcodec/bitstream_filter.o libavcodec/dsputil.o libavcodec/eval.o libavcodec/faanidct.o libavcodec/imgconvert.o libavcodec/jrevdct.o libavcodec/opt.o libavcodec/parser.o libavcodec/raw.o libavcodec/resample.o libavcodec/resample2.o libavcodec/simple_idct.o libavcodec/utils.o libavcodec/golomb.o libavcodec/imgresample.o libavcodec/h264.o libavcodec/h264idct.o libavcodec/h264pred.o libavcodec/h264_parser.o libavcodec/cabac.o libavcodec/mpegvideo.o libavcodec/error_resilience.o libavcodec/mjpegdec.o libavcodec/mjpeg.o libavcodec/mpeg12.o libavcodec/mpeg12data.o libavcodec/dump_extradata_bsf.o libavcodec/h264_mp4toannexb_bsf.o libavcodec/imx_dump_header_bsf.o libavcodec/mjpega_dump_header_bsf.o libavcodec/movsub_bsf.o libavcodec/mp3_header_compress_bsf.o libavcodec/mp3_header_decompress_bsf.o libavcodec/mpegaudiodata.o libavcodec/noise_bsf.o libavcodec/remove_extradata_bsf.o libavcodec/w32thread.o libavutil/libavutil.so -lavutil -lm

and I'm wondering if maybe it's too long and some important part is getting clipped off ( that -lm option at the end is very suspicious to me).

If anybody can help with either of these issues I'd be very appreciative. Also when I finally do get this built I intend to post my method to help others.

Below are the details of my environment:

GCC version
/c/msys/mingw/opt/mingw32ce/arm-mingw32ce/bin/gcc --version
gcc (GCC) 4.1.0

cegcc version: 0.55

GCC Assembler (GNU Binutils) version
/c/msys/mingw/opt/mingw32ce/arm-mingw32ce/bin/as --version
GNU assembler (GNU Binutils) 2.19.51.20090204

mingw32 version: 3.15

configure options:
./configure --enable-cross-compile --cross-prefix=/c/msys/mingw/opt/mingw32ce/arm-mingw32ce/bin/ --target-os=WinCE --arch=generic --enable-static --enable-shared --disable-network --disable-debug --disable-demuxers --disable-parsers --enable-memalign-hack --disable-ffmpeg --disable-ffplay --disable-vhook --disable-ffserver --enable-w32threads --disable-encoders --disable-protocols --disable-indevs --disable-outdevs --disable-filters --disable-muxers --disable-decoders --enable-decoder=h264 --enable-decoder=mjpeg --enable-decoder=mpeg2video --bindir=%FFMPEG_INSTALL_DIR%/lib/wince --libdir=%FFMPEG_INSTALL_DIR%/lib/wince --shlibdir=%FFMPEG_INSTALL_DIR%/lib/wince

Many Thanks,
Matt Schuckmann
[email protected]

_______________________________________________
libav-user mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/libav-user

Reply via email to