[FFmpeg-devel] compile for arm cortex A8 with iOS SDK 5

neve_capricorn at gmx.de neve_capricorn at gmx.de
Fri Jan 20 13:44:04 CET 2012


forgot something..it is of course possible to include the compiled .a 
libs that i generated unter iOS 4.2 with gcc and snowLeopard, into an 
iOS 5 project, but when you setup an iOS5 project with ARM7 compiler 
exports, it works but i got a lot of warning messages (over hundrets) 
like this:

ld: warning: ARM function not 4-byte aligned..

The code / app works, but i dont know if this warning is harmless or 
not. I tried to find some infos on the ARM page, but didnt find any help.

Gawry


Am 20.01.12 13:37, schrieb neve_capricorn at gmx.de:
> only a small update...i downgrade to iOS 4.2 with GCC under 
> SnowLeopard, and i was able to compile the lib with NEON support.
>
> i tested then a vp6 movie in 640x360 and with neon support i got 40 
> fps, without only 6 fps. tested with an a iphone 4s.
>
> i can disablet the NEON/ASM but the performance seems really poor.
>
> what is the differnet between the inline ASM from the GCC to llvm-gcc?
>
> i know this i not a fix, but i only want to share some infos about the 
> performance boost we have with neon and ARM A8.
>
> iam interested in a fix and i dont know if this is the right place but 
> i would donate any help for fix that we can bring to the main git.
>
> gary
>
>
>
> Am 19.01.12 17:36, schrieb Michael Niedermayer:
>> On Tue, Jan 17, 2012 at 08:59:34AM +0100, Gerhard Roethlin wrote:
>>> I had similar problems
>>>
>>> On 2012.01.09, at 21:08, gary wrote:
>>>
>>>> iam using ffmpeg-HEAD-f247f4c with llvm-gcc.4.2 compiler.
>>>>
>>>> when i activate the ASM neon support iam hanging right now at some 
>>>> instructions.
>>>>
>>>> i tried a first fix in the libavutil.h
>>>>
>>>> intmath.h
>>>>
>>>> #define av_clipl_int32 av_clipl_int32_arm
>>>> static av_always_inline av_const int32_t av_clipl_int32_arm(int64_t a)
>>>> {
>>>>     int x, y;
>>>>     __asm__ (//"adds   %1, %R2, %Q2, lsr #31  \n\t"
>>>>              "itet   ne                     \n\t"
>>>>              "mvnne  %1, #1<<31             \n\t"
>>>>              //"moveq  %0, %Q2                \n\t"
>>>>              //"eorne  %0, %1,  %R2, asr #31  \n\t"
>>>>              : "=r"(x), "=&r"(y) : "r"(a):"cc");
>>>>     return x;
>>>> }
>>> My solution for that was to make the av_clip macro only get used 
>>> with gcc 4.4 or newer
>>>
>>>> now i have another problem in
>>>> CC    libavformat/asf.o
>>>> CC    libavformat/asfcrypt.o
>>>> error: invalid operand in inline asm: 'ldr   ${0:Q}, $1
>>>>     ldr   ${0:R}, $2
>>>>     '
>>> Maybe AV_RN64. I fixed both problems in the patch I submitted a 
>>> month ago:
>>> http://ffmpeg.org/pipermail/ffmpeg-devel/2011-December/117848.html
>>>
>>> But it's not much of a fix, more just ignoring the problem.
>> If someone finds a fix i would be very interrested to have that in
>> main git.
>> simply disabling for gcc before 4.4 is of course ok too when versions
>> prior to that really cant handle it.
>>
>> [...]
>>
>>
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel at ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel



More information about the ffmpeg-devel mailing list