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