Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alternate Codec Support #49

Open
GoogleCodeExporter opened this issue Jul 24, 2015 · 229 comments
Open

Alternate Codec Support #49

GoogleCodeExporter opened this issue Jul 24, 2015 · 229 comments

Comments

@GoogleCodeExporter
Copy link

If possible, it would be REALLY helpful if multiple codec support was
included as there are a couple codecs that would be much better for a phone
like this. Or even set a fallback codec, however that is not even close to
mattering...

The codecs that would be EPIC to see supported are:

ILBC - Internet Low Bitrate Codec (Good for edge, or low signal)
GSM  
G729
G711

Thanks!

Original issue reported on code.google.com by andrusjo...@gmail.com on 9 Jun 2009 at 7:12

@GoogleCodeExporter
Copy link
Author

G.711 is already supported. The other mentioned ones are not supported by 
Android OS. 
Implementing them within a Java application like Sipdroid is not possible.

Original comment by pmerl...@googlemail.com on 9 Jun 2009 at 7:54

  • Changed state: WontFix

@GoogleCodeExporter
Copy link
Author

From android officially supported codec table:
http://developer.android.com/guide/appendix/media-formats.html
there seems to be only audio encoder for "AMR-NB" with bitrates from 4.75 to 
12.2 
kbps sampled @ 8kHz. This should be more efficient than the raw G.711 data. 
(even if 
it needed a server side codec add-on).
Anyway don't know if SIP allows to negotiation of different codecs in each 
direction, 
but it would be nice to decode wide-band audio using like Vorbis or MP3 and 
encode 
with other limited codec.

What about a java implementation of Speex (there seems to be aleady a Java 
encoder/decoder):
http://freshmeat.net/projects/jspeex/
http://sourceforge.net/projects/jspeex/
don't know about real time performance in current android hardware, but 
performance 
wise, speex seems to be a very good speech codec (and free of 
patents/licenses)... if 
it prove to be successful, it could later implemented in android core media 
formats.

Original comment by mikexilva@gmail.com on 10 Jun 2009 at 1:06

@GoogleCodeExporter
Copy link
Author

Today the NDK (native development kit) became available. That should allow 
developers 
to add low bitrate codecs.

Original comment by pmerl...@googlemail.com on 25 Jun 2009 at 10:15

  • Changed state: New

@GoogleCodeExporter
Copy link
Author

This is pretty important, as what good is it to have SIP if you can only use it 
at
the best of times...even one selectable lower bitrate codec would be sufficient.

Original comment by andrusjo...@gmail.com on 26 Jun 2009 at 4:49

@GoogleCodeExporter
Copy link
Author

Original comment by pmerl...@googlemail.com on 26 Jul 2009 at 10:58

  • Added labels: Type-Enhancement
  • Removed labels: Type-Defect

@GoogleCodeExporter
Copy link
Author

I would like to suggest that g729 is particularly important for compatibility
reasons. Most SIP providers support g721 and g729. There are, however, licensing
issues with the g729, so I suggest selling a "codec upgrade package" on the 
market to
cover the licensing cost. It should be $10/channel.

Original comment by andr...@tastemycity.com on 2 Aug 2009 at 4:32

@GoogleCodeExporter
Copy link
Author

I'd second the request for iLBC, Speex and GSM fullrate codecs, as they are 
freely
implementable and useable, and moreover they use much less bandwidth, making 
use over
GPRS or when there are limits in exchanged data feasible.

Original comment by marcu...@gmail.com on 22 Aug 2009 at 2:26

@GoogleCodeExporter
Copy link
Author

[deleted comment]

@GoogleCodeExporter
Copy link
Author

I'd also say a lower bitrate codec would be great for calls over edge, and I'd 
also
push for g729, even if I have to pay a fee, cause it's supported by my SIP 
provider.

Original comment by f8f...@gmail.com on 23 Aug 2009 at 3:23

@GoogleCodeExporter
Copy link
Author

Yes, low bandwidth codes are a must. Mobile phones have come a long way in the 
last
few years. It is very clear that within the next year or so, everyone will be 
looking
at using their mobile phone for full fledged VOIP. A low bandwidth codec will 
be very
much welcomed by everyone.

