32 Commits

Author SHA1 Message Date
Chia-chi Yeh
6d8b9b84ac Merge "RTP: Update parameters for larger packet intervals." 2011-09-13 21:21:18 -07:00
Chia-chi Yeh
be57bfe853 RTP: Update parameters for larger packet intervals.
Also remove some duplicated code.

Change-Id: I64576e5442a962eb4b0dfa83b52a8127567ba597
2011-09-09 16:08:12 -07:00
Chia-chi Yeh
81a5ec5b94 Merge "RTP: support payloads with larger packetization interval." 2011-09-08 14:07:00 -07:00
Chia-chi Yeh
35d05dcba1 RTP: support payloads with larger packetization interval.
RFC 3551 section 4.2 said that a receiver should accept packets
representing between 0 and 200ms of audio data. Now we add the
ability to decode multiple frames in a payload as long as the
jitter buffer is not full. This change covers G711, GSM, and
GSM-EFR. AMR will be added later.

Bug: 3029736
Change-Id: Ifd194596766d14f02177925c58432cd620e44dd7
2011-09-06 14:34:44 -07:00
Eric Laurent
74e0a990ae VoIP JNI: Force AEC on for tuna board
Force AEC on for tuna board because of the strong feedback
of Rx audio path, even when playing over earpiece or headset.

Change-Id: I9c14257d56103ba82d6cdb0b7d5a3f315638136e
2011-09-02 12:10:45 -07:00
Eric Laurent
5fb3ba60af Issue 3370834: No Echo canceler for SIP
Added detection of platfrom AEC in AudioGroup. If an AEC
is present, the SIP stack will use it, otherwise the echo suppressor
of the stack will be used.

Change-Id: I4aa45a8868466120f5f9fae71b491fe4ae1162c2
2011-07-27 09:33:22 -07:00
Dima Zavin
34bb419e59 update for new audio.h header location
Change-Id: Ic4c62c4037800802427eb7d3c7f5eb8b25d18876
Signed-off-by: Dima Zavin <dima@android.com>
2011-05-12 14:09:57 -07:00
Dima Zavin
24fc2fb1c5 audio/media: convert to using the audio HAL and new audio defs
Change-Id: Ibc637918637329e4f2b62f4ac7781102fbc269f5
Signed-off-by: Dima Zavin <dima@android.com>
2011-04-27 13:10:10 -07:00
Eric Laurent
7a492a9ad4 am b7a76e84: am a482d83c: Merge "Issue 4157048: mic gain for VoIP/SIP calls." into gingerbread
* commit 'b7a76e84fde7fe534d46aaaa71e3224798354009':
  Issue 4157048: mic gain for VoIP/SIP calls.
2011-04-04 17:44:50 -07:00
Eric Laurent
d7a724e6d8 Issue 4157048: mic gain for VoIP/SIP calls.
Herring board exhibits a strong echo even in non speakerphone modes.
To compensate the lack of AEC or AES when not in speakerphone, the mic gain
had been reduced in the ADC. But this has an adverse effect on other VoIP applications
that have their own AEC and are penalized by the weak mic gain.

This workaround enables an acceptable mic gain for other VoIP apps while offering a
SIP call experience which is not worse than it was with the residual echo that was
present even with mic gain reduction.

Change-Id: I33fd37858758e94e42ef5b545d3f0dc233220bf1
2011-03-29 18:44:03 -07:00
Jean-Michel Trivi
2ba92c71b5 do not merge bug 3370834 Cherrypick from master
Cherripick from master CL 79833, 79417, 78864, 80332, 87500

Add new audio mode and recording source for audio communications
 other than telelphony.

The audio mode MODE_IN_CALL signals the system the device a phone
 call is currently underway. There was no way for audio video
 chat or VoIP applications to signal a call is underway, but not
 using the telephony resources. This change introduces a new mode
 to address this. Changes in other parts of the system (java
 and native) are required to take this new mode into account.
The generic AudioPolicyManager is updated to not use its phone
 state variable directly, but to use two new convenience methods,
 isInCall() and isStateInCall(int) instead.

Add a recording source used to designate a recording stream for
voice communications such as VoIP.

Update the platform-independent audio policy manager to pass the
 nature of the audio recording source to the audio policy client
 interface through the AudioPolicyClientInterface::setParameters()
 method.

SIP calls should set the audio mode to MODE_IN_COMMUNICATION,
 Audio mode MODE_IN_CALL is reserved for telephony.

SIP: Enable built-in echo canceler if available.
1. Always initialize AudioRecord with VOICE_COMMUNICATION.
2. If echo canceler is available, disable our echo suppressor.

Note that this CL is intentionally not correcting the
 getAudioSourceMax() return value in MediaRecorder.java as the
 new source is hidden here.

Change-Id: Ie68cd03c50553101aa2ad838fe9459b2cf151bc8
2011-01-26 11:20:01 -08:00
Chia-chi Yeh
d87be273aa Enable built-in echo canceler if available.
1. Always initialize AudioRecord with VOICE_COMMUNICATION.
2. If echo canceler is available, disable our echo suppressor.

Change-Id: Idf18d3833189a8478c1b252ebe6ce55e923280b3
2011-01-06 17:43:24 +08:00
Chia-chi Yeh
d0da380796 am dc78e3fe: am 3cf71376: RTP: Send silence packets on idle streams for every second.
* commit 'dc78e3fe7f2ffbc810cd54e86e3a83e279d74984':
  RTP: Send silence packets on idle streams for every second.
