[FFmpeg-devel] [PATCH] WinCE does not support _lseeki64
Måns Rullgård
mans
Mon Jul 13 21:12:41 CEST 2009
Martin Storsj? <martin at martin.st> writes:
> Hi,
>
> To anybody reading; the attachedes patch are not for review, they're only
> attached for reference.
>
> On Mon, 13 Jul 2009, Ismail D?nmez wrote:
>
>> > Is this the only change necessary to properly compile on wince?
>> > There's someone who started a fork of FFmpeg for windows CE [0], but I
>> > haven't diffed his source code to FFmpeg vanilla yet, and so far he
>> > has ignored my requests to explain what changes he did to the source
>> > code. I haven't tested and don't intend to but it seems promising.
>>
>> Exact command line is :
>>
>> ./configure --enable-cross-compile --arch=generic --disable-debug
>> --disable-static --enable-shared --disable-devices --disable-ffmpeg
>> --disable-ffserver --disable-network --target-os=mingw32
>> --disable-demuxer=mov --enable-memalign-hack
>>
>> I just did a small configure hackery to comment out lib.exe invocation
>> on WinCE. But thats a hack not a patch. Other than that it compiles
>> fine. Running on WinCE is another story. No success yet.
>
> I've successfully built and run ffmpeg on WinCE (based on r18980). I've
> got a small bunch of patches that I haven't had time to polish up for
> inclusion yet, but this one that was applied was similar to one of them.
>
> Ismail: If you're on windows mobile 6.1, the issue with running may be
> this:
> http://cegcc.sourceforge.net/docs/faq.html#DllDoesNotWorkWithWindowsMobile6.1
>
> Other than this, there are a few things that I did otherwise than Ismail.
> I'm configuring it with these flags: --target-os=mingw32
> --cross-prefix=arm-mingw32ce- --enable-shared --arch=arm --cpu=armv4t
> --disable-network
>
> The remaining issues (in my case) are the following:
> - libavcodec/arm/asm.S has a few elf-specific arm attributes
> (.eabi_attribute, .type). I solved these by just commenting them out
> (see one of the attached patches), a proper solution would probably be
> to check for the binary format in configure and enable them
> conditionally. But I don't have any real clue about arm assembly... I
> can give more details or test out solution proposals if somebody's
> interested in fixing it.
These should be easy to fix. Does ".type foo, STT_FUNCTION" work? If
not, we can simply disable this too. It's not essential, but useful
for debugging.
> - libavformat/mov.c uses strerror/errno that aren't available on WinCE.
> (As already mentioned in this thread.) Haven't got any non-hackish patch
> to propose for this...
Implement them properly in an add-on library.
> - ffmpeg.c needs a whole bunch of ugly hacks, attached here just for
> reference. signal.h (and the whole concept of signals) are missing,
> GetProcessTimes is declared but not present in the link libraries,
> conio.h is available but doesn't contain anything. And perror, strerror,
> errno and isatty are unavailable.
None of these are essential. We just need to test for them, and
disable whatever isn't available.
> Additionally, I locally reverted SVN commits 15522 and 15793 since I
> didn't bother to try to manually build a newer mingw32ce.
>
> The mingw32ce toolchain needs a minor change to the headers, to stop it
> from failing when including errno.h.
>
> I've got a few minor additions to the configure script, though, that I can
> send in separate threads.
Thanks.
--
M?ns Rullg?rd
mans at mansr.com
More information about the ffmpeg-devel
mailing list