d7e59228caad3867794d847f6bf163c6495e9506 |
|
15-Nov-2013 |
Eric Laurent <elaurent@google.com> |
audioflinger: do not use raw pointer for tracks Commit 9da3d95 surfaced a problem caused by the use of a raw pointer to a track in offload thread implementation. Pointers to tracks should always be weak or strong pointers. Bug: 11708529. Change-Id: Ic48632532d186c9be8261f73cefdf824b9fbbd2b
/frameworks/av/services/audioflinger/Threads.cpp
|
9da3d9573a18ffe08365557c706cf52f09118d1c |
|
13-Nov-2013 |
Eric Laurent <elaurent@google.com> |
audioflinger: fix offload track transition Make sure that when transitioning from one active offloaded track to the next we flush DSP content if both tracks are not on the same audio session. This happens when switching between two applications playing the same type of content (e.g MP3, stereo, 44.1). In this case, we reuse the same output thread because the track formats are compatible. Bug: 11247103. Change-Id: I2b9031591149adeb70766da5e0d21ff2933a37e8
/frameworks/av/services/audioflinger/Threads.cpp
|
1b9f9b134e732a48198e51f16424f330cbf03143 |
|
13-Nov-2013 |
Eric Laurent <elaurent@google.com> |
audioflinger: fix offload resume after drain When pausing and resuming during the drain, the drain sequence number shuold not be modified otherwise the drain callback will be ignored. This causes failure to notify end of stream to audio player and transition to next song. Bug: 11247103. Change-Id: I2a35c5cc3fd6aa667cdd257f9e9cc8715cef5159
/frameworks/av/services/audioflinger/Threads.cpp
|
a23f17ac334ff20a11ee63dd177cb1080e44c483 |
|
06-Nov-2013 |
Eric Laurent <elaurent@google.com> |
audioflinger: fix direct output underrun Underruns on tracks handled by a direct or offloaded threads were not properly reported to the applications causing a failure to automatically recover. Bug: 11535001. Change-Id: I7a8696b4d646f78b16710addfe7c108d0dd0038d
/frameworks/av/services/audioflinger/Threads.cpp
|
2c3740f01acca69c3e0bcc5e01bb0edc51b6777f |
|
31-Oct-2013 |
Eric Laurent <elaurent@google.com> |
AudioFlinger: fix duplicating thread standby. Commit fd47797 fixing issue 11247103 introduced a regression where the duplicating thread does not exit standby state as expected. This in turn prevents the tracks sending audio to other threads to complete their activity cycle normally. The fix conists in clearing mStandby state also in the specialized threadLoop_write() method of DuplicatingThread subclass. Bug: 11451415. Change-Id: Ie8a92c819a56a2834ea25fa70a8b7b2125721775
/frameworks/av/services/audioflinger/Threads.cpp
|
fd4779740ec3e9e865d5514464df26d015354388 |
|
26-Oct-2013 |
Eric Laurent <elaurent@google.com> |
AudioFlinger: more fixes for offload audio lost mStandby being false was not a reliable indication that something had been written to audio HAL. Considering the last track in mActiveTracks vector as the latest activated track was wrong as this is a SortedVector. Bug: 11247103. Change-Id: I397d011c5afcdd779def3fe25aaae7669a472cfc
/frameworks/av/services/audioflinger/Threads.cpp
|
9cae217050aa1347d4ac5053c305754879e3f97f |
|
14-Jan-2013 |
Marco Nelissen <marcone@google.com> |
Assign blame for playback wakelocks. Set a work source for the playback wakelock, so that playback is counted against the requesting app instead of the media server. Cherrypicked from master. b/9464621 Change-Id: I7329f88a288a95a582a78005a1c3d16a5a611e31
/frameworks/av/services/audioflinger/Threads.cpp
|
6a51d7ed7062536ccc892c8850a34ed55cbc8d5c |
|
18-Oct-2013 |
Eric Laurent <elaurent@google.com> |
audioflinger: fix track terminated before playing When a track is terminated before any audio was written, we should not send a drain request to the HAL. The drain will be ignored and we will wait the async callback for ever. Also fix a potential deadlock by not deleting a track with the thread mutex held: mPreviousTrack changed from a sp to a raw pointer. Bug: 11247103. Change-Id: I0a4b47b099204c7c326d45d700234ab8f72d8eae
/frameworks/av/services/audioflinger/Threads.cpp
|
014e7fa2e90827d911c37bb0ce4d2e10e14d0bb3 |
|
14-Oct-2013 |
Narayan Kamath <narayan@google.com> |
Make Audio wakelock names less unique. These wakelocks now show up in the client process, where they might cause wakelock overflows if AudioFlinger threads die often. The client process should be agnostic of audio flinger threading, so don't make the wakelock names rely on audioflinger thread names. Wakelock names now depend only on the audio flinger thread type, and not the ID itself. bug: 11200551 Change-Id: Ia1f71b569cb7502d617b77596abc245f461a6ec0
/frameworks/av/services/audioflinger/Threads.cpp
|
fee4ce338d78eeb58af1f66831ead53322d3859e |
|
07-Oct-2013 |
Glenn Kasten <gkasten@google.com> |
Merge "Cleanup openRecord error handling" into klp-dev
|
ea0fadeb5d81ef3cb7f9db458c9033d628bdb86a |
|
05-Oct-2013 |
Eric Laurent <elaurent@google.com> |
audioflinger: offload: fix pause/flush/resume If a pause/flush/resume sequence is fast enough, resume is received while we are still in PAUSING state in which case it is a NOP. If this happens, flush is still forwarded to the audio HAL but is not preceeded by a pause which can cause problems to the audio DSP. It is necessary to preserve the flush as this sequence is typical to a seek. The fix consists in forcing a pause/resume when a flush request must be executed and the audio HAL has not been paused previously. Bug: 11081559. Change-Id: Ib84ed26d503a61c05933b923ec556b10cedfe140
/frameworks/av/services/audioflinger/Threads.cpp
|
547789d25dc6bd6561553bcf6b384fb0d4fee834 |
|
04-Oct-2013 |
Eric Laurent <elaurent@google.com> |
audioflinger: fix wake lock acquisition check Commit e14a5d6 introduced a bug in ThreadBase::acquireWakeLock() where the wake lock acquisition return code is not initialized before being checked causing the wake lock token to be sometines not set and potential failure to release the wake lock later. Bug: 10985160. Change-Id: Iffd40e773ae3bcfec3c148a844d5dbebbf474eaf
/frameworks/av/services/audioflinger/Threads.cpp
|
8097068de97c0cdab8150931f290edbd5b3721e5 |
|
03-Oct-2013 |
Marco Nelissen <marcone@google.com> |
Merge "Better recording wake lock accounting" into klp-dev
|
e14a5d6d2cc91dd2fc09ffdf7aa670b37da0795d |
|
03-Oct-2013 |
Marco Nelissen <marcone@google.com> |
Better recording wake lock accounting Count wake lock use against the app that initiated the recording, not against the media server. b/10985160 Change-Id: Iae6e6c030b7f1c6081d9c79725d6990f60dadaaa
/frameworks/av/services/audioflinger/Threads.cpp
|
59fe010bcc072597852454a2ec53d7b0a2002a3b |
|
28-Sep-2013 |
Eric Laurent <elaurent@google.com> |
fix volume and effect enable delay on offloaded tracks Volume: add a method to wake up the mediaserver playback thread when a volume command is received on an offloaded track. Effects: call effect chain process on offloaded playback threads asynchronously from writes to allow effect state updates while waiting for async write callback. Bug: 10796540. Change-Id: Id2747ae88783575d1d7ffd6fc86fbd054ab2c739
/frameworks/av/services/audioflinger/Threads.cpp
|
4de95592980dba88a35b3dc8f3fd045588387a4f |
|
27-Sep-2013 |
Eric Laurent <elaurent@google.com> |
audioflinger: fix crash when starting offload thread Passing a sp to parent thread to AsyncCallbackThread() constructor causes a strong reference to be acquired on the OffloadThread inside its constructor which causes an early launch of the thread loop with unpredictable consequences. Pass a wp to parent thread instead. Also move the creation of the AsyncCallbackThread to readOutputParameters() where mUseAsyncWrite is initialized which makes more sense. Also change the type of AsyncCallbackThread parent thread to PlaybackThread instead of OffloadThread to allow a broder use of non blocking write which in theory is not limited to audio offload use case. Bug: 8174034. Change-Id: I4b093b022030cd4f5eb8b8e477333e91098a6549
/frameworks/av/services/audioflinger/Threads.cpp
|
e93cf2ca27ae6f4a81d4ef548bbf10a34db6d98f |
|
24-Sep-2013 |
Glenn Kasten <gkasten@google.com> |
Cleanup openRecord error handling Bug: 10888816 Change-Id: I84897dd7d30b370640b54e928f230604b873cb68
/frameworks/av/services/audioflinger/Threads.cpp
|
664539d25180ab8f77e0521533ea2821cf28985f |
|
24-Sep-2013 |
Eric Laurent <elaurent@google.com> |
audioflinger: fix ro.audio.silent in offload again Commit 1abbdb4 was not working 100% of the times because it is possible that the offload thread loop never sleeps after being created in which case the property is never read. The loop now reads the property once when starting. Bug: 10899309. Change-Id: I2e2ca332f2d7086e59d65f6010378c4d9618ba9e
/frameworks/av/services/audioflinger/Threads.cpp
|
a3b97ad288e6808c54c6275eaac1bd53108d8f11 |
|
20-Sep-2013 |
Eric Laurent <elaurent@google.com> |
Merge "audioflinger: implement getTimestamp() for offloaded tracks" into klp-dev
|
accc147666bfd37fc8b4ef745f18a8c751555ec2 |
|
20-Sep-2013 |
Eric Laurent <elaurent@google.com> |
audioflinger: implement getTimestamp() for offloaded tracks Bug: 9587132. Change-Id: Ie9d5f4cca96306d08bc9a2dbd6edd8953096702d
/frameworks/av/services/audioflinger/Threads.cpp
|
ede6c3b8b1147bc425f7b923882f559a513fe23b |
|
19-Sep-2013 |
Eric Laurent <elaurent@google.com> |
audioflinger: fix lost offload thread resume event It was possible that a resume request signaled by addTrack_l() while waiting for an async write callback is lost. This is because mSignalPending was not set and waitingAsyncCallback_l() would pause the thread loop before executing prepareTracks_l(). The fix consists in using signal_l() method to wake the thread loop o that mSignalPending is set. Also make sure that sleepTime is reset to 0 when resuming to make sure that we write any remaining bytes to the HAL. Bug: 10810347. Change-Id: If9a3b22cc3b9e6eb384a56c48c40e6258d0896ad
/frameworks/av/services/audioflinger/Threads.cpp
|
5baf2af52cd186633b7173196c1e4a4cd3435f22 |
|
13-Sep-2013 |
Eric Laurent <elaurent@google.com> |
more support for audio effect offload Offloading of audio effects is now enabled for offloaded output threads. If an effect not supporting offload is enabled, the AudioTrack is invalidated so that it can be recreated in PCM mode. Fix some issues in effect proxy related to handling of effect commands to offloaded and non offloaded effects. Also fixed a bug on capture index in software Visualizer effect. Bug: 8174034. Change-Id: Ib23d3c2d5a652361b0aaec7faee09102f2b18fce
/frameworks/av/services/audioflinger/Threads.cpp
|
7f91e5e09cf3bd8068894b2e54cbdaac70bf53a0 |
|
14-Sep-2013 |
Eric Laurent <elaurent@google.com> |
Merge "audioflinger: fix ro.audio.silent in offload mode" into klp-dev
|
1abbdb4429479975718421c4fef3f79ce7c820e3 |
|
14-Sep-2013 |
Eric Laurent <elaurent@google.com> |
audioflinger: fix ro.audio.silent in offload mode Change-Id: I5a1a79000d53146689b0a198cc5419c36509703f
/frameworks/av/services/audioflinger/Threads.cpp
|
972a173d7d1de1a3b5a617aae3e2abb6e05ae02d |
|
04-Sep-2013 |
Eric Laurent <elaurent@google.com> |
audioflinger: longer offload thread standby delay - Increase offloaded output thread standby delay to 1 second to allow transition between tracks with going to stanby if reusing the same audio track (gapless) - Make sure pause/flush/resume sequence is sent to the HAL in the right order - Fix format display in track dump Bug: 8174034. Change-Id: I43ef6f8fdbf7427e4eff6cc2d0665d7d1463ea8a
/frameworks/av/services/audioflinger/Threads.cpp
|
9a54bc27876acd5d8be5b1fc3dc46701fe76fbb3 |
|
09-Sep-2013 |
Eric Laurent <elaurent@google.com> |
audioflinger: add HOTWORD audio source. HOTWORD is a special capture audio source that uses the same audio tuning as VOICE_RECOGNITION but allows an active capture to be preempted. Bug: 10640877. Change-Id: Iea09a11cbcdbacc8d434e5230e7559dcd1b44ac0
/frameworks/av/services/audioflinger/Threads.cpp
|
3b4529e03c5fc7a44c22f9091ad15a269bfca3a8 |
|
06-Sep-2013 |
Eric Laurent <elaurent@google.com> |
audioflinger: remove async write race conditions Remove possible race conditions between async callback thread and offload thread when clearing and setting the draining and write blocked flags. Bug: 8174034. Change-Id: I7af10491f39dc0e7d7414862a9d8e763daa2e2b7
/frameworks/av/services/audioflinger/Threads.cpp
|
767094dd98b01baf21de2ad09c27b3c98776cf73 |
|
23-Aug-2013 |
Glenn Kasten <gkasten@google.com> |
Add NBAIO_Sink::getTimestamp() with a real implementation in AudioStreamOutSink for dummy implementation initially in MonoPipe. Use in AudioFlinger::PlaybackThread::threadLoop_write() to keep the input to the timestamp latch up-to-date. Change-Id: I10ef277991b63bb43d55d6f3df75116ef32246cd
/frameworks/av/services/audioflinger/Threads.cpp
|
6bf9ae20b3bd2dbb8f2e89ee167a6785222301cf |
|
31-Aug-2013 |
Eric Laurent <elaurent@google.com> |
audioflinger: offloaded tracks flush/pause order Make sure that a flush received after a pause is forwarded to the HAL after the pause. Change-Id: Ib3221f70c59f8b3dbbac20b23104f6b779b75be0
/frameworks/av/services/audioflinger/Threads.cpp
|
bd096fd9d8e5fc0e62f98807f4818a06f70d0812 |
|
23-Aug-2013 |
Glenn Kasten <gkasten@google.com> |
Implement Track::getTimestamp() using a new timestamp latch in PlaybackThread, and AudioTrackServerProxy::framesReleased() which returns mServer. Change-Id: I1ebfba968c773faaab95648c272fd3ebd74718d6
/frameworks/av/services/audioflinger/Threads.cpp
|
90e58b1fefc8caf70b34301a92bc86179580b6fc |
|
01-Aug-2013 |
Glenn Kasten <gkasten@google.com> |
RecordThread::createRecordTrack_l use flags for fast tracks Look at client's request for a fast track in the flags parameter, and check whether the request can be satisfied. Change-Id: I65ddaeb1b85670fe9066076f638bfed0cda01c0d
/frameworks/av/services/audioflinger/Threads.cpp
|
ddb0ccf3fb6fe8da8c71a6deb30561b821f3c0a2 |
|
01-Aug-2013 |
Glenn Kasten <gkasten@google.com> |
RecordTrack::createRecordTrack_l flags are in/out The flags are currently unused, but will be used for requesting a fast track. Making flags in/out will allow reporting back up to client that the request is denied. Change-Id: Ifbee57da3632ce130551065a426577fb97b1a68d
/frameworks/av/services/audioflinger/Threads.cpp
|
f36dbfe3d517e9311be0a4d0fd6658380690e84c |
|
02-Aug-2013 |
Glenn Kasten <gkasten@google.com> |
Merge "Report underruns for fast tracks also"
|
1a3739169becc850999c3c06db402541119a428c |
|
01-Aug-2013 |
Glenn Kasten <gkasten@android.com> |
am 6d4d8790: am b687ff9f: Merge "Fix mismatched delete/new couple" * commit '6d4d879037a495f9a4276a6996d1845594ce9090': Fix mismatched delete/new couple
|
82aaf94a5b18939e4d790bbc752031f3070704a3 |
|
18-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
Report underruns for fast tracks also This fixes a regression that was introduced earlier by commit 9f80dd223d83d9bb9077fb6baee056cee4eaf7e5 called "New control block for AudioTrack and AudioRecord". That commit broke underrun reporting for fast tracks. Also remove Track::mUnderrunCount, which counted the number of underrun events, and was only used by dumpsys media.audio_flinger. Now dumpsys media.audio_flinger reports the number of underrun frames, Isolated underrun-related control block accesses via the proxy, so that the server is not directly poking around in the control block. The new proxy APIs are AudioTrackServerProxy::getUnderrunFrames() and AudioTrackServerProxy::tallyUnderrunFrames(). getUnderrunFrames() returns a rolling counter for streaming tracks, or zero for static buffer tracks which never underrun, but do a kind of 'pause' at end of buffer. tallyUnderrunFrames() increments the counter by a specified number of frames. Change-Id: Ib31fd73eb17cbb23888ce3af8ff29f471f5bd5a2
/frameworks/av/services/audioflinger/Threads.cpp
|
b08ab81bab9e8cd2e3a7fff02725a387070fd078 |
|
31-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
Merge "Add resampler comments and fix a typo"
|
34af02647b387a252fb02bab8e2cb9f7bd9c8abb |
|
30-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
Add resampler comments and fix a typo Change-Id: Ie071673875f663de4212eed4a4dff89d51a5a915
/frameworks/av/services/audioflinger/Threads.cpp
|
96f60d8f04432a1ed503b3e24d5736d28c63c9a2 |
|
12-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
Rename control block flags to mFlags Change-Id: I7b6d31e24531954ab1ecdf3ed56c19433700bd89
/frameworks/av/services/audioflinger/Threads.cpp
|
97252bb0e40a5a9b41f020163393cf6c5da10b7e |
|
30-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
Merge "AudioRecord and HAL input stream must be 16-bit PCM only"
|
f20e1d8df84c5fbeeace0052d100982ae39bb7a4 |
|
12-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
Rename control block server to mServer and add comments Change-Id: Ieabd91acee92d0e84e66fbd358df5282b856306e
/frameworks/av/services/audioflinger/Threads.cpp
|
a30e75897934da2ce7b1b03bcb4b58e139d3e81e |
|
30-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
Merge "Fix theoretical race using TrackBase::sampleRate()"
|
eb144bbbd0b18427562b0d7db5b38e11f9484739 |
|
09-Oct-2012 |
Andrei V. FOMITCHEV <andreix.fomitchev@intel.com> |
Fix mismatched delete/new couple In RecordThread::readInputParameters(), mRsmpInBuffer is allocated with new[] and should be freed with delete[] instead of delete. This error has been found by valgrind. Change-Id: I2f947abb658a21a7d1e61eebb99270cb37d2d147 Signed-off-by: Andrei V. FOMITCHEV <andreix.fomitchev@intel.com> Signed-off-by: David Wagner <david.wagner@intel.com> Signed-off-by: Jack Ren <jack.ren@intel.com> Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
/frameworks/av/services/audioflinger/Threads.cpp
|
fa319e6d918b84f93fb5457af5d1cca6421ac517 |
|
30-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
Remove CC_LIKELY and CC_UNLIKELY where not needed Only keep them in performance-sensitive code Change-Id: Ib257ddd7bc39ce9896997ffae008c524ac743d01
/frameworks/av/services/audioflinger/Threads.cpp
|
548efc94813c1dec6e8cf6c085ae41ccb04827f1 |
|
29-Nov-2012 |
Glenn Kasten <gkasten@google.com> |
Rename RecordThread::mInputBytes to the more generic mBufferSize This prepares for using it in PlaybackThreads later Change-Id: Id90a92aa6372e4b69914b0008cef07296ca5d6a3
/frameworks/av/services/audioflinger/Threads.cpp
|
9b58f63e45ef2fdfb839b9b9bb3411d81eb96128 |
|
16-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
Move members from ThreadBase to PlaybackThread Move mNormalFrameCount and frameCountHAL(), since they're not used by record threads. Also comment which fields are updated by readParameters(). Change-Id: I5fc0a8a89cc637976f22d49271a5a3e136dab4e1
/frameworks/av/services/audioflinger/Threads.cpp
|
7f249fa9bcb64da324d19f551943fac7686d221c |
|
29-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
Merge "Use standard name and type for channel mask"
|
175f8338e67aae6d0ca420b8f45a5f7cab4394d5 |
|
29-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
Merge "Simplify getParameters()"
|
f6ed423af92a56ef54bba23eba883b1f21448b54 |
|
16-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
Treat mChannelCount as uint32_t consistently mChannelCount was 8-, 16-, or 32-bits Change-Id: I2cc2fedf3e33144e5c8bbd9894763282d9217f63
/frameworks/av/services/audioflinger/Threads.cpp
|
2eeca1f8e18106d118f7268cb9d8597539685c5c |
|
29-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
Merge "Move local variable declarations to point of first use"
|
b283374cbf79dc5a36f1eef0015d7baf8881792e |
|
29-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
Merge "Move delete AudioMixer closer to point of re-allocation"
|
afbbc6c5f6bc470d504dcf24ceb3ac21d57fb78d |
|
29-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
Merge "Simplify RecordTrack::stop()"
|
422801c5e9b795105f28e639c4bed5ee3f4e56f3 |
|
26-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
Merge "HAL stream format for mixer output threads must be stereo 16-bit PCM"
|
a8356f663014e7d4c27869629af83d8bb3441e19 |
|
25-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
Simplify RecordTrack::stop() Change-Id: Ib959c1e9dc9544d12277ce11bea445118b2e0521
/frameworks/av/services/audioflinger/Threads.cpp
|
bfb1b832079bbb9426f72f3863199a54aefd02da |
|
07-Jan-2013 |
Eric Laurent <elaurent@google.com> |
AudioFlinger: offload playback, non-blocking write - Added specialized playback thread class for offload playback, derived from directoutput thread. This thread type handles specific state transitions for offloaded tracks and offloading commands (pause/resume/drain/flush..) to audio HAL. As opposed to other threads, does not go to standby if the track is paused. - Added support for asynchronous write and drain operations at audio HAL. Use a thread to handle async callback events from HAL: this avoids locking playback thread mutex when executing the callback and cause deadlocks when calling audio HAL functions with the playback thread mutex locked. - Better accouting for track activity: call start/stop and release Output methods in audio policy manager when tracks are actually added and removed from the active tracks list. Added a command thread in audio policy service to handle stop/release commands asynchronously and avoid deadlocks with playback thread. - Track terminated status is not a state anymore. This condition is othogonal to state to permitted state transitions while terminated. Change-Id: Id157f4b3277620568d8eace7535d9186602564de
/frameworks/av/services/audioflinger/Threads.cpp
|
9e8fcbcd8efa51d70d1207ff57bfbfe31324287a |
|
25-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
Move delete AudioMixer closer to point of re-allocation No need to delete AudioMixer before readOutputParameters Change-Id: Icafa785c9021bbe8d985e4f9527f8fc8c5e62622
/frameworks/av/services/audioflinger/Threads.cpp
|
7fc97ba08e2850f3f16db704b78ce78e3dbe1ff0 |
|
17-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
HAL stream format for mixer output threads must be stereo 16-bit PCM Direct and tunnel output threads can support various HAL stream formats, included encoded. But currently there are stereo 16-bit PCM assumptions in several places for mixer and duplicating output threads: - mMixBuffer and mixBuffer() - AudioMixer including resampler - FastMixer's mixBuffer - effects - NBAIO_Format - anywhere FCC_2 is used - possibly other places Until those assumptions are removed, this CL enforces stereo 16-bit PCM in mixer and duplicating threads at the place where the HAL format is read. It was already being checked in checkForNewParameters_l(), but not in readOutputParameters(). Change-Id: Ibe344cc922743da234299097aa1bb1f54795cc9b
/frameworks/av/services/audioflinger/Threads.cpp
|
d8ea699dc8e7dac58bb32e9cdb31b0758da25817 |
|
16-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
Simplify getParameters() Change-Id: Iedfeca3cd477d023c350d6d4e6eed874ee467a32
/frameworks/av/services/audioflinger/Threads.cpp
|
34542acfa25c6413c87a94b6f7cc315a0c496277 |
|
26-Jun-2013 |
Glenn Kasten <gkasten@google.com> |
Move local variable declarations to point of first use Change-Id: Ideb83dea2c3002651c34fa646753cba598e29e93
/frameworks/av/services/audioflinger/Threads.cpp
|
fad226abd12435dbcd232f7de396f1a097b2bd5f |
|
17-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
Use standard name and type for channel mask Former name 'channels' was ambiguous with respect to channel count. Change-Id: I716f792d95a7e0c787d27514ad6e93dbcef8a415
/frameworks/av/services/audioflinger/Threads.cpp
|
291bb6d8947c5b0c062f0895d623c529259bfa39 |
|
17-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
AudioRecord and HAL input stream must be 16-bit PCM only Currently there are 16-bit PCM assumptions in several places for capture: - resampler API - mRsmpInBuffer and mRsmpOutBuffer - RecordThread::threadLoop upmix, downmix, and resampling - possibly other places Until those assumptions are removed, this CL enforces 16-bit PCM in both client and server at all places where a format is checked. Change-Id: I08b0570bff626ad0d341804825a72c14e61b4233
/frameworks/av/services/audioflinger/Threads.cpp
|
4182c4e2a07e2441fcd5c22eaff0ddfe7f826f61 |
|
15-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
Use AudioSystem::setLowRamDevice() to configure memory Bug: 9798886 Change-Id: I9321e3f369f1ed9429ae222e3926ebdeb012b8b0
/frameworks/av/services/audioflinger/Threads.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/Threads.cpp
|
c6ae3c8a261794fd4445e4e152d1ada074a3f92f |
|
17-Jul-2013 |
Glenn Kasten <gkasten@google.com> |
Fix theoretical memory leak in mConfigEvents Change-Id: I137f70676c8919661e716c33e0dd9c25c2b6285c
/frameworks/av/services/audioflinger/Threads.cpp
|
1ab85ec401801ef9a9184650d0f5a1639b45eeb9 |
|
31-May-2013 |
Glenn Kasten <gkasten@google.com> |
Include what is needed Remove old includes. Header files only include other header files that they directly need themselves. Change-Id: Ic471386808d9f42ea19ccbd59cb50a5f83a89dd0
/frameworks/av/services/audioflinger/Threads.cpp
|
9fdcb0a9497ca290bcf364b10868587b6bde3a34 |
|
27-Jun-2013 |
Glenn Kasten <gkasten@google.com> |
Fix theoretical race using TrackBase::sampleRate() In two places we assumed that TrackBase::sampleRate() would return the same value when it is called twice in the same function. This is not guaranteed; sampleRate() reads from the control block so the return value could change. To fix this, only call sampleRate() once and cache the return value to get a consistent value. This was only a theoretical race. In MixerThread::prepareTracks_l() it would have no bad effect. In TimedTrack::getNextBuffer() it could cause a real problem, but we don't currently support dynamic sample rate ratios for timed tracks. Change-Id: I8e5c33f0121fc058d1e70c2ab5e9135397d3e0b7
/frameworks/av/services/audioflinger/Threads.cpp
|
9f80dd223d83d9bb9077fb6baee056cee4eaf7e5 |
|
19-Dec-2012 |
Glenn Kasten <gkasten@google.com> |
New control block for AudioTrack and AudioRecord Main differences between old and new control block: - removes the mutex, which was a potential source of priority inversion - circular indices into shared buffer, which is now always a power-of-2 size Change-Id: I4e9b7fa99858b488ac98a441fa70e31dbba1b865
/frameworks/av/services/audioflinger/Threads.cpp
|
fe9a901a445633e70073b1b91fca3af34d8e8132 |
|
12-Jun-2013 |
Eric Laurent <elaurent@google.com> |
am bb35be24: am 7be48189: Merge "audioflinger: fix effects on direct output threads" into jb-mr2-dev * commit 'bb35be24239f05f59715960a93cd491a4cd3b4d6': audioflinger: fix effects on direct output threads
|
d0107bcd44fe608b0c00a8843d19fb6356c4cb69 |
|
11-Jun-2013 |
Eric Laurent <elaurent@google.com> |
audioflinger: fix effects on direct output threads PlaybackThread::addTrack_l() uses the assumption that effects are attached to a track only if the track accumulation buffer is different from the mixer thread output buffer. This is not true for direct output threads where only one track is active an only one buffer is needed. This assumption is an optimization to avoid checking for effect chains with the same session ID each time a track is processed. The optimization is not key if only one track is attached to the thread which is the case for direct outputs. Current code fails to increment the active track count in the effect chain on direct output threads when a track is started thus making the effect framework clear the mix buffer and produce silence each time the mixer runs. The fix consists in removing the optimization described above. Bug: 9324989. Change-Id: Id7a6337450ed90d326299c2ce9fc02f4b9e2fa6f
/frameworks/av/services/audioflinger/Threads.cpp
|
04b035e3ccbf2919e4447c66e6483c11f2889f01 |
|
07-Jun-2013 |
Eric Laurent <elaurent@google.com> |
am d3a5b48a: am 18b46679: Merge "AudioFlinger: do not cache audio device when 0." into jb-mr2-dev * commit 'd3a5b48a1bc4f5d6ff4472f54f909abaadd5fa39': AudioFlinger: do not cache audio device when 0.
|
7e1139c0377b6806942fb2a043737b3b9cf0ae91 |
|
07-Jun-2013 |
Eric Laurent <elaurent@google.com> |
AudioFlinger: do not cache audio device when 0. AudioFlinger should not cache the audio device passed to the audio HAL when it is AUDIO_DEVICE_NONE but keep previous valid selection instead. Bug: 9323399. Change-Id: I6f9480e55a21be4115453e6a5eebc5cf2536c476
/frameworks/av/services/audioflinger/Threads.cpp
|
7c027248e1a4ccd5b22bc4deafb03e2d87ac8f38 |
|
26-Dec-2012 |
Glenn Kasten <gkasten@google.com> |
Consistent whitespace Change-Id: I118cce68d3b777f9ec9b6bfb70367496422a40f2
/frameworks/av/services/audioflinger/Threads.cpp
|
61d404efeaaf3ea1b615c160b843ac9f274d0018 |
|
20-May-2013 |
Dianne Hackborn <hackbod@google.com> |
Update to supply correct name for new power manager app ops. Change-Id: Ia686319509d98a4f467479ea494e8a54f2c1e238
/frameworks/av/services/audioflinger/Threads.cpp
|
f8197a6a9d9363cb52bb8a2c15c0e5a52064355e |
|
23-Apr-2013 |
Glenn Kasten <gkasten@google.com> |
Remove timing jitter during startup of audio This fixes a regression introduced recently, that increased timing jitter during the startup of the FastMixer and AudioTrack callback threads. The regression was to make requestPriority() asynchronous as a way to avoid an apparent priority inversion in system_server. This means that the target thread could run briefly with the initial priority, before the new priority takes effect. This change removes the startup jitter for FastMixer, by making the requestPriority() synchronous again for that case. It doesn't matter that this restores the priority inversion involving normal mixer thread, because it happens during startup of both threads. The change also removes the startup jitter for the AudioTrack callback thread, by having the target thread check whether the requestPriority() has completed yet. If not, the target thread blocks with a timeout until the priority boost finishes. Finally, we now log an error message if the expected priority boost doesn't happen. Bug: 8698989 Change-Id: Id590e9a274b70ec1ba85b44a585ee37a22e41cbc
/frameworks/av/services/audioflinger/Threads.cpp
|
a07f17ca46db04c9d5d9e7d6b2878db59ca2b9ea |
|
23-Apr-2013 |
Glenn Kasten <gkasten@google.com> |
Remove timing jitter during startup of audio This fixes a regression introduced recently, that increased timing jitter during the startup of the FastMixer and AudioTrack callback threads. The regression was to make requestPriority() asynchronous as a way to avoid an apparent priority inversion in system_server. This means that the target thread could run briefly with the initial priority, before the new priority takes effect. This change removes the startup jitter for FastMixer, by making the requestPriority() synchronous again for that case. It doesn't matter that this restores the priority inversion involving normal mixer thread, because it happens during startup of both threads. The change also removes the startup jitter for the AudioTrack callback thread, by having the target thread check whether the requestPriority() has completed yet. If not, the target thread blocks with a timeout until the priority boost finishes. Finally, we now log an error message if the expected priority boost doesn't happen. Bug: 8698989 Change-Id: Id590e9a274b70ec1ba85b44a585ee37a22e41cbc
/frameworks/av/services/audioflinger/Threads.cpp
|
7fd54ff906c69400727fc8e90118a8a0429d7ab2 |
|
04-Apr-2013 |
Eric Laurent <elaurent@google.com> |
audioflinger: multiple tracks on direct output Fix problems when multiple tracks exist on a direct output thread: when multiple tracks are active, continue to update all track states but only take into account the last track started for audio HAL volume and mixer state control. Bug 8388941 Change-Id: I57e6757286f41651dda99b11a5449e431812431b
/frameworks/av/services/audioflinger/Threads.cpp
|
d595b7c858c481a07745674ce2d8a6690e980e74 |
|
04-Apr-2013 |
Eric Laurent <elaurent@google.com> |
audioflinger: multiple tracks on direct output Fix problems when multiple tracks exist on a direct output thread: when multiple tracks are active, continue to update all track states but only take into account the last track started for audio HAL volume and mixer state control. Bug 8388941 Change-Id: I57e6757286f41651dda99b11a5449e431812431b
/frameworks/av/services/audioflinger/Threads.cpp
|
a265845ecafe06c9668ce7ac67636657f4bedf86 |
|
26-Feb-2013 |
Glenn Kasten <gkasten@google.com> |
Miscellaneous cleanup Abbreviation framesReady to fRdy for new systrace. Put inline const on one line. Use local copy of mState in state. Improve logging. Line length 100. Change-Id: I8201c3ce0e53fd464fd33d02544e52c342d40b68
/frameworks/av/services/audioflinger/Threads.cpp
|
c9b2e20f7c9a71e07ef398152709c76079decbcd |
|
26-Feb-2013 |
Glenn Kasten <gkasten@google.com> |
Miscellaneous cleanup Abbreviation framesReady to fRdy for new systrace. Put inline const on one line. Use local copy of mState in state. Improve logging. Line length 100. Change-Id: I8201c3ce0e53fd464fd33d02544e52c342d40b68
/frameworks/av/services/audioflinger/Threads.cpp
|
10774e144b3c99afad9a5070ccf50fdb12b5fb4e |
|
02-Mar-2013 |
Glenn Kasten <gkasten@google.com> |
Merge "media.log cleanup" into jb-mr2-dev
|
bf04b5860182d8f4130dcb5d6d88ee68a58c99cd |
|
02-Mar-2013 |
Glenn Kasten <gkasten@google.com> |
Merge "media.log cleanup" into jb-mr2-dev
|
d3c4b134a87b96227b90b9ec052d8a6e9880bbdf |
|
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/Threads.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/Threads.cpp
|
dd0bda0c47871d4964b5035a096c7c8c27fa7469 |
|
26-Feb-2013 |
Glenn Kasten <gkasten@google.com> |
Remove tee sink debugging at compile time Bug: 8223560 Change-Id: Iddbfb06c45d43d9f20bb428215dd4094931e19a7
/frameworks/av/services/audioflinger/Threads.cpp
|
46909e7eb074ce1b95b8a411eb71154f53f84f77 |
|
26-Feb-2013 |
Glenn Kasten <gkasten@google.com> |
Remove tee sink debugging at compile time Bug: 8223560 Change-Id: Iddbfb06c45d43d9f20bb428215dd4094931e19a7
/frameworks/av/services/audioflinger/Threads.cpp
|
dd4abb5177b8d94cd30a787d4ce336d5110c185c |
|
10-Jan-2013 |
Glenn Kasten <gkasten@google.com> |
Update tee sink Implement rotation to reduce long-term storage use. Implement optional per-track tee. Dynamically enable at runtime based on property, instead of at compile-time. Dynamic frame count not yet implemented. Bug: 8223560 Change-Id: I3706443c6ec0cb0c6656dc288715a02ad5fea63a
/frameworks/av/services/audioflinger/Threads.cpp
|
da6ef1320d0161b1640dc84d7a9c5a25860c3619 |
|
10-Jan-2013 |
Glenn Kasten <gkasten@google.com> |
Update tee sink Implement rotation to reduce long-term storage use. Implement optional per-track tee. Dynamically enable at runtime based on property, instead of at compile-time. Dynamic frame count not yet implemented. Bug: 8223560 Change-Id: I3706443c6ec0cb0c6656dc288715a02ad5fea63a
/frameworks/av/services/audioflinger/Threads.cpp
|
5f6f3764989601d3b3ee65beaf1447d2a6b5f284 |
|
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/Threads.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/Threads.cpp
|
dd9764290b3c1d801fea9505189cae29db919902 |
|
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/Threads.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/Threads.cpp
|
ce70d400ff9fb614e334ab2b661df2933533ef57 |
|
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/Threads.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/Threads.cpp
|
5881f18029deb80eb83ea88046d0593441be79c7 |
|
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/Threads.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/Threads.cpp
|
7f2f8042cf335ab1323dec3edbe9143a06109f4e |
|
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/Threads.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/Threads.cpp
|
b900234f9e772bb7591a551f06ba17ee1969368f |
|
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/Threads.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/Threads.cpp
|
c93aff0a698265501f46393f3146b884aa357aee |
|
12-Feb-2013 |
Glenn Kasten <gkasten@google.com> |
Revert "Temporary additional logging to investigate bug" This reverts commit 3051df27261e9952c0e642dec548515250e85f6a Change-Id: I8bf5c3e91b65bd20de26f480c367c2854b62373c
/frameworks/av/services/audioflinger/Threads.cpp
|
ecd9389c8712aedeb2a79823ea0e4fb842684269 |
|
12-Feb-2013 |
Glenn Kasten <gkasten@google.com> |
Revert "Temporary additional logging to investigate bug" This reverts commit 3051df27261e9952c0e642dec548515250e85f6a Change-Id: I8bf5c3e91b65bd20de26f480c367c2854b62373c
/frameworks/av/services/audioflinger/Threads.cpp
|
a1bf28b533907b0b234e52c72bc372b3fa49c5a3 |
|
12-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 Bug: 6490974 Change-Id: I4c030f171343fe4b483eae0ddea4427118d8d4b1
/frameworks/av/services/audioflinger/Threads.cpp
|
3051df27261e9952c0e642dec548515250e85f6a |
|
12-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 Bug: 6490974 Change-Id: I4c030f171343fe4b483eae0ddea4427118d8d4b1
/frameworks/av/services/audioflinger/Threads.cpp
|
83fa606bd629ac32a2dab5af255188acfa30db4a |
|
04-Feb-2013 |
Eric Laurent <elaurent@google.com> |
Merge "AudioFlinger: fix RecordThread initial device"
|
59686720182dcaa1a1a4757964df38c16f1a5246 |
|
04-Feb-2013 |
Eric Laurent <elaurent@google.com> |
Merge "AudioFlinger: fix RecordThread initial device"
|
201fc9c9feb4765a12bc39e95d25f3aa1deb8ffe |
|
02-Feb-2013 |
Eric Laurent <elaurent@google.com> |
AudioFlinger: fix RecordThread initial device A regression was introduced when the audio device enums where modified for a 32 bit representation: the device passed when constructing a RecordThread was still the concatenation of input device and output device bit fields on one 32 bit value which is not possible anymore. The fix consists in modifying the RecordThread constructor to accept separate values for input and output devices. Change-Id: I81fb5f4718428b54251e65d74b86e198ce15193e
/frameworks/av/services/audioflinger/Threads.cpp
|
d3922f72601d82c6fc067a98916fda0bd1291c5f |
|
02-Feb-2013 |
Eric Laurent <elaurent@google.com> |
AudioFlinger: fix RecordThread initial device A regression was introduced when the audio device enums where modified for a 32 bit representation: the device passed when constructing a RecordThread was still the concatenation of input device and output device bit fields on one 32 bit value which is not possible anymore. The fix consists in modifying the RecordThread constructor to accept separate values for input and output devices. Change-Id: I81fb5f4718428b54251e65d74b86e198ce15193e
/frameworks/av/services/audioflinger/Threads.cpp
|
011aa652a9349750dd6bca1dcb1b82f19e07504e |
|
19-Jan-2013 |
Glenn Kasten <gkasten@google.com> |
AudioFlinger uses media.log service for logging Change-Id: Ia0f8204334f6b233f644d897762a18c95d936b4b
/frameworks/av/services/audioflinger/Threads.cpp
|
9e58b552f51b00b3b674102876bd6c77ef3da806 |
|
19-Jan-2013 |
Glenn Kasten <gkasten@google.com> |
AudioFlinger uses media.log service for logging Change-Id: Ia0f8204334f6b233f644d897762a18c95d936b4b
/frameworks/av/services/audioflinger/Threads.cpp
|
3a948fceb6b59121cc2e5eeb458064150870ffde |
|
18-Jan-2013 |
Eric Laurent <elaurent@google.com> |
AudioFlinger: fix build with debug log enabled Change-Id: Id397155ec884c41cb84b35462ea09a97a04d3ed2
/frameworks/av/services/audioflinger/Threads.cpp
|
2592f6e68edbed386e004d5b045233f15e7b9ba1 |
|
18-Jan-2013 |
Eric Laurent <elaurent@google.com> |
AudioFlinger: fix build with debug log enabled Change-Id: Id397155ec884c41cb84b35462ea09a97a04d3ed2
/frameworks/av/services/audioflinger/Threads.cpp
|
856ff4e4c3c43550f013e80277358fdf514342bf |
|
22-Dec-2012 |
Glenn Kasten <gkasten@google.com> |
Merge "Start isolating control block accesses in a proxy"
|
d5681bc9a38fe4cd1d591e6ae62b9c68fb851041 |
|
22-Dec-2012 |
Glenn Kasten <gkasten@google.com> |
Merge "Start isolating control block accesses in a proxy"
|
92b1343f5fbc2fc43198a0a1252fe023cc9a5061 |
|
14-Dec-2012 |
Glenn Kasten <gkasten@google.com> |
Fix build warnings Change-Id: I9e3cfa0c6b3467fe763ce55f759d179f02c5deea
/frameworks/av/services/audioflinger/Threads.cpp
|
c4974312e5a1e2ab94eca56045f991baf1508d73 |
|
14-Dec-2012 |
Glenn Kasten <gkasten@google.com> |
Fix build warnings Change-Id: I9e3cfa0c6b3467fe763ce55f759d179f02c5deea
/frameworks/av/services/audioflinger/Threads.cpp
|
552f274d82fb4988fb972df69134e031d375abfe |
|
04-Dec-2012 |
Glenn Kasten <gkasten@google.com> |
Start isolating control block accesses in a proxy The proxy object will eventually be the only code that understands the details of the control block. This should make it easier to change the control block in the future. Initial set of control block fields that are isolated: - sample rate - send level - volume Prepare for streaming/static separation by adding a union to the control block for the new fields. Fix bug in handling of max sample rate on a track. It was only checking at re-configuration, not at each mix. Simplify OutputTrack::obtainBuffer. Change-Id: I2249f9d04f73a911a922ad1d7f6197292c74cd92
/frameworks/av/services/audioflinger/Threads.cpp
|
e3aa659e9cee7df5c12a80d285cc29ab3b2cbb39 |
|
04-Dec-2012 |
Glenn Kasten <gkasten@google.com> |
Start isolating control block accesses in a proxy The proxy object will eventually be the only code that understands the details of the control block. This should make it easier to change the control block in the future. Initial set of control block fields that are isolated: - sample rate - send level - volume Prepare for streaming/static separation by adding a union to the control block for the new fields. Fix bug in handling of max sample rate on a track. It was only checking at re-configuration, not at each mix. Simplify OutputTrack::obtainBuffer. Change-Id: I2249f9d04f73a911a922ad1d7f6197292c74cd92
/frameworks/av/services/audioflinger/Threads.cpp
|
30c01816ddee2268fcd3d965240cba9c00301e7d |
|
04-Dec-2012 |
Glenn Kasten <gkasten@google.com> |
Prepare for track invalidation to be done by proxy Don't rely on control block to determine whether track has been marked invalid. Instead, use a local flag that can't be corrupted by client. Change-Id: I783dafe828f93c1c3d2d0e5a08105ea536436efb
/frameworks/av/services/audioflinger/Threads.cpp
|
5736c35b841de56ce394b4879389f669b61425e6 |
|
04-Dec-2012 |
Glenn Kasten <gkasten@google.com> |
Prepare for track invalidation to be done by proxy Don't rely on control block to determine whether track has been marked invalid. Instead, use a local flag that can't be corrupted by client. Change-Id: I783dafe828f93c1c3d2d0e5a08105ea536436efb
/frameworks/av/services/audioflinger/Threads.cpp
|
4b3a49e3a9ced6e63adab08acc5b720f8feddefa |
|
29-Nov-2012 |
Glenn Kasten <gkasten@google.com> |
AudioTrack::mute() is unused so remove it If ever needed again, it could be implemented on client side by forcing a track volume of 0. Change-Id: I88a9b4f675b6dca2948549414f9ec2c192d29269
/frameworks/av/services/audioflinger/Threads.cpp
|
e4756fe3a387615acb63c6a05788c8db9b5786cb |
|
29-Nov-2012 |
Glenn Kasten <gkasten@google.com> |
AudioTrack::mute() is unused so remove it If ever needed again, it could be implemented on client side by forcing a track volume of 0. Change-Id: I88a9b4f675b6dca2948549414f9ec2c192d29269
/frameworks/av/services/audioflinger/Threads.cpp
|
af348741539ae4a84aa929a54ecf359dae96f3ee |
|
30-Nov-2012 |
Alex Ray <aray@google.com> |
Remove conditional compilation of ATRACE functions Tracing functions are meant to be dynamically controlled via sysprops. Conditional compilation removes this functionality. Change-Id: I26bc473d104d0b3c50a228dddfda3fa2428d157a
/frameworks/av/services/audioflinger/Threads.cpp
|
371eb9756c32109ea572b91216b19bb623f6d3fd |
|
30-Nov-2012 |
Alex Ray <aray@google.com> |
Remove conditional compilation of ATRACE functions Tracing functions are meant to be dynamically controlled via sysprops. Conditional compilation removes this functionality. Change-Id: I26bc473d104d0b3c50a228dddfda3fa2428d157a
/frameworks/av/services/audioflinger/Threads.cpp
|
7a90bc9265782788675af577c7b1c56e5d5be709 |
|
30-Nov-2012 |
Simon Wilson <simonwilson@google.com> |
Use ATRACE macros instead of Tracer statics ATRACE_BEGIN and ATRACE_END have replaced the static Tracer::traceBegin and Tracer::traceEnd functions, so use them instead. Fixes compilation errors when tracing is enabled. Change-Id: I4d1147d2f76afcdf113e9986f0544cb848802b15
/frameworks/av/services/audioflinger/Threads.cpp
|
2d590964aa58e137d17a43e095e6443dd0fe2e98 |
|
30-Nov-2012 |
Simon Wilson <simonwilson@google.com> |
Use ATRACE macros instead of Tracer statics ATRACE_BEGIN and ATRACE_END have replaced the static Tracer::traceBegin and Tracer::traceEnd functions, so use them instead. Fixes compilation errors when tracing is enabled. Change-Id: I4d1147d2f76afcdf113e9986f0544cb848802b15
/frameworks/av/services/audioflinger/Threads.cpp
|
ca7cc8273ffd88b9b89655808ee7e3df74162b83 |
|
19-Nov-2012 |
Eric Laurent <elaurent@google.com> |
AudioFlinger files reorganization Audioflinger.cpp and Audioflinger.h files must be split to improve readability and maintainability. This CL splits the files as follows: AudioFlinger.cpp split into: - AudioFlinger.cpp: implementation of IAudioflinger interface and global methods - AFThreads.cpp: implementation of ThreadBase, PlaybackThread, MixerThread, DuplicatingThread, DirectOutputThread and RecordThread. - AFTracks.cpp: implementation of TrackBase, Track, TimedTrack, OutputTrack, RecordTrack, TrackHandle and RecordHandle. - AFEffects.cpp: implementation of EffectModule, EffectChain and EffectHandle. AudioFlinger.h is modified by inline inclusion of header files containing the declaration of complex inner classes: - AFThreads.h: ThreadBase, PlaybackThread, MixerThread, DuplicatingThread, DirectOutputThread and RecordThread - AFEffects.h: EffectModule, EffectChain and EffectHandle AFThreads.h includes the follownig headers inline: - AFTrackBase.h: TrackBase - AFPlaybackTracks: Track, TimedTrack, OutputTrack - AFRecordTracks: RecordTrack Change-Id: I512ebc3a51813ab7a4afccc9a538b18125165c4c
/frameworks/av/services/audioflinger/Threads.cpp
|
81784c37c61b09289654b979567a42bf73cd2b12 |
|
19-Nov-2012 |
Eric Laurent <elaurent@google.com> |
AudioFlinger files reorganization Audioflinger.cpp and Audioflinger.h files must be split to improve readability and maintainability. This CL splits the files as follows: AudioFlinger.cpp split into: - AudioFlinger.cpp: implementation of IAudioflinger interface and global methods - AFThreads.cpp: implementation of ThreadBase, PlaybackThread, MixerThread, DuplicatingThread, DirectOutputThread and RecordThread. - AFTracks.cpp: implementation of TrackBase, Track, TimedTrack, OutputTrack, RecordTrack, TrackHandle and RecordHandle. - AFEffects.cpp: implementation of EffectModule, EffectChain and EffectHandle. AudioFlinger.h is modified by inline inclusion of header files containing the declaration of complex inner classes: - AFThreads.h: ThreadBase, PlaybackThread, MixerThread, DuplicatingThread, DirectOutputThread and RecordThread - AFEffects.h: EffectModule, EffectChain and EffectHandle AFThreads.h includes the follownig headers inline: - AFTrackBase.h: TrackBase - AFPlaybackTracks: Track, TimedTrack, OutputTrack - AFRecordTracks: RecordTrack Change-Id: I512ebc3a51813ab7a4afccc9a538b18125165c4c
/frameworks/av/services/audioflinger/Threads.cpp
|