395db4bfa5b43a839f95632676d59cde99a9840d |
|
26-Aug-2014 |
Andy Hung <hunga@google.com> |
Fix AudioMixer MONO muted track handling Incorrect handling caused "stereo" mode to be used. Augmented error handling to print more debug info. Bug: 17208475 Change-Id: I5bcaf0ba5bd5a4f7d4885f8cce43bbf42e5f1e6b
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
5241b8cacee86e17223695190959f4752910680f |
|
05-Aug-2014 |
Andy Hung <hunga@google.com> |
Remove unused TwoTrack process mode from AudioMixer Legacy code that has not been hooked up. Change-Id: Ic01a4eddfa1020089d5bc42f58b6a4697698c27a
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
9a59276fb465e492138e0576523b54079671e8f4 |
|
22-Jul-2014 |
Andy Hung <hunga@google.com> |
Add multichannel capability to AudioFlinger But not enabled (kEnableExtendedChannels == false). Change-Id: I62f7e31fbd29ad703a9a02f5d1a280b6972dd423
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
e93b6b7347a7846c8fd746542364ec11b0cd5124 |
|
18-Jul-2014 |
Andy Hung <hunga@google.com> |
Add multichannel capability to AudioMixer tests/test-mixer updated to handle multichannel. New mixer path is still disabled (kUseNewMixer = false). Subsequent CL will enable multichannel capability. Change-Id: I71dafa94cc1d9af567c285e0ded7c5c94e3ff926
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
a08810b2feafeec88870c7c1f01efc39ee8e0d78 |
|
17-Jul-2014 |
Andy Hung <hunga@google.com> |
Add RemixBufferProvider to AudioMixer This is used to convert between channel masks for input AudioTrack data. Change-Id: Iedffaeccb99c7053992152e7b1cb6b2d33b12eef
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
34803d594232af5604d893eff7ee40bb57d459a4 |
|
17-Jul-2014 |
Andy Hung <hunga@google.com> |
Update DownmixerBufferProvider to use CopyBufferProvider Change-Id: I6b1a8755a1e6c29b916662fd376e9509cda5df55
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
1b2fdcb005f9fbe5ad465cec46ec5992b718b5e3 |
|
17-Jul-2014 |
Andy Hung <hunga@google.com> |
Add CopyBufferProvider class for AudioMixer AudioMixer::ReformatBufferProvider now uses it as a base class. Fix ReformatBufferProvider object leak. Change-Id: If196f844eaaa124a173ffa27afe88098023c2ff9
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
5e58b0abe5b6c8f5bd96a8f78bbeeeb4d3892020 |
|
24-Jun-2014 |
Andy Hung <hunga@google.com> |
Add floating point volume handling to AudioMixer Use floating point volume in AudioMixer mixing when floating point input is used with the new mixer engine. AudioResampler is updated to take floating point volume to match. Both legacy integer and floating point mixer engines work. For now, integer volume is used when the new mixer engine runs in integer input mode, for backward compatibility with the legacy mixer. The new mixer engine will generally run in floating point input mode. When the legacy path is removed, the integer volumes will be removed. Change-Id: I79e80c292ae7c8b8bdd0aa371a1b2c3a1b618290
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
3348e36c51e91e78020bcc6578eda83d97c31bec |
|
07-Jul-2014 |
Andy Hung <hunga@google.com> |
Replace int bitDepth with audio_format_t in Resampler Remove mBitDepth from class (not used). Replace with audio_format_t in factory method to distinguish between float and pcm 16-bit. Change-Id: I166860796c68285077ef4458d8758d19b82523f9
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
296b741e8eb38e749e3202182f703a2e30ee5f1f |
|
18-Jun-2014 |
Andy Hung <hunga@google.com> |
Add new AudioMixer processing hooks This change adds new process and thread hooks for multi-format handling. It is enabled by setting kUseNewMixer = true. Change-Id: I262a3d2e4411f8cef7370a497b77a34eb55f1f86
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
6be494077f8d7970f3a88129c5d139c5a0c88f6d |
|
30-May-2014 |
Andy Hung <hunga@google.com> |
Change parameter type for volume to float in AudioMixer Change-Id: I4da1505ce852505f86f8e5b87f60e8edceeb30e0
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
97ae82408469286426d8dc57a361350f74e24a8b |
|
30-May-2014 |
Andy Hung <hunga@google.com> |
Rename UNITY_GAIN to UNITY_GAIN_INT in AudioMixer Change-Id: Ic040311305026f0b4c4280a5b3bef7a447ac1da3
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
5866a3b9689035580c31f1a02037b8176d7508a7 |
|
30-May-2014 |
Andy Hung <hunga@google.com> |
Refactor setVolumeRampVariables in AudioMixer Change-Id: I8fcf3101bcea292de7c65433fa578f1c9cdd0974
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
f8a106ae5c40735de6c75e7c12d5e0e2e22f12cf |
|
30-May-2014 |
Andy Hung <hunga@google.com> |
Fix floating point output from mixer A buffer pointer was being erroneously reset to buffer start, potentially causing an audio glitch. The floating point output mode is not enabled at this time, but will be in the future. Change-Id: If8b6414d232f064f3a2e2c5a6da889a91b27fb24
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
1d26ddf715182d6082804ff70086c47fb8c354b8 |
|
30-May-2014 |
Andy Hung <hunga@google.com> |
Avoid resetting BufferProviders in mixer unnecessarily Change-Id: Iad85c4dfd21be1dbf89dc11906106b34219376f8
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
ef7c7fbd0e3fb36af14cd7d39f64c949031516a5 |
|
13-May-2014 |
Andy Hung <hunga@google.com> |
Add multiple format capability to AudioMixer Change-Id: I04ac1cafd90b6ed652f8d51888ad07576678f0bc Signed-off-by: Andy Hung <hunga@google.com>
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
e8a1ced4da17dc6c07803dc2af8060f62a8389c1 |
|
10-May-2014 |
Andy Hung <hunga@google.com> |
Add format parameter to getTrackName() and track_t Change-Id: Ia152a839014e235fbfb656104c15d7c1b456d02e Signed-off-by: Andy Hung <hunga@google.com>
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
68112fc4f77ab8c4a744782f78e9792afe0cbfc1 |
|
14-May-2014 |
Andy Hung <hunga@google.com> |
Update AudioMixer::getTrackName to save channelMask Change-Id: I4fb4abbff1b05bdd0f6e21b5f5f4c3f2a57ae28d Signed-off-by: Andy Hung <hunga@google.com>
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
e541269be94f3a1072932d51537905b120ef4733 |
|
16-May-2014 |
Andy Hung <hunga@google.com> |
Use new channel count functions for audio masks Change-Id: Ia658ab4b6320d19fdb50f123c930918724ff0ef3 Signed-off-by: Andy Hung <hunga@google.com>
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
84a0c6e87c48f58a0d3be71961432c086a4d24cc |
|
02-Apr-2014 |
Andy Hung <hunga@google.com> |
Change references of Q19.12 to Q4.27 for clarity Change-Id: I5beb7daf6ff9bc123ff3582f7c294edcaf8652f6 Signed-off-by: Andy Hung <hunga@google.com>
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
adad3d7d935da176ff24941b4ae9edf7340e9b96 |
|
21-Feb-2014 |
Glenn Kasten <gkasten@google.com> |
Use LOG_ALWAYS_FATAL instead of LOG_FATAL LOG_FATAL is compiled out in most builds, so the assertion checks were not being performed. Change-Id: I774f0985ab9c5ccecd8989a0f1c940386b73fc35
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
788207057ed4b8df4719ed8089f376ef52de9ca1 |
|
01-Mar-2014 |
Andy Hung <hunga@google.com> |
Rename mSinkFormat to mMixerFormat for AudioMixer::track_t AudioMixer::SINK_FORMAT also changes to AudioMixer::MIXER_FORMAT Change-Id: Ic3f8be77d2c75c082c4fd140bc907e30c304d285 Signed-off-by: Andy Hung <hunga@google.com>
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
3375bde6c6c1821fca3eeb4840774112e26c9a68 |
|
01-Mar-2014 |
Andy Hung <hunga@google.com> |
Use float_from_q19_12 conversion in AudioMixer Change-Id: Idbe84fb9610c7e636a84468f2e2402a913435ca9 Signed-off-by: Andy Hung <hunga@google.com>
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
a1ab7cc8611c83427b57f6d4d4ce7aad9d1c0330 |
|
25-Feb-2014 |
Andy Hung <hunga@google.com> |
Add Track Sink Format to AudioMixer Track Sink Format now allows both AUDIO_FORMAT_PCM_FLOAT and AUDIO_FORMAT_PCM_16_BIT (default). The float case is not enabled now. Change-Id: Ibee70cab4725c8bc9905e49f1f9a9c2448f76e00 Signed-off-by: Andy Hung <hunga@google.com>
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
1d6fa7af1288b550faabe4ec2cf98684236723db |
|
11-Feb-2014 |
Narayan Kamath <narayan@google.com> |
resolved conflicts for merge of 566be7c3 to master Change-Id: I7b1cc71057b2bd4f771e7bcf508a8c3abd6017ce
|
377b2ec9a2885f9b6405b07ba900a9e3f4349c38 |
|
03-Feb-2014 |
Kévin PETIT <kevin.petit@arm.com> |
Make frameworks/av 64-bit compatible Contains the necessary changes to make frameworks/av build and work on a 64-bit machine. Signed-off-by: Craig Barber <craig.barber@arm.com> Signed-off-by: Kévin PETIT <kevin.petit@arm.com> Signed-off-by: Ashok Bhat <ashok.bhat@arm.com> Signed-off-by: Marcus Oakland <marcus.oakland@arm.com> Change-Id: I725feaae50ed8eee25ca2c947cf15aee1f395c43
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
9e0308c03d4e76d3146cbb6e30aeb3ac03f05cf5 |
|
30-Jan-2014 |
Andy Hung <hunga@google.com> |
Enable new dynamic audio resampler as default The default may still be overridden by af.resampler.quality in the local or build properties file. For the build properties check the relevant device.mk files. In the absence of being overridden, the 44.1 to 48kHz and 48 to 44.1kHz conversion will use the DYN_MED_QUALITY resamplers and other conversion will use the DYN_LOW_QUALITY resamplers. Change-Id: Icf9a4af5422cddc445e1904eef93984b0abe6a44 Signed-off-by: Andy Hung <hunga@google.com>
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
e983e0a0017fce81dc3d9bea36f5abb7b7bce40b |
|
30-Jan-2014 |
Andy Hung <hunga@google.com> |
Merge "Remove warnings in Audio mixer resampler compilation."
|
ee931ff7d6620e5705f4dfba901fdb03fa4a35fd |
|
28-Jan-2014 |
Andy Hung <hunga@google.com> |
Remove warnings in Audio mixer resampler compilation. Change-Id: Ie68766142796772a54a90afdea188d0a5a78d4ac Signed-off-by: Andy Hung <hunga@google.com>
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
0eed5ac1a14067d0fd51282e97b43b4fd9121842 |
|
29-Jan-2014 |
Glenn Kasten <gkasten@google.com> |
Merge commit 'adf3f9b9' into manualmerge Change-Id: Icdef7d075b160eb2a5ced7c57f90c6a6a4b4c64a
|
7e79cd2d3067cdb7b9daf639cf772d4dd149c934 |
|
06-Jan-2014 |
Gaurav Kumar <gaurav.kumar@broadcom.com> |
AudioMixer: Remove tracks from enabledTracks after reseting outTemp If any track goes through AudioMixer::process__genericNoResampling, and its getnextbuffer returns NULL, Then that track is removed by AudioMixer from enabledTracks. Thus if all tracks getnextbuffer return NULL, Then this function doesn't reset outTemp and last buffer in AudioFlinger's mMixBuffer will be repeated and noise is observed. Remove tracks from enabledTracks after reseting outTemp to zero, so that process__genericNoResampling will reset outTemp and noise won't appear. Bug: 12450065 Change-Id: I1ccac7ee4a3bf7fd930254356c072099e11e7c19 Signed-off-by: Gaurav Kumar <gaurav.kumar@broadcom.com> Signed-off-by: Pierre Couillaud <pierre@broadcom.com>
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
d8a1de6204829b0379bbd13042f1450bdb203f2b |
|
08-Nov-2013 |
Glenn Kasten <gkasten@google.com> |
Merge "Channel counts are uint32_t"
|
f551e9961a6f66d63bb57f288c4be01b00725289 |
|
20-Aug-2013 |
Glenn Kasten <gkasten@google.com> |
Channel counts are uint32_t Change-Id: I5676b6a291b72d7db6326f7eaf6d17588de51b05
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
d6fadf0479b489b09b764070974d8a59855ede64 |
|
30-Oct-2013 |
Glenn Kasten <gkasten@google.com> |
Simplify track 'needs' bits Use more standard coding convention for bit masks, and add a FIXME about max channel count. Change-Id: I856784016703417ee480b92ae73757c472f9cf95
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
8f32537d028231abed103c68705bc5d07cedf919 |
|
30-Oct-2013 |
Glenn Kasten <gkasten@google.com> |
Remove redundant this-> Change-Id: Id783201e802b6ce294fa92f4bbe492adfb446686
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
e25b778b11183fda65418ab2142873a030521870 |
|
30-Oct-2013 |
Glenn Kasten <gkasten@google.com> |
Remove dead code Change-Id: Ide9196aa348cd3846b5c71d51fe6538f38ea8dc2
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
49c34acbef91800930b0fe561e0787145a10cfcc |
|
30-Oct-2013 |
Glenn Kasten <gkasten@google.com> |
Fix race condition in initializing downmix The code that initializes downmix GUID searches for an effect of the right type. If two or more AudioMixers are created, there is a possibility that the GUID will temporarily have the wrong value. Now the initialization is only done once, regardless of how many AudioMixers there are. Other minor changes: - use naming convention of leading 's' for static member variables - log message for no downmix effect is now a warning instead of an error, since it is not an error until there is actual content to downmix without a downmix effect Change-Id: I33ab0e51cf9d24ecaf8ae868883736b0772178c4
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
34fca34606b448e6b71c2942f63cb13a0aebd620 |
|
13-Aug-2013 |
Glenn Kasten <gkasten@google.com> |
Explicit comparison to 0 for integral types Change-Id: I2bfe864d1bda719581e297a38d96abfc0e3748b9
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
6e2ebe97f2ad0a21907f20f9ee644c4eacbb7a40 |
|
13-Aug-2013 |
Glenn Kasten <gkasten@google.com> |
Use curly braces in 'if' to make it easier to add logs Change-Id: I58b33fefdd8bf703647414157a99a3223be3531c
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
153b9fe667e6e78e0218ff0159353097428c7657 |
|
15-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
Make AudioFlinger::instantiate() more resilient when called from separate module Bug: 8834855 Change-Id: I4cd842cdfb09d2aaaaab9df9ac3bec6179709bd3
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
ab7d72f0804fbb7e91ad9d2a16f826d97e20e5d0 |
|
27-Feb-2013 |
Glenn Kasten <gkasten@google.com> |
media.log cleanup Remove almost all of the specific logs, but leave the media.log logging infrastructure in place for the next time we need it. Re-apply a few good changes that were reverted earlier: - check logf format vs. argument list compatibility - distinguish potentially modified and actually modified tracks in FastMixer - fix benign bug where sq->end() was called more than once - fix a build warning Bug: 6490974 Change-Id: I02d3e83646c738acaebb415bd0d6b548638b4ef5
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
409e3749a5627f1b360feb1479fcd341067a90b8 |
|
27-Feb-2013 |
Glenn Kasten <gkasten@google.com> |
Revert "Logging to investigate a crash" This reverts commit f0ff908da019a44115109f1b4d1b6864b35a8a29.
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
fc900c922e219771d0cd3c075720d90026e1ca4a |
|
18-Feb-2013 |
Glenn Kasten <gkasten@google.com> |
A reference cannot be re-bound Bug: 8213067 Bug: 6490974 Change-Id: If546215641fbc9a0fb1e8af8b85cc01f0a4b26ab
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
7f5d335f7b4caecd0dfb8f1085f352f1d2da5d2e |
|
16-Feb-2013 |
Glenn Kasten <gkasten@google.com> |
Revert "Temporary additional logging to investigate bug" This reverts commit 32584a7d672864b20ab8b83a3cb23c1858e908b7 Change-Id: I9dc680578b955b1af462eeb7a49d61a0d45eb81b
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
32584a7d672864b20ab8b83a3cb23c1858e908b7 |
|
13-Feb-2013 |
Glenn Kasten <gkasten@google.com> |
Temporary additional logging to investigate bug The bug appears related to continuing to use an invalid buffer provider in fast mixer after track destruction, so focus the added logs in that area. Also includes a bug fix: was calling log in an unsafe place near Threads.cpp AudioFlinger::PlaybackThread::createTrack_l line 1250. Details: - include caller pid or client pid where appropriate - increase log buffer size - log mFastIndex when AudioMixer sees an invalid bufferProvider. - log both potentially modified and actually modified tracks in FastMixer. - fix benign bug where sq->end() was called more than once. - log StateQueue push() call and return. - increase StateQueue size from 4 to 8 entries - log mixer->enable(), bufferProvider, and currentTrackMask - log buffer provider addresses - increase fast mixer log buffer again - check logf format vs. argument list compatibility - add logging to AudioMixer - add checking of magic field in AudioMixer to detect overwrites - add bool AudioMixer::enabled() - increase log buffer sizes yet again - enable assertion checking without ALOGV - improve a few log messages - check for corruption in more places - log in all the process hooks - add new mixer APIs so we can check for corruption of mixer state - fix a build warning Bug: 6490974 Change-Id: Ib0c4a73dcf606ef9bd898313b3b40ef61ab42f51
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
e186b51e0a9834b287d7a509e960eaf1b688db75 |
|
15-Feb-2013 |
Glenn Kasten <gkasten@google.com> |
Revert "Temporary additional logging to investigate bug" This reverts commit 639482c24c911b125398b31883ba6d55faebe28b Change-Id: I11f2829072ab11e18b0663024f27bf31192f1d39
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
639482c24c911b125398b31883ba6d55faebe28b |
|
13-Feb-2013 |
Glenn Kasten <gkasten@google.com> |
Temporary additional logging to investigate bug The bug appears related to continuing to use an invalid buffer provider in fast mixer after track destruction, so focus the added logs in that area. Also includes a bug fix: was calling log in an unsafe place near Threads.cpp AudioFlinger::PlaybackThread::createTrack_l line 1250. Details: - include caller pid or client pid where appropriate - increase log buffer size - log mFastIndex when AudioMixer sees an invalid bufferProvider. - log both potentially modified and actually modified tracks in FastMixer. - fix benign bug where sq->end() was called more than once. - log StateQueue push() call and return. - increase StateQueue size from 4 to 8 entries - log mixer->enable(), bufferProvider, and currentTrackMask - log buffer provider addresses - increase fast mixer log buffer again - check logf format vs. argument list compatibility - add logging to AudioMixer - add checking of magic field in AudioMixer to detect overwrites - add bool AudioMixer::enabled() Bug: 6490974 Change-Id: I1f3f18aa62d9fbd35bc32285b669f5ba40efe28e
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
51eb3965caa8ba135bcdd8ffb7a2024a042ecdc0 |
|
14-Feb-2013 |
Glenn Kasten <gkasten@google.com> |
Revert "Temporary additional logging to investigate bug" This reverts commit 0ddd56316262ac74a95e9edb595697c163136d6d Change-Id: I180a928af6f5a38d15a5efe44cd1fe927b5d961c
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
0ddd56316262ac74a95e9edb595697c163136d6d |
|
13-Feb-2013 |
Glenn Kasten <gkasten@google.com> |
Temporary additional logging to investigate bug The bug appears related to continuing to use an invalid buffer provider in fast mixer after track destruction, so focus the added logs in that area. Also includes a bug fix: was calling log in an unsafe place near Threads.cpp AudioFlinger::PlaybackThread::createTrack_l line 1250. Details: - include caller pid or client pid where appropriate - increase log buffer size - log mFastIndex when AudioMixer sees an invalid bufferProvider. - log both potentially modified and actually modified tracks in FastMixer. - fix benign bug where sq->end() was called more than once. - log StateQueue push() call and return. Bug: 6490974 Change-Id: Iee7c8f40e20b6000cd8286c0ec6a14fff4a37af1
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
ae162976dda428671af09a8fbc3f03173a7e6f3e |
|
11-Dec-2012 |
Glenn Kasten <gkasten@google.com> |
am 76143093: am f0ff908d: Logging to investigate a crash * commit '761430930a7335d714af0f7c1d497feb8f9f0a5a': Logging to investigate a crash
|
f0ff908da019a44115109f1b4d1b6864b35a8a29 |
|
07-Dec-2012 |
Glenn Kasten <gkasten@google.com> |
Logging to investigate a crash Bug: 6490974 Change-Id: Ib926a9258bde4ee05ed42eea662dff68e426a997
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
85ab62c4b433df3f1a9826bed1c9bec07a86c750 |
|
01-Nov-2012 |
Glenn Kasten <gkasten@google.com> |
Line length 100 Change-Id: Ib28fd7b9ce951a6933f006e7f8812ba617625530
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
599fabc596687efa4b71b8f3ebbb957c7cae0c72 |
|
08-Mar-2012 |
Glenn Kasten <gkasten@google.com> |
Document AudioMixer hard-coded limits Change-Id: I83ea8bed375f251260945db788bdb5f280dba12d
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
d192e5f15c395daa87f4f198154379ee7c93d528 |
|
04-Oct-2012 |
Glenn Kasten <gkasten@google.com> |
resolved conflicts for merge of f12b1c81 to master Change-Id: I914a11706bd01a198e2137e0c12af0fc92ffa02b
|
ac6020508acedd316391dee42329040bf45f8d90 |
|
01-Oct-2012 |
Glenn Kasten <gkasten@google.com> |
Integrate improved coefficient sinc resampler: VHQ Summary: Very high quality is enabled only for 44.1 -> 48 or 48 -> 44.1, and uses low quality for all other use cases. Track estimated CPU load and throttles the quality based on load; as currently configured it should allow up to 2 instances of very high quality. Medium quality and high quality are currently disabled unless explicitly requested. Details: Only load .so the first time it is needed. Cleanup code style: formatting, indentation, whitespace. Restore medium quality resampler, but it is not used (see next line). Fix memory leak for sinc resampler. Check sample rate in resampler constructor. Add logs for debugging. Rename DEFAULT to DEFAULT_QUALITY for consistency with other quality levels. Renumber VERY_HIGH_QUALITY from 255 to 4. Use enum src_quality consistently. Improve parsing of property af.resampler.quality. Fix reentrancy bug - allow an instance of high quality and an instance of very high quality to both be active concurrently. Bug: 7229644 Change-Id: I0ce6b913b05038889f50462a38830b61a602a9f7
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
d06e132358d44f02c22527b4f463df1f58da9216 |
|
13-Sep-2012 |
Jean-Michel Trivi <jmtrivi@google.com> |
Communicate audio session ID to downmixer The audio downmixer effect might need the audio session Id, pass it from the track creation in AudioFlinger to the downmix effect creation in AudioMixer. Change-Id: I836873eebd6711f1048fce81cd2eb29b94f0ad0c
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
fe3156ec6fd9fa57dde913fd8567530d095a6550 |
|
11-Sep-2012 |
Jean-Michel Trivi <jmtrivi@google.com> |
Communicate audio session ID to downmixer The audio downmixer effect might need the audio session Id, pass it from the track creation in AudioFlinger to the downmix effect creation in AudioMixer. Change-Id: I5e29540542ae89cf4a0cdb537b3e67f04442a20a
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
037ac53aac0f51f2ccfaaa91822365c1c73c4365 |
|
10-Aug-2012 |
Jean-Baptiste Queru <jbq@google.com> |
am 0efd0358: am fcfc61da: am ff4c64d6: am c64a1787: Merge "Fix initialization of audio mixer track resources for MIPS." * commit '0efd035854ad2c8d20100a740e054c4bf7b3e9a4': Fix initialization of audio mixer track resources for MIPS.
|
fcfc61da927e98d18cdcb53da8fa0a8a32ee1422 |
|
10-Aug-2012 |
Jean-Baptiste Queru <jbq@google.com> |
am ff4c64d6: am c64a1787: Merge "Fix initialization of audio mixer track resources for MIPS." * commit 'ff4c64d6b1b58494a1b15f1a664e5c421d095d15': Fix initialization of audio mixer track resources for MIPS.
|
3c0a0e8541846427db0587c2fffb90f60ee680b0 |
|
02-Aug-2012 |
Paul Lind <plind@mips.com> |
Fix initialization of audio mixer track resources for MIPS. The value 1 << 32 (maxNumTracks defaults to 32) is surprisingly not defined in C, and differs on MIPS than the other arch. Therefore the track resources were not initialized properly, resulting in failure to play any audio. The fix allows the mConfiguredNames bitmask to be correctly set to all 1's in the 32-track case, for all arch. Change-Id: Ied3e1305952e9567602e2cd76c5ef3acb0809ee0 Signed-off-by: Paul Lind <plind@mips.com>
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
52008f821a5202502a82a8ba2c024e69bd336350 |
|
18-Mar-2012 |
Glenn Kasten <gkasten@google.com> |
Share local time frequency for all tracks & mixers Change-Id: I5e6f0e371f728a5225c2fa6f778c109449d33602
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
254af180475346b6186b49c297f340c9c4817511 |
|
03-Jul-2012 |
Glenn Kasten <gkasten@google.com> |
Use audio_channel_mask_t more places Use it in AudioSystem::getOutput(), AudioSystem::getInput(), IAudioPolicyService::getOutput(), IAudioPolicyService::getInput(), and various other places in AudioFlinger. Not done: AudioTrack and OutputDescriptor. Change-Id: I70e83455820bd8f05dafd30c63d636c6a47cd172
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
9bd23229fdec1657398abc682ccccfce1c95f8aa |
|
16-Apr-2012 |
Jean-Michel Trivi <jmtrivi@google.com> |
Fix multichannel downmix pause bug on video player Pausing a video player will cause the track audio mixer to be disabled, which causes the downmixer to be deleted. When reenabled, the track channel mask hasn't changed but the downmixer is there anymore. Fixed by: - instanciating a downmixer when the AudioMixer track gets initialized (in getTrackName(), now taking a channel mask as input), and deleted when in deleteTrackName(). - when the channel changes on a track, check whether it needs a downmixer or not. Preparing a track for downmix automatically removes the old downmixer if there was one. Also: initialize the track downmixerBufferProvider field when AudioMixer is instanciated, so we can safely call delete on it in AudioMixer's destructor, in case deleteTrackName() wasn't called before the mixer was destroyed. Change-Id: I589b0781cda5b3c82f85b561c52b08546cac21f8
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
acb86cccbd9d245439a04cef0bcefa589addaa4c |
|
16-Apr-2012 |
Jean-Michel Trivi <jmtrivi@google.com> |
Configure the resampler with the correct channel count when downmixing When a track needs to be downmixed and resampled, it gets downmixed first before being resampled. Therefore the resampler needs to be configured with the channel count of the output of the downmixer instead of that of the track. Removed frame size checks that don't apply anymore now that we support frame sizes that are not powers of 2 (e.g. 12 for 5.1 16bits), and changed test performed for every buffer during playback into an assert. Change-Id: Ia220f00ee382f4f7848b661c58555bdca664e194
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
4e2293f29f2e719af1245d365747ea06d074b345 |
|
12-Apr-2012 |
Glenn Kasten <gkasten@google.com> |
AudioMixer new cmd: remove sample rate converter Add a new command REMOVE to remove any sample rate converter on a track, without having to delete the track name. Add comments. Remove some dead code. Fix whitespace and comparison to NULL. Change-Id: Id55a23ab5ee673189e99675b4e6fa5df7b617987
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
a5e821439996de6005b2fa36b3bdd31f003ce23f |
|
16-Apr-2012 |
Eric Laurent <elaurent@google.com> |
AudioMixer: fix crash in destructor Commit deeb1282 made that track->resampler is only set to NULL when getTrackName() is called. It remains uninitialized for all unused tracks causing a crash when deleted by Audiomixer destructor. Issue 6309441. Change-Id: I49451387a6afe81299b8368ef206524df32f74c4
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
7d5b26230a179cd7bcc01f6578cd80d8c15a92a5 |
|
05-Apr-2012 |
Jean-Michel Trivi <jmtrivi@google.com> |
AudioMixer uses downmix effect for multichannel content In the AudioMixer structure associated with each track, add an object that acts as the buffer provider when the track has more than two channels of input in the mixer. This object, DownmixerBufferProvider, gets audio from the actual buffer provider of the track, and applies a downmix effect on it. The downmix effect is created and configured when the track gets created in AudioFlinger, which causes AudioMixer::getTrackName() to be called with the new track's channel mask. It is released when the track is disabled in the mixer. Change-Id: I05281ed5f61bef663a8af7ca7d5ceac3517c82db
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
deeb1282621f3177ad667360b40eef8e4fedb298 |
|
25-Mar-2012 |
Glenn Kasten <gkasten@google.com> |
AudioMixer default track parameters Move the default initialization of track parameters from the AudioMixer constructor to getTrackName(). This fixes a bug where the defaults were only valid the first time a name was allocated. Also added a switch case for parameter FORMAT. Change-Id: I07abd3aaf7f4efe9825a761d2bc662aaee2c6db0
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
ccf89b54f973f11082150d02ed957f7e967fbc8b |
|
21-Mar-2012 |
Glenn Kasten <gkasten@google.com> |
Merge "AudioMixer can be configured for fewer max tracks"
|
63c1faa8dea7feb90255d31ef2a133d8f2818844 |
|
21-Mar-2012 |
Glenn Kasten <gkasten@google.com> |
Merge "Update comments"
|
5c94b6c7689a335e26a86e8a0d04b56dc627738e |
|
21-Mar-2012 |
Glenn Kasten <gkasten@google.com> |
AudioMixer can be configured for fewer max tracks Change-Id: I371b17cef071d083eecf35cd3627a3adff907a33
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
ea7939a079b3600cab955760839b021326f8cfc3 |
|
14-Mar-2012 |
Glenn Kasten <gkasten@google.com> |
Whitespace Fix indentation, and add blank lines in key places for clarity Change-Id: I57a0a8142394f83203161aa9b8aa9276abf3ed7c
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
17a736c3e1d062d7fc916329eb32aef8935614af |
|
14-Feb-2012 |
Glenn Kasten <gkasten@google.com> |
Update comments Change-Id: I327663a020670d0a72ff57bd0b682e2ce0528650
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
5798d4ebf236357a4b13246f40e52b90a34d09a4 |
|
08-Mar-2012 |
Glenn Kasten <gkasten@google.com> |
Clean up assertion checks Use ALOG_ASSERT instead of assert. Use compile-time asserts where appropriate. Fix typo in an ALOGV. Change-Id: I58f1c1ffc14319a022c88b5a88b8d0368660da8b
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
01c4ebf6b794493898114a502ed36de13137f7e5 |
|
22-Feb-2012 |
Glenn Kasten <gkasten@google.com> |
AudioBufferProvider comments and cleanup Add comments about which methods implement the AudioBufferProvider interface. Simplified the definition of kInvalidPts. <stdint.h> is very hard to work with, there seems to be no way to use it reliably to get INT64_MAX without having a separate source file, which is ugly because it means kInvalidPts is not a compile-time constant. So I just deleted AudioBufferProvider.cpp and used a hard-coded constant instead. Added a default constructor for Buffer so that the fields aren't random (especially .raw which is used to determine if the buffer is valid). Make the pts for getNextBuffer default to kInvalidPTS so code that doesn't need a pts doesn't have to specify a value. Rename the parameter to AudioMixer::setBufferProvider to make it clearer. Change-Id: I87e7290884d4ed975b019f62d1ab6ae2bc5065a5
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
3b81acab52b7140c1b8b20be2d67be3e221637e7 |
|
28-Jan-2012 |
Glenn Kasten <gkasten@google.com> |
Remove bit fields to improve performance uint16_t enabled is (mostly) changed to bool in a separate CL Change-Id: Ied9f8c034b2479cee9a8778cee7b8ff92ae75b7b
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
a111792f1314479c649d1d44c30c2caf70c00c2a |
|
26-Jan-2012 |
Glenn Kasten <gkasten@google.com> |
Simplify code Use DefaultKeyedVector::valueFor to avoid extra test Make local variables as local as possible No double parentheses No typedef for single use No parentheses around indirect function call No AudioFlinger:: prefix when not needed Remove unnecessary casts Remove block with only one line Saves 128 bytes Change-Id: I3a87430eeb01b81e7b81a1c38f6fdd3274ec48f3
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
4ff14bae91075eb274eb1c2975982358946e7e63 |
|
09-Feb-2012 |
John Grossman <johngro@google.com> |
Upintegrate Audio Flinger changes from ICS_AAH Bring in changes to audio flinger made to support timed audio tracks and HW master volume control. Change-Id: Ide52d48809bdbed13acf35fd59b24637e35064ae Signed-off-by: John Grossman <johngro@google.com>
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
99e53b86eebb605b70dd7591b89bf61a9414ed0e |
|
19-Jan-2012 |
Glenn Kasten <gkasten@google.com> |
Update comments We no longer put the filename at start of file. Change-Id: Ic435b159a23105681e3d4a6cb1ac097bc853302e
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
63d2daed17ab749baa80bc808fb5083b688b771b |
|
08-Feb-2012 |
Glenn Kasten <gkasten@google.com> |
Merge "AudioFlinger methods const and inline"
|
4c340c6521b634f159d2d6bc4e9359226fd8edf8 |
|
27-Jan-2012 |
Glenn Kasten <gkasten@google.com> |
Use bool instead of int The .h is not modified to avoid increasing data size. Change-Id: Ide4a821a5b16424ffa03471dfff98dc3e9b5f751
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
c59c004a3a6042c0990d71179f88eee2ce781e3c |
|
02-Feb-2012 |
Glenn Kasten <gkasten@google.com> |
AudioFlinger methods const and inline This saves 1063 bytes and probably improves performance. Change-Id: I11cf0dfd925fbaec75e3d1b806852a538eae5518
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
a0d68338a88c2ddb4502f95017b546d603ef1ec7 |
|
28-Jan-2012 |
Glenn Kasten <gkasten@google.com> |
Use NULL not 0 for raw pointers Use if (p != NULL) instead of if (ptr) Change-Id: Iaec3413a59ccbf233c98fcd918cc7d70ac5da9fa
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
84afa3b51ac48f84ed62489529ce78cba7fca00e |
|
26-Jan-2012 |
Glenn Kasten <gkasten@google.com> |
Constructor initialization and const fields In constructors, initialize member fields in the initialization list rather than constructor body where possible. This allows more fields to be const, provided they are never modified. Also initialize POD fields in constructor, unless it's obvious they don't need to be initialized. In that case, put a comment instead. Remove explicit clear() in destructors on fields that are now const. Give AudioSessionRef a default constructor, so it's immutable fields can be marked const. Add comment about ~TrackBase() trick. Initialize fields in declaration order to make it easier to confirm that all fields are set. Move initialization of mHardwareStatus from onFirstRef() to constructor. Use NULL not 0 to initialize raw pointers in initialization list. Rename field mClient to mAudioFlingerClient, and getter from client() to audioFlingerClient(). Change-Id: Ib36cf6ed32f3cd19003f40a5d84046eb4c122052
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
e9dd0176933d6233916c84e18f3e8c0d644ca05d |
|
28-Jan-2012 |
Glenn Kasten <gkasten@google.com> |
Unconditional delete Don't check that pointer is non-NULL before delete. Don't leave deleted member fields non-NULL, except in a destructor, since it could be misleading in a dump or debugger. (mRsmpOutBuffer) Change-Id: Ic0492a6b752f74a67f4c96dfb89ca2de4e69eecf
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
02b2d2dddc9be339cf7647d4ead53cecd1c51038 |
|
11-Jan-2012 |
Glenn Kasten <gkasten@google.com> |
Merge "Fix build warning"
|
5f29ca38b71506ad7c7cb9925efbddf588e9655b |
|
09-Jan-2012 |
Glenn Kasten <gkasten@google.com> |
Merge "By convention const goes before the type specifier"
|
879bc64e43d62f2690c77a3282cef2e45d1b76e9 |
|
09-Jan-2012 |
Glenn Kasten <gkasten@google.com> |
Merge "Replace loop by __builtin_ctz"
|
29357bc2c0dd7c43ad3bd0c8e3efa4e6fd9bfd47 |
|
06-Jan-2012 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/#/c/157220 Bug: 5449033 Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
54c3b66444ebfb9f2265ee70ac3b76ccefa0506a |
|
06-Jan-2012 |
Glenn Kasten <gkasten@google.com> |
By convention const goes before the type specifier Change-Id: I70203abd6a6f54e5bd9f1412800cc01212157e58
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
f9a27779634ce3a01e5957f234cd04eba74fa07f |
|
06-Jan-2012 |
Glenn Kasten <gkasten@google.com> |
Fix build warning Change-Id: Ic99608d0c14ed56c02f036e0bbaaae1b16bab8ba
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
5ff1dd576bb93c45b44088a51544a18fc43ebf58 |
|
06-Jan-2012 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/157065 Bug: 5449033 Change-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
98dd542ffcd3424b1da58bd273c0c1ff5b8c8960 |
|
15-Dec-2011 |
Glenn Kasten <gkasten@google.com> |
Replace loop by __builtin_ctz Using the builtin is faster on some platforms, for example on ARM it's 19 instructions instead of 13, and is O(1) instead of O(n). Of course, track creation is an inherently slow operation, so this doesn't matter much now. But if we add support for virtual tracks, then physical tracks will be allocated/freed more frequently. Also just on principle ... Change-Id: I3f590934092bd7a1869cbedbc7357928aa5cc8ff
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
88592eccaf6afcddd5f985955be92fe25205c680 |
|
05-Jan-2012 |
Glenn Kasten <gkasten@google.com> |
Merge "Remove the notion of "active track" from mixer"
|
a2a0a5d7d56baa831870f4bf2a0d942a477d92ef |
|
05-Jan-2012 |
Glenn Kasten <gkasten@google.com> |
Merge "Use the standard CC_LIKELY and CC_UNLIKELY macros"
|
f6b1678f8f508b447155a81b44e214475ab634a8 |
|
15-Dec-2011 |
Glenn Kasten <gkasten@google.com> |
Use the standard CC_LIKELY and CC_UNLIKELY macros Several source files privately defined macros LIKELY and UNLIKELY in terms of __builtin_expect. But <cutils/compiler.h> already has CC_LIKELY and CC_UNLIKELY which are intended for this purpose. So rename the private uses to use the standard names. In addition, AudioFlinger was relying on the macro expanding to extra ( ). Change-Id: I2494e087a0c0cac0ac998335f5e9c8ad02955873
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
7ab41c9f773ba599646f1b0d00955c1be80f92fd |
|
05-Jan-2012 |
Eric Laurent <elaurent@google.com> |
resolved conflicts for merge of 1a4b9939 to master Change-Id: I0c910d391a38a916d8431f7d1f5b82e39e1a66c2
|
b8a805261bf0282e992d3608035e47d05a898710 |
|
20-Dec-2011 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/156016 Bug: 5449033 Change-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
071ccd5a9702500f3f7d62ef881300914926184d |
|
23-Dec-2011 |
Eric Laurent <elaurent@google.com> |
audioflinger: fix clicks on 48kHz audio. The calculation done in prepareTracks_l() for the minimum amount off frames needed to mix one output buffer had 2 issues: - the additional sample needed for interpolation was not included - the fact that the resampler does not acknowledge the frames consumed immediately after each mixing round but only once all frames requested have been used was not taken into account. Thus the number of frames available in track buffer could be considered sufficient although it was not and the resampler would abort producing a short silence perceived as a click. Issue 5727099. Change-Id: I7419847a7474c7d9f9170bedd0a636132262142c
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
9c56d4ae6212c21ce5fd71ed534eb195983a07c1 |
|
20-Dec-2011 |
Glenn Kasten <gkasten@google.com> |
Remove the notion of "active track" from mixer This is a first step towards making the mixer more object-oriented. Change-Id: Ifd445d0e471023a7f5c82e934736ffc95ba1b05b
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
12d9702773c8a3242a44dd6528126c9ff0dade43 |
|
20-Dec-2011 |
Glenn Kasten <gkasten@google.com> |
Merge "Remove dead code"
|
81a028fef62bcadf13fc8550067a3d29c918b3ca |
|
15-Dec-2011 |
Glenn Kasten <gkasten@google.com> |
Remove dead code Change-Id: Icf23f7f90fdeb660f4015f22cf239e6d05f5d03c
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
f602a5f7f29e694a7da4c143737b74501c00477d |
|
17-Dec-2011 |
Glenn Kasten <gkasten@google.com> |
Merge "Use constants for 2 and 32"
|
d1e672acd8fa1af899f85ee2321327237028adf8 |
|
17-Dec-2011 |
Glenn Kasten <gkasten@google.com> |
Merge "Extract out audio DSP code to utility library"
|
bf71f1e7948406492376c6cbd5e6a30c8cb670e4 |
|
13-Dec-2011 |
Glenn Kasten <gkasten@google.com> |
Use constants for 2 and 32 Change-Id: If820dfd58b6df258570750610a07af99598d9e53
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
b92bc47a05925c29efef0d66711b6d3f17f406e7 |
|
16-Dec-2011 |
Glenn Kasten <gkasten@google.com> |
Merge "Use switch in AudioMixer::setParameter"
|
788040c5189bbdaf567ce4b29ffd1db08ea1020c |
|
05-May-2011 |
Glenn Kasten <gkasten@google.com> |
Use switch in AudioMixer::setParameter Replace series of if/then/elses by easier-to-read switch. Also return void instead of status_t, since callers weren't checking it. Assert on bad input parameters. Change-Id: Ie1f0a297977b28501d20e1af819afed9b4750616
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
237a624f674800d2300806b115eee8c9bb7db033 |
|
16-Dec-2011 |
Glenn Kasten <gkasten@google.com> |
deleteTrackName now asserts on bad input parameter This is safe, as the input parameter is always track->name(), which must be valid. Change-Id: Iea8ea3a5706c27026335526ba8851030d00681f8
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
3b21c50ef95fe4e7ac3426ca14b365749e66ff08 |
|
15-Dec-2011 |
Glenn Kasten <gkasten@google.com> |
Extract out audio DSP code to utility library Change-Id: Ib8ce72028a7ea30e82baa518e381370e820ebbd0
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
6d4bf6eda04888144ec59cba4816a2cbb79b9e5c |
|
16-Dec-2011 |
Glenn Kasten <gkasten@google.com> |
Merge "setActiveTrack and setBufferProvider can't fail"
|
b87c068727a15a3d3f0bfdcb758c76a097f5e869 |
|
16-Dec-2011 |
Glenn Kasten <gkasten@google.com> |
Merge "Simplify enable/disable mixing"
|
26fa039c3752eaaf74d1be53d9795f48e9f43de3 |
|
16-Dec-2011 |
Glenn Kasten <gkasten@google.com> |
Merge "Use NULL not 0 for pointers"
|
fba380a0b2c62684ce4272a05165965bae29d6a1 |
|
16-Dec-2011 |
Glenn Kasten <gkasten@google.com> |
setActiveTrack and setBufferProvider can't fail Return void, not status_t, from setActiveTrack and setBufferProvider. These methods returned status_t, but the callers never checked the return value. Since these aren't externally visible APIs, they now return void, and assert on bad input parameters. Change-Id: I530ed29484596ae41e8659826ca425149c51c2a1
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
1c48c3c61970527b97892ab6a2daae8eaac26964 |
|
15-Dec-2011 |
Glenn Kasten <gkasten@google.com> |
Simplify enable/disable mixing The MIXING enum isn't needed, and now returns void instead of status_t. Change-Id: Ibe4ec24081d75ad4ab78b9c7191fc9077959c4e9
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
e0feee3da22beeffbd9357540e265f13b2119cbb |
|
13-Dec-2011 |
Glenn Kasten <gkasten@google.com> |
Use NULL not 0 for pointers Change-Id: Iab3f9abbdab617dc5a599e657ec46a0b0a002eef
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
42968939dfce0954d6540011199045ec4ed7de80 |
|
15-Dec-2011 |
Glenn Kasten <gkasten@google.com> |
Merge "Fix indentation and whitespace"
|
0cfd8231e4c489392809bf44c174315df2690145 |
|
13-Dec-2011 |
Glenn Kasten <gkasten@google.com> |
AudioMixer uninitialized simple fields Change-Id: I47e3849f048d4d990c9634f9c8a2ca2de0339e93
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
c5ac4cb3a5124860ccfc7e4ff66251c55a5595ca |
|
12-Dec-2011 |
Glenn Kasten <gkasten@google.com> |
Fix indentation and whitespace Use git diff -w to verify. Change-Id: Ib65be0a1ecf65d6cad516110604e3855bf68a638
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
3856b090cd04ba5dd4a59a12430ed724d5995909 |
|
20-Oct-2011 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/#/c/143865 Bug: 5449033 Change-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
0d255b2d9061ba31f13ada3fc0f7e51916407176 |
|
25-May-2011 |
Jean-Michel Trivi <jmtrivi@google.com> |
Use channel mask instead of channel count for track creation Record and playback objects (resp AudioRecord and AudioTrack) are created using a channel mask, but this information is lost in the mixer because only the channel count is known to AudioFlinger. A channel count can always be derived from a channel mask. The change consists in: - disambiguiting variable names for channel masks and counts - passing the mask information from the client to AudioFlinger and the mixer. - when using the DIRECT ouput, only verifying the format of the track is compatible with the output's for PCM. Change-Id: I50d87bfb7d7afcabdf5f12d4ab75ef3a54132c0e
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
243f5f91755c01614a8cafe90b0806396e22d553 |
|
01-Mar-2011 |
Eric Laurent <elaurent@google.com> |
Fix issue 3479042. The problem is that when an AudioRecord using the resampler is restarted, the resampler state is not reset (as there is no reset function in the resampler). The consequence is that the first time the record thread loop runs, it calls the resampler which consumes the remaining data in the input buffer and when this buffer is released the input index is incremented over the limit. The fix consists in implementing a reset function in the resampler. A similar problem was also present for playback but unoticed because the track buffer is always drained by the mixer when a track stops. The only problem for playback was that the initial phase fraction was wrong when restarting a track after stop (it was correct after a pause). Change-Id: Ifc2585d685f4402d29f4afc63f6efd1d69265de3
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
2151d7b8c2dd77c9887691db30396937be778141 |
|
04-Feb-2011 |
Yuuhi Yamaguchi <yuuhi.x.yamaguchi@sonyericsson.com> |
Initialize resampling buffer per track. When resampling too short sound, AudioMixer uses previous tracks buffer. So we re-initialize the temporary buffer per loop to avoid it. Change-Id: I55a59a3b14faa8445e09c450478fe79cef704760
/frameworks/av/services/audioflinger/AudioMixer.cpp
|
65ab47156e1c7dfcd8cc4266253a5ff30219e7f0 |
|
15-Jul-2010 |
Mathias Agopian <mathias@google.com> |
move native services under services/ moved surfaceflinger, audioflinger, cameraservice all native services should now reside in this location. Change-Id: Iee42b83dd2a94c3bf5107ab0895fe2dfcd5337a8
/frameworks/av/services/audioflinger/AudioMixer.cpp
|