Original comment by feroz.ba...@gmail.com on 26 Aug 2009 at 6:29

@GoogleCodeExporter
Copy link
Author

+1 g729 is the only Free Codec my Provider has enabled ... even when paying the 
Monthly Option Very Few other Codecs :S


Original comment by masterc...@gmail.com on 28 Aug 2009 at 10:44

@GoogleCodeExporter
Copy link
Author

I would once again like to ask please to have either G729 added or better 
yet...ILBC
- Internet Low Bitrate Codec. For those of us with not perfect edge even this 
would
really really help. And I would help if I knew how...

Original comment by andrusjo...@gmail.com on 14 Sep 2009 at 5:12

@GoogleCodeExporter
Copy link
Author

g729 support is urgent :P

Original comment by giacomo1...@gmail.com on 24 Sep 2009 at 9:56

@GoogleCodeExporter
Copy link
Author

I have been attempting jumping a somersault from the excitement I get from 
sipdroid.
 There is so much potential!  Thank you for all your work.  This is truly a FreeSky!

But alas, you need a codec for every season for sipdroid to be viable.  Please 
add
more codec support and make this the killer app!  I wish I could contribute 
more than
just stating the clearly obvious matter.  Escalate this to urgent?

Original comment by scotthaz...@gmail.com on 5 Oct 2009 at 1:40

@GoogleCodeExporter
Copy link
Author

[deleted comment]

@GoogleCodeExporter
Copy link
Author

Android OS support the g729 codec?

Original comment by mhdazhar...@gmail.com on 5 Oct 2009 at 7:54

@GoogleCodeExporter
Copy link
Author

It's possible to add support to Android, as it's essentially a java operating 
system
to some degree, and other symbian phones have g729 support. Symbian is a java
operating system as well, but I understand it would probably be alot of work. 
Any
work on it would be very awesome though!

Original comment by andrusjo...@gmail.com on 6 Oct 2009 at 9:26

@GoogleCodeExporter
Copy link
Author

Neither android nor symbian are "java operating systems".
Android is linux, written in C-language with a proprietary-Java based UI stuff.
Symbian is entirely irrelevant. It is neither linux, nor Android-java.

As for whether "android supports" g729 or not...
No, of course not. And no, it doesn't matter.
You just need the source code for it (encoder and decoder) in C-language (use 
NDK
because Java is slow).

Original comment by andr...@tastemycity.com on 7 Oct 2009 at 9:01

@GoogleCodeExporter
Copy link
Author

Symbian uses java-apps as it's primary application type, so it isn't entirely
irrelevant, as there are some sip java clients for Symbian, and finding such a 
client
that is open-source would save alot of work. APK's in android are in the devlik 
JAVA
VM. Unless you make something in the NDK like you said, it runs in the Java VM. 
I
know the operating systems aren't written in java, of course! That'd be 
rediculously
slow. I meant that they primarily are programmed FOR in java, as in the 
applications.

I agree with your last paragraph however.

Sorry for not having 'perfect' syntax, gosh.

Original comment by andrusjo...@gmail.com on 8 Oct 2009 at 8:39

@GoogleCodeExporter
Copy link
Author

'And as ArsTechnica points out, despite being based on the Linux kernel, the 
open
source Android stack is essentially a creation of Java, and quite distinct from
Linux, making cross-platform application porting difficult.' 
-LinuxforDevices.com

As I pointed out, perhaps there is some open-source java code that can be 
repurposed,
such as g729 encoder and decoder. 

Link for quote:
http://www.linuxfordevices.com/c/a/News/Simulator-runs-Android-apps-on-Ubuntu/

Original comment by andrusjo...@gmail.com on 9 Oct 2009 at 4:22

@GoogleCodeExporter
Copy link
Author

I did some research in the licensing of the g729 codec and it seems like it is a
proprietary codec that would need some fan-dangling much like cyanogen's most 
recent
mods. 

Cyanogen was forced to make a 'framework' to include google apps from HTC's ADB
image, and extract the apps into his ROM to sidestep 'distribution'. We would 
need to
do something similar with a 'codec api' much like Asterisk's implementation. 
Someone
would download SIPDROID with only the current included codec, and then they 
would be
able to download the snap-in codec module for the cost of licensing (usually
somewhere around $10 per implimentation - multiple lines equals more money). 

