g729 ITU codec on 3G vs 3GS iphones

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I did try reverting to the standard C stuff in the ITU code, but it still fails out on the 3G. 

My current thinking is something to do with the 
long-long stuff. The reason I say that is if I use force it to ARMV6 code the compiler shits itself (snow leopard). Looking up on the net it seems
long-long is handled a little differently on the ARM6 and 7 specs re alignment and the like.


On 29/12/2009, at 4:37 PM, Samuel Vinson wrote:

> Hello Shayne,
> 
> You are right I forgot to include pjsua_media.c in my patch. I'm sorry for every one try to use it :-(
> You must disable thumb compilation option.
> 
> The assembler part works fine on iphone 1(2g) and iphone 2 (3g) because I ported on this. So you need to compile for armv6. And I tested on 3Gs, always with armv6 compilation and it worked fine. You could try Siphon.
> 
> Perhaps, if you don't use assembler statements, it can work on iPhone 3Gs (CPU is better), but on iPhone 3G and iPhone 2G it can't work or decompression only. Because the CPU of iPhone 3G/3G is much slow.
> 
> 
> Samuel
> 
> Shayne O'Neill a ?crit :
>> I've directed this to both Samuel and the PJSIP list, because the answers may be of interest to both the internet and myself (of course).
>> 
>> I've integrated experimentally (I dont really see how my personal project, should I ever get around to releasing it, will justify paying the outrageous patent price for the the codec, alas) Samuel's port of the 729 codec. 
>> It required a little surgery, Notably it didn't seem to be registering the codec, so I added these lines:
>> 
>> #if PJMEDIA_HAS_G729_CODEC
>>    status = pjmedia_codec_g729_init( pjsua_var.med_endpt );
>>    if (status != PJ_SUCCESS) {
>>        pjsua_perror(THIS_FILE, "Error initializing G729 codec",
>>                     status);
>>        return status;
>>    }
>> #endif  /* PJMEDIA_HAS_G722_CODEC */
>> 
>> to pjsua_media.c (where the other codecs are being set up) , and a little bit of headscratching to get the codec to build. Notably I'm using samuels G729A , as I really can't find the info to integrate his G729AB work.
>> 
>> First off, *excellent work Samuel*.  On the 3GS phone (running a 3.1.2 firmware), this seems to work excellently, with a slight caveat that it doesnt seem to survive a restart of the stack. This might be my fault and I can probably find a way of fixing that. :)
>> 
>> However, on the 3G phone (Running a 3.1 firmware) I get mostly no sound, but sometimes one way sound. Sometimes this corrects for perhaps a second after holding and returning. But otherwise it doesn't work. To confirm I've used the same binaries between both, and on examination there doesnt *seem* to be any packet loss issues I *think*.
>> 
>> The two phones have slightly different CPUs, the 3G an ARM11(armv6) processor, and the 3GS an ARM Cortex(armv7,neon/vfs/etc). Both support roughly the same feature set including Thumb2, although I have disabled thumb  as it can interfere with Inline assembly generation. I've also tried to remove Samuels (very clever but perhaps not quite portable) Inlined assembly speed ups of the basic_ops and interop routines (Mostly just high speed bit math) and replace them with generic versions from the ITU references, but still inlined. At some point I'll try and write a patch for that code that uses conditionals to keep the ARM optimisations but lets it work on non ARM platforms. This didn't fix the problem. Still works on 3GS, not so much on 3G, alas.
>> 
>> Regardless it still doesn't work. :( The other codecs do however work fine on both platforms. Has Samuel, or anybody else for that matter, had any experience with this issue or know how to fix it? 
>> Regards,
>> 
>> Shayne.
>> 
>> 
>> ===================================
>> Shayne O'Neill Development
>> Mobile, Web and Business process integration.
>> shayne.oneill at gmail.com 0400247091
>> Ask me about how Alfresco can help your business grow.
>> 
>> 
>> 
>>  
> 

===================================
Shayne O'Neill Development
Mobile, Web and Business process integration.
shayne.oneill at gmail.com 0400247091
Ask me about how Alfresco can help your business grow.




[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux