d79072e9dff59f767cce2cda1caab80ce5a0815b |
|
06-Jan-2016 |
Glenn Kasten <gkasten@google.com> |
Remove TimedAudioTrack and associated code Bug: 8278435 Change-Id: I095c1a4888e645e14d93b0b15fbef4524a831ca1
/frameworks/av/services/audioflinger/AudioMixer.h
|
5a8a95de6dad1a3bcf3da5a37b35766e89086e13 |
|
18-Apr-2015 |
Ricardo Garcia <rago@google.com> |
Use AudioPlaybackRate to hold TimestretchBufferProvider parameters Use this struct to handle the parameters for TimestretchBufferProvider all across the system. Add stretch mode and fallback mode to TimestretchBuffer Provider. Change-Id: I19099924a7003c62e48bb6ead56c785cb129fba2
/frameworks/av/services/audioflinger/AudioMixer.h
|
c5656cc900aeb4a705e27508dd82c70030a97709 |
|
27-Mar-2015 |
Andy Hung <hunga@google.com> |
Add playback rate to AudioMixer Bug: 19196501 Change-Id: I42d1f90e6297cf3f1304860d1691a5dfedd4c37d
/frameworks/av/services/audioflinger/AudioMixer.h
|
857d5a20a956ef61b64ae07b018ecc2f1eb0a503 |
|
27-Mar-2015 |
Andy Hung <hunga@google.com> |
Factor out buffer provider code from AudioMixer In preparation for playback rate support and timestretching. Bug: 19196501 Change-Id: I435accb852d32110dd0b3a9917488522c567ba80
/frameworks/av/services/audioflinger/AudioMixer.h
|
63238efb0d674758902918e3cdaac322126484b7 |
|
03-Mar-2015 |
Glenn Kasten <gkasten@google.com> |
Remove redundant semicolon from namespace closing Change-Id: I163f9d3d216c283ae1160ce4802e5247cf44fba7
/frameworks/av/services/audioflinger/AudioMixer.h
|
abdb990953ffe94a9dc544aea0bed17ef7d5f484 |
|
13-Jan-2015 |
Andy Hung <hunga@google.com> |
Allow AUDIO_FORMAT_PCM_8_BIT AudioTrack buffers Previously conversion to AUDIO_FORMAT_PCM_16_BIT was required. Client shared memory for static tracks and AudioFlinger track creation and buffer delivery now use native 8 bit PCM data. Change-Id: I485c07a4971fde9a25442bd43fed95019d39abcc
/frameworks/av/services/audioflinger/AudioMixer.h
|
8eeda89ae361ccd048d7bba0fd11291e05577e2a |
|
21-Nov-2014 |
Dan Albert <danalbert@google.com> |
am d0e12a16: am 902dc42d: am 07715ac3: Merge "C++11 compatibility." * commit 'd0e12a161471823d1ab269cb608be3f3b0a71ed1': C++11 compatibility.
|
36802bd18b7b4e8c87fa019c7e3068bee330d174 |
|
20-Nov-2014 |
Dan Albert <danalbert@google.com> |
C++11 compatibility. * Fix string literal concatenation to not be interpreted as UD literals. * Add constexpr compatibility for non-integral static members. * Use __typeof__ instead of typeof (should become decltype once this actually becomes C++11). * Add an appropriate cast for atomic_uintptr_t, since moving to C++11 means moving from <stdatomic.h> to <atomic>, which has better typechecking (hooray for not macros!). Bug: 18466763 Change-Id: I9561dcb2526578687819ff85421ba80d8e1a9694
/frameworks/av/services/audioflinger/AudioMixer.h
|
7f47549516ae5938759b5c834c8423378a60b3d8 |
|
26-Aug-2014 |
Andy Hung <hunga@google.com> |
Fix AudioMixer floating interaction with downmixer Previously _if_ the full floating point mixer is enabled, a downmixer would force the mixer input for a session submix to integer, breaking other mixer inputs to the same submix that were in float. Use another ReformatBufferProvider after the downmixer to solve this issue. Update the test-mixer app and the mixer_to_wave_tests shell script to detect this issue. Bug: 17363939 Change-Id: I74a56333f9ee75ddde39a75392c021c5eebddbef
/frameworks/av/services/audioflinger/AudioMixer.h
|
0f451e92f09e089e588f303f729425a54fcd804b |
|
05-Aug-2014 |
Andy Hung <hunga@google.com> |
Move AudioMixer buffer provider preparation into track Bug: 17363939 Change-Id: I1f0f597b008f7369df87ba369fabaa93dec08ea1
/frameworks/av/services/audioflinger/AudioMixer.h
|
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.h
|
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.h
|
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.h
|
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.h
|
34803d594232af5604d893eff7ee40bb57d459a4 |
|
17-Jul-2014 |
Andy Hung <hunga@google.com> |
Update DownmixerBufferProvider to use CopyBufferProvider Change-Id: I6b1a8755a1e6c29b916662fd376e9509cda5df55
/frameworks/av/services/audioflinger/AudioMixer.h
|
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.h
|
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.h
|
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.h
|
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.h
|
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.h
|
018d324dc599c5f4238a4cd631baac47c28d59fe |
|
27-May-2014 |
Andy Hung <hunga@google.com> |
Merge "Add multiple format capability to AudioMixer"
|
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.h
|
c62476f0c0c1cf9283a38852bde0a4c9434df712 |
|
24-May-2014 |
Andy Hung <hunga@google.com> |
Merge "Add format parameter to getTrackName() and track_t"
|
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.h
|
c56f3426099a3cf2d07ccff8886050c7fbce140f |
|
22-Mar-2014 |
Glenn Kasten <gkasten@google.com> |
Pass stereo gains as packed minifloat This will allow (eventually) a greater dynamic range for gains. However there are still a few remaining places in effects and mixer that will also need to be changed in order to get the full benefit. Also fixes a minor bug: was not checking for NaN in AudioTrack C++. Change-Id: I63bce9e82e0a61546d8ff475fb94bcb700d99c96
/frameworks/av/services/audioflinger/AudioMixer.h
|
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.h
|
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.h
|
01d3acba9de861cb2b718338e787cff3566fc5ec |
|
06-Feb-2014 |
Glenn Kasten <gkasten@google.com> |
Fix clang warnings in AudioFlinger Change-Id: I0fa61025c979709ad7d655bc717df5f194b6089e
/frameworks/av/services/audioflinger/AudioMixer.h
|
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.h
|
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.h
|
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.h
|
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.h
|
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.h
|
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.h
|
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.h
|
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.h
|
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.h
|
85ab62c4b433df3f1a9826bed1c9bec07a86c750 |
|
01-Nov-2012 |
Glenn Kasten <gkasten@google.com> |
Line length 100 Change-Id: Ib28fd7b9ce951a6933f006e7f8812ba617625530
/frameworks/av/services/audioflinger/AudioMixer.h
|
599fabc596687efa4b71b8f3ebbb957c7cae0c72 |
|
08-Mar-2012 |
Glenn Kasten <gkasten@google.com> |
Document AudioMixer hard-coded limits Change-Id: I83ea8bed375f251260945db788bdb5f280dba12d
/frameworks/av/services/audioflinger/AudioMixer.h
|
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.h
|
e0c87269b94e5b24de8e9577ba32070b24e83582 |
|
31-Aug-2012 |
Glenn Kasten <gkasten@google.com> |
am c9beb01c: am b9cba9b7: Merge "Move libnbaio out of AudioFlinger" into jb-mr1-dev * commit 'c9beb01c800e6326051aee52a00659288c25c6eb': Move libnbaio out of AudioFlinger
|
2dd4bdd715f586d4d30cf90cc6fc2bbfbce60fe0 |
|
29-Aug-2012 |
Glenn Kasten <gkasten@google.com> |
Move libnbaio out of AudioFlinger libnbaio is now a separate shared library from AudioFlinger, rather than a static library used only by AudioFlinger. AudioBufferProvider interface is now also independent of AudioFlinger, moved to include/media/ Change-Id: I9bb62ffbc38d42a38b0af76e66da5e9ab1e0e21b
/frameworks/av/services/audioflinger/AudioMixer.h
|
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.h
|
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.h
|
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.h
|
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.h
|
ccf89b54f973f11082150d02ed957f7e967fbc8b |
|
21-Mar-2012 |
Glenn Kasten <gkasten@google.com> |
Merge "AudioMixer can be configured for fewer max tracks"
|
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.h
|
17a736c3e1d062d7fc916329eb32aef8935614af |
|
14-Feb-2012 |
Glenn Kasten <gkasten@google.com> |
Update comments Change-Id: I327663a020670d0a72ff57bd0b682e2ce0528650
/frameworks/av/services/audioflinger/AudioMixer.h
|
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.h
|
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.h
|
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.h
|
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.h
|
63d2daed17ab749baa80bc808fb5083b688b771b |
|
08-Feb-2012 |
Glenn Kasten <gkasten@google.com> |
Merge "AudioFlinger methods const and inline"
|
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.h
|
c19e22450e6e3d07594c935c7a9522e85e909e82 |
|
30-Jan-2012 |
Glenn Kasten <gkasten@google.com> |
Use virtual destructors It turns out to be just a comment, as all except AudioMixer are RefBase. There are only a few performance-sensitive cases where it's worth thinking about whether you need a virtual destructor, and the headache usually outweighs the benefit. Change-Id: I716292f9556ec17c29ce8c76ac8ae602cb496533
/frameworks/av/services/audioflinger/AudioMixer.h
|
5f29ca38b71506ad7c7cb9925efbddf588e9655b |
|
09-Jan-2012 |
Glenn Kasten <gkasten@google.com> |
Merge "By convention const goes before the type specifier"
|
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.h
|
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.h
|
7ab41c9f773ba599646f1b0d00955c1be80f92fd |
|
05-Jan-2012 |
Eric Laurent <elaurent@google.com> |
resolved conflicts for merge of 1a4b9939 to master Change-Id: I0c910d391a38a916d8431f7d1f5b82e39e1a66c2
|
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.h
|
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.h
|
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.h
|
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.h
|
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.h
|
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.h
|
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"
|
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.h
|
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.h
|
362c4e697d8e9c034e964ac7b40227e054491547 |
|
14-Dec-2011 |
Glenn Kasten <gkasten@google.com> |
Audio C++ comments Change-Id: I84906ebb9dfcfa5b96b287d18364b407f02a30c1
/frameworks/av/services/audioflinger/AudioMixer.h
|
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.h
|
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.h
|
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.h
|