I got this information from a message by Matthew Rubenstein for the licensing 
issues
that SIP-Communicator faced for inclusion of G729. This message is pasted below 
and
shown here: http://markmail.org/message/xwducxagerofmicf

 'I read with interest bug #176, "support for g729", at
https://sip-communicator.dev.java.net/issues/show_bug.cgi?id=176 . I work with 
the
Asterisk PBX, and I can offer some insight into how SIP-Commuicator can support 
G.729
without violating legal constraints on either SIP-Communicator or G.729 .

G.729 is a patented codec algorithm. That means that any software that encodes 
data
into G.729 format, or that decodes G.729-encoded data into any other format, 
must
operate under an explicit license originating in the G.729 patent holder. It's 
not
clear (in murky US patent/DMCA/whatever law) whether you are prohibited from 
writing
and operating code that implements a G.729 codec (either/both encode and/or 
decode)
*if you do not distribute it, and do not derive any commercial gain from it*. In
other words, research and education *of yourself* are commonly believed to be 
safe,
even if you do not have a license to do so. This freedom might not be protected 
by
law - I am not a lawyer, and I don't know of any actual court cases, especially 
under
the G.729 patent - but the practice is widespread, specifically with G.729 
codecs. In
other words, the audio processing community "conventional wisdom" that is being 
used
by many developers and researchers around the world says that it's OK to do R&D 
by
writing and testing G.729 codecs without a patent license.

The patent is separate from the code. There are several "reference 
implementations"
of G.729 codecs in executable code distributed as source code. There are various
licenses that come with those code samples. Intel, for example, offers a code 
package
that is widely used, but which prohibits use in commercial applications. There 
are a
few other restrictions on the Intel code, but it is expressly supplied for R&D, 
and
used as such fairly widely. Other implementations are offered with similar 
freedom
for R&D. Again, they are covered under copyright restrictions, which are 
independent
(and in addition to) the patent license restrictions.

If you want to use someone's codec, even a commercially available binary codec, 
you
also need to have a license originating in the patent holder. Code offered
commercially for execution in commercial environments usually (always, AFAIK) 
comes
with a patent license. Sometimes those licenses are expensive, especially for
multiple concurrent instances of a running codec (the terms under which the 
patent
license is usually offered). However, Digium (the company that produces and 
publishes
the fairly open-source Asterisk PBX) sells G.729 codecs, with patent licenses 
they
relicense from the patent holder, for the lowest price I know. It's $10 per
concurrent stream (ie, 2 streams for a typical 2-person phonecall means 2 codecs
means $20 in licenses). The money pays for the license, and compensates Digium 
(which
it also invests in its other operations, including open Asterisk development). 
There
are other relicense sources, but they're all more expensive than buying them 
from
Digium, except at large numbers of concurrent streams/codecs (eg. 10,000 or so, 
maybe
fewer).

I would recommend SIP-Communicator operate in this Intellectual Property 
environment
in the following manner: Code SIP-Communicator with an interface for *any* 
codec as a
module, including G.729, the generic G.711, maybe GSM or some other popular 
codecs,
all with the single "codec" API. Developers can use the Intel or other 
reference code
in R&D to develop the API, as long as they do not distribute the G.729 code 
they used
in violation of its copyright license (eg. noncommercial). Offer G.729 as an 
addon
module. Then, with some finesse, perhaps the project (or someone using the 
project's
products) can make a deal with Digium or some patent relicenser to bundle a 
licensed
G.729 executable for a $fee, or include in an installer script an online 
ecommerce
transaction for purchasing licenses for bundled code, etc. The optional G.729 
codec
can be the kind of option that distinguishes commercial installs from 
noncommercial.
I recommend using Asterisk's G.729 inclusion techniques as a model:
http://www.google.com/search?q=site% 
3Avoip-info.org%20asterisk%20(g.729%20OR%20g729) .

It's worth it, because G.729 is high quality for the low bandwidth, and is very
popular with VoIP/PSTN gateways, and very widely supported in terminals (which 
means
minimal transcoding, therefore maximal performance). Some gateways, especially 
those
with low per-minute prices (and small minimum minutes committments), require 
G.729 to
connect. So including some way for SIP-Communicator to use G.729, despite the
patent/license hurdles, is a very valuable feature. I hope I can help this 
project to
achieve that goal.