2011-01-04 17:41:16 -08:00
Chia-chi Yeh
3cf7137642 RTP: Send silence packets on idle streams for every second.
Originally a stream does not send packets when it is receive-only or there is
nothing to mix. However, this causes some problems with certain firewalls and
proxies. A firewall might remove a port mapping when there is no outgoing
packet for a preiod of time, and a proxy might wait for incoming packets from
both sides before start forwarding. To solve these problems, we send out a
silence packet on the stream for every second. It should be good enough to
keep the stream alive with relatively low resources.

Bug: 3119690
Change-Id: Ib9c55e5dddfba28928bd9b376832b68bda24c0e4
2011-01-04 19:54:49 +08:00
Chia-chi Yeh
53aa6ef70d RTP: Prepare to unhide the APIs.
Polish things a little bit.

Change-Id: I2c3cea8b34b9c858879bc722ea1f38082ba22b8d
2010-12-01 11:35:51 +08:00
Chia-chi Yeh
8a68b52b98 RTP: Fix non-zero DC in EchoSuppressor caused while aggregating samples.
Rewrite using integer arithmetic to get full 32-bit precision instead
of 23-bit in single precision floating-points.

Bug: 3029745
Change-Id: If67dcc403923755f403d08bbafb41ebce26e4e8b
2010-10-22 03:47:02 +08:00
Chia-chi Yeh
a8a10096a1 RTP: Add a baseline echo suppressor.
Change-Id: I832f1f572f141fd928afe671b12d0b59f2a8e0b1
2010-10-05 02:47:00 +08:00
Chia-chi Yeh
67ecb5b90c RTP: Start AudioRecord before AudioTrack to avoid being disabled.
Change-Id: I96be89fda41d77e2cf5bfc1c2f14e2b109001b57
2010-10-01 08:20:09 +08:00
Chia-chi Yeh
21ae1ad6a6 RTP: Minor fixes with polishing.
Change-Id: I50641373989e512fb489b5017edbcfd7848fe8b9
2010-09-30 16:07:44 +08:00
Chia-chi Yeh
3520bd4313 RTP: Adjust the jitter buffer to 512ms.
Change-Id: Ia91c1aa1a03b65dbd329ea98383f370844e2b0c0
2010-09-30 13:51:26 +08:00
Chia-chi Yeh
fe5298992a RTP: Revise the workaround of private addresses and fix bugs.
Change-Id: Ie654b569f47049aa452eca8d3e6d4a98ac18469c
2010-09-30 02:43:48 +08:00
Chia-chi Yeh
9083c84af1 RTP: Delay the initialization of AudioTrack and AudioRecord.
Related to http://b/3043844.

Change-Id: I2c4fd9f64e6eba597d68b2ea1ceeff83103697db
2010-09-29 05:24:34 +08:00
Chung-yih Wang
bd2294204e Fix the unhold issue especially if one is behind NAT.
+call startAudio() when call is established.

Change-Id: Ib6a1e34017fb83007ce275da1991058e8b803833
2010-09-27 23:53:39 +08:00
repo sync
7a69aeffda RTP: Add log throttle for "no data".
Change-Id: I14d9886a40fa780514cbc6c5bac6fb2a670f55f4
2010-09-23 05:46:01 +08:00
Chia-chi Yeh
4033a67d0e RTP: Update native part to reflect the API change.
Change-Id: Ic2858920ad77d7312f2429f89ca509a481363431
2010-09-23 03:36:43 +08:00
Chia-chi Yeh
557b04de23 RTP: prevent buffer overflow in AudioRecord.
This change simply reduces the receive timeout of DeviceSocket. It works
because AudioRecord will block us till there is enough data, which makes
AudioSocket overlap AudioRecord.

Change-Id: I4700224fb407e148ef359a9d99279e10240128d0
2010-09-08 09:56:02 +08:00
Chia-chi Yeh
7fa7ee11f6 Revert "RTP: integrate the echo canceller from speex."
This reverts commit 4ae6ec428f3570b9020b35ada6a62f94af66d888.
2010-08-26 10:33:09 +08:00
Chia-chi Yeh
4ae6ec428f RTP: integrate the echo canceller from speex.
Currently the filter_length is set to one second.
Will change that when we have a better idea.

Change-Id: Ia942a8fff00b096de8ff0049a448816ea9a68068
2010-08-24 16:04:18 +08:00
Chia-chi Yeh
2880ef86e5 RTP: reduce the latency by overlapping AudioRecord and AudioTrack.
Change-Id: I00d750ee514ef68d5b2a28bd1893417ed70ef1fc
2010-08-24 13:58:12 +08:00
Chia-chi Yeh
b879032347 RTP: fix few leaks when fail to add streams into a group.
Change-Id: Iefb3fe219ad48641da37a83c8d14e9ebf1d3086c
2010-08-19 18:26:53 +08:00
Chia-chi Yeh
3459d3037c RTP: remove froyo-compatible code.
Change-Id: I6822a4e4749a5909959658c29253242b4018aeb0
2010-08-18 07:09:59 +08:00
Chia-chi Yeh
4c5d28cee0 RTP: move into frameworks.
Change-Id: Ic9c17b460448c746b21526ac10b647f281ae48e9
2010-08-06 14:12:05 +08:00