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
|
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
|
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
|
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
|