-- 

(C) Matthew Rubenstein'

Original comment by andrusjo...@gmail.com on 9 Oct 2009 at 4:38

@GoogleCodeExporter
Copy link
Author

And what about G726? It`s low bitrate codec too...

Original comment by kapo.ka...@gmail.com on 15 Oct 2009 at 3:28

@GoogleCodeExporter
Copy link
Author

The usefulness of any particular audio encoding is based on use and 
availability.

Sure G726 might be a good low bitrate compression scheme, but how many VOIP 
providers
actually use it?

The reason G729 should be absolutely top priority is that it does the required 
job
perfectly, AND virtually *all* VOIP providers support it.

Remember that you can only use what your provider actually supports!


*HOWEVER*... an even better approach to this might be to include a generic 
plugin
interface. This would allow for the use of FREE compression schemes (like speex 
for
example) for those whose providers support them, but would also allow users to
actually pay for a license and use G729 if required.

Original comment by andr...@tastemycity.com on 15 Oct 2009 at 5:18

@GoogleCodeExporter
Copy link
Author

Ya, that sounds good. It would be a good idea maybe to try to build a retro-fit 
for
the current plugins available for another open-source implimentation. Such as 
maybe
astrisx? It's an idea...

Original comment by andrusjo...@gmail.com on 17 Oct 2009 at 3:40

@GoogleCodeExporter
Copy link
Author

I think "iLBC" is the best solution. Many top SIP providers, like Gizmo, 
support 
this codec and it is royalty free! Also, tests show iLBC actually performs 
better 
than G.729 in restrictive networks. As noted before, iLBC would work best in 
the 
native C code (via NDK). The key would be to create a UI for the C code in the 
Sipdroid app. Currently researching...

Original comment by jeremy.workman@gmail.com on 18 Oct 2009 at 4:52

@GoogleCodeExporter
Copy link
Author

+1 Jeremy ! iLBC is the best solution, it's also a royalty free codec no fees, 
no patents, best quality in bad 
networks... We should ask iLBC support from android devs

Original comment by mouloud....@gmail.com on 18 Oct 2009 at 5:13

@GoogleCodeExporter
Copy link
Author

[deleted comment]

@GoogleCodeExporter
Copy link
Author

i have attached the 2.7 APK

Original comment by jkhan6...@gmail.com on 16 Jul 2012 at 9:41

@GoogleCodeExporter
Copy link
Author

Thanks, I had missed that. Are there any special instructions to get it to 
install? I only get an "apllication not installed error.  

Original comment by stephen....@gmail.com on 16 Jul 2012 at 12:53

@GoogleCodeExporter
Copy link
Author

no there is not specific instruction. Actually i checked then uploaded but any 
ways i will check it again and if i found any issue then i will fix it.

Original comment by jkhan6...@gmail.com on 17 Jul 2012 at 11:28

@GoogleCodeExporter
Copy link
Author

G729 not working for me

Original comment by and...@kliq.co.za on 19 Jul 2012 at 12:46

@GoogleCodeExporter
Copy link
Author

on which device you have tested and in what version?

Original comment by jkhan6...@gmail.com on 20 Jul 2012 at 7:14

@GoogleCodeExporter
Copy link
Author

I had trouble installing the apks because I thought they were addons for the 
official packages.  My froyo phone just fails when trying to install.  My Nexus 
7 jellybean gave me a more helpful "conflicting signatures" error message.  
When I uninstalled the original package, the G729 enabled ones installed 
without issue.  Thanks!

Original comment by stephen....@gmail.com on 22 Jul 2012 at 1:42

@GoogleCodeExporter
Copy link
Author

that's great

Original comment by jkhan6...@gmail.com on 24 Jul 2012 at 5:28

@GoogleCodeExporter
Copy link
Author

ERROR: codecs incompatible
Please help.

Original comment by kele...@gmail.com on 11 Sep 2012 at 2:46

@GoogleCodeExporter
Copy link
Author

There should be a problem in codec negotiation. can you show me error log?
And make sure you have installed the codecs on server( Asterisk etc.)

Thanks

Original comment by jkhan6...@gmail.com on 14 Sep 2012 at 1:57

@GoogleCodeExporter
Copy link
Author

Thank u for the good work.
I got "codecs imcompatible" error with version 2.7 on my htc evo 4g, but 
everything worked fine with version 2.4. Please advise.

Original comment by junli165...@gmail.com on 5 Oct 2012 at 4:02

@GoogleCodeExporter
Copy link
Author

When did you get this error? i mean which case?

Original comment by jkhan6...@gmail.com on 29 Oct 2012 at 7:36

@GoogleCodeExporter
Copy link
Author

2.7 with g729 doesn't work, 2.4 works for me on galaxy nexus

Original comment by lapcc...@gmail.com on 31 Oct 2012 at 11:18

@GoogleCodeExporter
Copy link
Author

 "codecs imcompatible" when try to call someone. htc one v, sipdroid 2.7

why does it says 13kbit for g729 (shouldn't it be 8kbit?)

Original comment by gjorgjio...@gmail.com on 25 Nov 2012 at 11:52

@GoogleCodeExporter
Copy link
Author

yeah its 8 kbit, but that string i just forgot to change !

Original comment by jkhan6...@gmail.com on 7 Dec 2012 at 1:23

@GoogleCodeExporter
Copy link
Author

I really hope Sipdroid can support iLBC. I used Media5-fone over 3G, the sounds 
really good. But Media5-fone drain too much battery.

Original comment by Sherman....@gmail.com on 12 Jan 2013 at 9:20

@GoogleCodeExporter
Copy link
Author

i want to add g729.java and codecs.java ,useragentprofile.java and 
useragent.java and add libs folder to it.so please suggest me how to compile it 
.please help me out...

Original comment by pradipsa...@gmail.com on 11 Apr 2013 at 2:26

@GoogleCodeExporter
Copy link
Author

It's been 4 years and there is no iLBC and G729 codec support?

Original comment by sinancet...@gmail.com on 27 Apr 2013 at 11:48

@GoogleCodeExporter
Copy link
Author

hope it can support iLBC!

Original comment by Sherman....@gmail.com on 14 May 2013 at 8:46

@GoogleCodeExporter
Copy link
Author

@sherman do you have the iLBC support code.

Original comment by pradipsa...@gmail.com on 15 May 2013 at 7:15

@GoogleCodeExporter
Copy link
Author

Here i have mentioned steps to add g729 codec in your project and compiled apk 
of Sipdroid 3.2 can also be found there
http://junedk.blogspot.com/2013/10/add-g729-codec-in-sipdroid.html

Original comment by jkhan6...@gmail.com on 28 Oct 2013 at 1:37

@GoogleCodeExporter
Copy link
Author

G726 and G729 are really helpful as our community member said, many voip 
providers will support it, did anyone know whether http://www.vitelglobal.com 
supports it.

Original comment by azhar4...@gmail.com on 31 Oct 2013 at 4:54

@GoogleCodeExporter
Copy link
Author

[deleted comment]

@GoogleCodeExporter
Copy link
Author

http://junedk.blogspot.com/2013/10/add-g729-codec-in-sipdroid.html
The link is dead. Could you repost 3.2 or later with g729, please.

Original comment by L.Netwal...@gmail.com on 24 Mar 2014 at 11:31

@GoogleCodeExporter
Copy link
Author

Does it support opus codec ?

Original comment by sakharam...@gslab.com on 23 Sep 2014 at 6:51

@GoogleCodeExporter
Copy link
Author

http://kingoftweaks.blogspot.in/2014/03/add-g729-to-sipdroid.html

Original comment by jery....@gmail.com on 13 Jan 2015 at 11:40

@chris001
Copy link

Would be great if you would add AMR-NB and AMR-WB because these are both supported in Android OS.
Reference: https://developer.android.com/guide/appendix/media-formats.html
Also, to add support for the license free royalty free ILBC and G.722 codecs, which are supported by Zoiper free soft phone so it must be possible to provide it through a couple of small native C libraries.
Ref: https://www.zoiper.com/en/voip-sdk/fact-sheet

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants