Hi.

I've been fighting to make and use ffmpeg for nearly a month. As I see there
was some guys with same problem in nearest past. But there is no even
smallest manual about this.

I was successful to build it in MSVisualStudio with its native compiler. But
because I need to enable arm asm optimizations that ffmpeg has, I need to
build it normaly using your mingw32ce toolchain.

But because I'm totally new in *nix programming tools, all my steps are like
man in totaly dark room. So I'm asking for your help, people.

Here are my results for now.

1. I have successfully buit ffmpeg source files using MS Visual Studio and
mingw32ce compiler which relative path is mingw32ce/bin/arm-
wince-mingw32ce-gcc.exe. But had an access violation error in function
ff_h263_decode_init()
which is called from avcodec_open().

This error is very interesting: function ff_h263_decode_init() demands a
pointer to structure (AVCodecContext *avctx), because it needs another
pointer from this structure  (MpegEncContext *s = avctx->priv_data), access
violation comes in the first assignment operation (s->avctx = avctx), so I
think this means that avctx->priv_data is broken and points to wrong
address. But, in function avcodec_open() it points to normally allocated
memory array. And if I change ff_h263_decode_init() declaration to
ff_h263_decode_init( AVCodecContext*,
void* ) and pass explicitly avctx->priv_data as second parameter -
function ff_h263_decode_init()
does its job without any access violations.

2. By second step, I've built ffmpeg under msys/mingw using mingw32ce
toolchain and binary files of mingw32ce downloaded form SourceFourge
mingw32ce-0.10.0.20070208-cygwin.tar.gz and dll libraries of cygwin to
provide running of mingw32ce tools. I've used next command line parameters
to configure it

./configure --cross-compile
--cross-prefix=/opt/mingw32ce/arm-wince-mingw32ce/bin/ --enable-gpl
--disable-armv5te --disable-armv6 --disable-iwmmxt --disable-debug
--arch=armv4l --enable-static --disable-shared --disable-ipv6
--prefix=/usr/local/wince --log=no --disable-encoders --disable-decoders
--disable-parsers --disable-muxers --disable-demuxers --disable-protocols
--disable-ffplay --disable-ffserver  --disable-ffmpeg --disable-network
--enable-decoder=mpeg4 --enable-decoder=h263 --enable-parser=h263
--enable-parser=mpeg4video --disable-opts --enable-memalign-hack

then
make

and then grabbed .a files, and linked them to MSVC project, but for my
dissapointment I've got the same access violation error as i had with the
1st try. :(
also I linked with
"opt/mingw32ce/lib/gcc/arm-wince-mingw32ce/4.1.0/libgcc.a" and
"opt/mingw32ce/arm-wince-mingw32ce/lib/libmingwex.a".

I don't know maybe I've choosed wrong libraries, or used wrong compiller, as
there are two bin folders in mingw32ce folder, and what is the difference
between them I don't know.

3. Then after two fails with mingw32ce I tried to build ffmpeg with cegcc
toolchain.
I've used the same configure string except
--cross-prefix=/opt/cegcc/bin/arm-wince-cegcc- and
Compilation was done successfully, but in MS Visual Studio I get constantly
stack overflow error even before WinMain call ( I got it earlier with
mingw32ce, when I choosed wrong libraries to link with) But now I tried
different combination of libraies and it did not helped me.

Can you wrote with what libraries I must link in MS Visual Studio if I has
following unressolved symbols:
snprintf, __divsi3 and other mathematical operations and functions,
__ctype_ptr?

Thank in advance.
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Cegcc-devel mailing list
Cegcc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cegcc-devel

Reply via email to