summaryrefslogtreecommitdiffstats
path: root/services/audioflinger
Commit message (Collapse)AuthorAgeFilesLines
* Remove 64-bit android_atomic uses from StateQueue.Hans Boehm2014-07-232-12/+8
| | | | | | | | | Use stdatomic.h instead. We're trying to remove android_atomic use wherever possible. The 64-bit uses seem easiest to remove first. This cleans up the code, though not as much as C++ <atomic> would, if it worked everywhere. Change-Id: I3c29bdbd5915cb9d47118834a3a742fe296cf87f
* am 8b187f4a: Merge "Move frameworks/av off <sys/atomics.h>."Elliott Hughes2014-05-221-1/+0
|\ | | | | | | | | * commit '8b187f4acea8d7e517ff9ced32fc7368bdbaa6e0': Move frameworks/av off <sys/atomics.h>.
| * Move frameworks/av off <sys/atomics.h>.Elliott Hughes2014-05-221-1/+0
| | | | | | | | | | Bug: 14903517 Change-Id: I92cdfc618d83fd914cfb558a07b1deae0255fccb
* | am d5516339: Merge "Move frameworks/av from fdprintf to POSIX dprintf."Calin Juravle2014-05-225-34/+34
|\ \ | |/ | | | | | | * commit 'd551633916d3677da4dda10aba6837bdc6803ee0': Move frameworks/av from fdprintf to POSIX dprintf.
| * Move frameworks/av from fdprintf to POSIX dprintf.Elliott Hughes2014-05-225-34/+34
| | | | | | | | | | Bug: 11156955 Change-Id: Ia98cd16b4c1f7be87cf060b7456de4f40896bacb
* | am 85e6e87c: Merge "Restore accidentally-removed NULL timeout."Elliott Hughes2014-05-221-1/+1
|\ \ | |/ | | | | | | * commit '85e6e87c41bba51729cee8958a5c30157c8dc674': Restore accidentally-removed NULL timeout.
| * Restore accidentally-removed NULL timeout.Elliott Hughes2014-05-211-1/+1
| | | | | | | | Change-Id: I933c80fea50950243f109acf8d6350013aaa811f
* | am 3b6da6bf: Merge "Move frameworks/av off private API."Elliott Hughes2014-05-224-8/+8
|\ \ | |/ | | | | | | * commit '3b6da6bfb50a1c0324fb4c87326d3a477944d5fe': Move frameworks/av off private API.
| * Move frameworks/av off private API.Elliott Hughes2014-05-214-8/+8
| | | | | | | | | | Bug: 11156955 Change-Id: Ib3bb9d66a2bf92977c2445b62aa074a2d7a45aea
* | am d084206d: Merge "Move frameworks/av off __futex_syscall3."Elliott Hughes2014-05-222-4/+4
|\ \ | |/ | | | | | | * commit 'd084206d5a4a5364211af46e4201311933e83bfc': Move frameworks/av off __futex_syscall3.
| * Move frameworks/av off __futex_syscall3.Elliott Hughes2014-05-212-4/+4
| | | | | | | | | | Bug: 11156955 Change-Id: I943080bc51b6efa781059b48b5b5ecc4fa287512
* | am ce473c32: Merge "Codec Offload: Add NULL check as mCallbackThread is NULL ↵Eric Laurent2014-05-191-1/+4
|\ \ | |/ | | | | | | | | | | when offloaded HAL is running BLOCKING mode" * commit 'ce473c32705e2d1c5fcc817198101e1220b3c8f7': Codec Offload: Add NULL check as mCallbackThread is NULL when offloaded HAL is running BLOCKING mode
| * Codec Offload: Add NULL check as mCallbackThread is NULLUday Gupta2014-05-131-1/+4
| | | | | | | | | | | | | | | | | | | | when offloaded HAL is running BLOCKING mode b/14897952 Change-Id: I159a33e1181c1a62d80ab4bd3337a35dafaad884 Signed-off-by: Uday Gupta <guptau@broadcom.com> Signed-off-by: Pierre Couillaud <pierre@broadcom.com>
* | am 8fb04d47: Merge "Fix memory leak when filtering commands in ↵Eric Laurent2014-05-062-10/+27
|\ \ | |/ | | | | | | | | | | insertCommand_l()" * commit '8fb04d474ed9e0d1302ae223ee76fafbe5fb41a3': Fix memory leak when filtering commands in insertCommand_l()
| * Merge "Fix memory leak when filtering commands in insertCommand_l()"Eric Laurent2014-05-062-10/+27
| |\
| | * Fix memory leak when filtering commands in insertCommand_l()Jesper Tragardh2014-04-112-10/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When AudioPolicyService::AudioCommandThread::insertCommand_l filters a command from the queue, the AudioCommand* is removed from the vector mAudioCommands by calling mAudioCommands.removeAt(). This will destroy the pointer and compact the vector, but not delete the AudioCommand object. This patch adds code to delete a filtered out AudioCommand and its data object mParam. However, mParam was void* and deleting a void pointer is undefined behavior according to the C++ standard. Therefore, the data classes are modified to inherit from an abstract base class with a virtual destructor. The deletion of non-filtered commands in AudioPolicyService::AudioCommandThread::threadLoop() was already correct, as each case casts mParam to the proper type before deleting. This also fixes AOSP issue 36370. Change-Id: I2b63838aff3608132aa496f964a929f78c4b6267
* | | Merge commit '91820d46b5f3065c2fded3cdf65d305715b33bb1' into HEADBill Yi2014-04-292-3/+4
|\ \ \ | |/ / |/| |
| * | am 36817364: Merge "Add libaudioresampler"Glenn Kasten2014-03-191-11/+18
| |\ \ | | |/ | | | | | | | | | * commit '36817364738d4c45adc3e448fbec02a9611bfeda': Add libaudioresampler
| * | am 77658a06: Merge "AudioPolicyService: malloc/delete pair"Glenn Kasten2014-03-181-1/+1
| |\ \ | | | | | | | | | | | | | | | | * commit '77658a069c81a0d5b4a1b81443b470a3ea64cab0': AudioPolicyService: malloc/delete pair
| * \ \ am 089affb6: Merge "mediaserver and associated services are 32-bit only"Glenn Kasten2014-03-141-0/+1
| |\ \ \ | | | | | | | | | | | | | | | | | | | | * commit '089affb6c2d9ed1e2d49df4be02d30dc490506f9': mediaserver and associated services are 32-bit only
| * \ \ \ am 3c9130a8: Merge "Make frameworks/av 64-bit compatible"Narayan Kamath2014-03-079-45/+58
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | * commit '3c9130a8a12ce962dc8d22e04243b135b9e98b01': Make frameworks/av 64-bit compatible
| * \ \ \ \ am 5930e8eb: Merge "AudioFlinger: Remove code for supporting resampling in ↵Glenn Kasten2014-03-074-26/+5
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fast tracks" * commit '5930e8ebdacf3a59c13eef11fd03658ba58b443e': AudioFlinger: Remove code for supporting resampling in fast tracks
| * \ \ \ \ \ am 4361749d: Merge "AudioTrack: Never try to use the fast path if resampling ↵Glenn Kasten2014-03-072-5/+0
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | is required" * commit '4361749d74113069aafb0620a1189404205c58d0': AudioTrack: Never try to use the fast path if resampling is required
| * \ \ \ \ \ \ am d66cd743: Merge "audioflinger: conform inline ASM to UAL"Glenn Kasten2014-03-071-2/+2
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'd66cd743525cc049033caa3e81cbdf74c72a4556': audioflinger: conform inline ASM to UAL
| * \ \ \ \ \ \ \ am 281dd4e1: audioflinger: fix static track end detectionEric Laurent2014-03-051-9/+2
| |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '281dd4e13309973dbb85bce531f884237e0d8fb0': audioflinger: fix static track end detection
| | * | | | | | | | audioflinger: fix static track end detectionEric Laurent2014-03-051-9/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a static track is not a fast track, prepareTracks_l() must rely on framesReady() to detect end of buffer and remove the track from the active track list. Failing to do so results in the track staying active but not processed by the mixer because in underrun. This leaves the mix buffer content uninitialized and causes the effect process function to accumulate its output onto undefined data. Bug: 12013676. Change-Id: I4b0819a9d93141ac3307b8786fc6a451dd585220
| | * | | | | | | | AudioMixer: Remove tracks from enabledTracks after reseting outTempGaurav Kumar2014-03-051-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If any track goes through AudioMixer::process__genericNoResampling, and its getnextbuffer returns NULL, Then that track is removed by AudioMixer from enabledTracks. Thus if all tracks getnextbuffer return NULL, Then this function doesn't reset outTemp and last buffer in AudioFlinger's mMixBuffer will be repeated and noise is observed. Remove tracks from enabledTracks after reseting outTemp to zero, so that process__genericNoResampling will reset outTemp and noise won't appear. Bug: 12450065 Change-Id: I28996d425838728955f01eb1a00acf6e6dc2dea1 Signed-off-by: Gaurav Kumar <gaurav.kumar@broadcom.com> Signed-off-by: Pierre Couillaud <pierre@broadcom.com>
| * | | | | | | | | am 7e92abea: audioflinger: fix offload write buffer offsetEric Laurent2014-03-051-2/+2
| |\ \ \ \ \ \ \ \ \ | | |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '7e92abeafb184e8a34213d7149592e95a72601b0': audioflinger: fix offload write buffer offset
| | * | | | | | | | audioflinger: fix offload write buffer offsetEric Laurent2014-03-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix current audio HAL write buffer offset calculation which assumes that the frame size is a multiple of 2. ' Bug: 12823725. Change-Id: I0195ed5cfef225a6f114e7dd405a02680bb7254e
| | * | | | | | | | audioflinger: check for condition before waitingHaynes Mathew George2014-03-041-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AsyncCallbackThread must check for any condition that was already been satisfied before waiting. Bug: 11824817 Change-Id: I04683a1f355de4f440106cab47fd916aa39d5e35
| * | | | | | | | | am e0cd1051: audioflinger: update track ready conditionHaynes Mathew George2014-03-051-1/+1
| |\ \ \ \ \ \ \ \ \ | | |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'e0cd1051ed9fea0629745c29020516ae62298461': audioflinger: update track ready condition
| | * | | | | | | | audioflinger: update track ready conditionHaynes Mathew George2014-03-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signal track ready if the track isStopping(). Bug: 12423190 Change-Id: I95e14905df10ebf301e398263478c8ca25d7e2ce
| * | | | | | | | | am e010f65e: audioflinger: Fix for a deadlock in track creationHaynes Mathew George2014-03-052-2/+6
| |\ \ \ \ \ \ \ \ \ | | |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'e010f65e6337267cb15f8894c950a3f64370dd36': audioflinger: Fix for a deadlock in track creation
| | * | | | | | | | audioflinger: Fix for a deadlock in track creationHaynes Mathew George2014-03-042-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AudioFlinger enters a deadlock (with itself) on trying to free a RecordTrack or Track object that failed initialization. Clear this bad object from the caller instead. Bug: 12423233 Change-Id: I926f2beb922a70f6924e593e2bbf1a5b5df85b16
* | | | | | | | | | Merge "AArch64: rewrite audioflinger's sinc resample by intrinsics."Glenn Kasten2014-04-231-151/+165
|\ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | AArch64: rewrite audioflinger's sinc resample by intrinsics.Zhongwei Yao2014-04-101-151/+165
| | |_|_|_|_|_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pass conformance test on armv7 and aarch64, performance test is done on armv7. Compared with original armv7 assembly version, this version has similar result. Here is performance data on pandaboard android4.4 (input: random wave file, unit: Mspl/s, toolchain:gcc 4.8): | | origin(assembly) | current(intrinsics) | C version | |----------------+------------------+---------------------+-----------| | single channel | 6.17 | 7.14 | 3.43 | | double channel | 5.24 | 5.63 | 3.50 | Change-Id: If5670218e1586e9dfd2b8d9c66a6880f3e4808ca
* | | | | | | | | | media: use size_t for integer iterator to Vector::size()Mark Salyzyn2014-04-152-3/+3
|/ / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I0a744dc7815a86a993df9b0623440be620ec8903
* | | | | | | | | Add libaudioresamplerGlenn Kasten2014-03-191-11/+18
| |_|_|_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libaudioresampler is available in both 32-bit and 64-bit, unlike libaudioflinger which is currently 32-bit only. Bug: 8141282 Change-Id: I839f7b4e6aaed6984012ca6d514323f927669df6
* | | | | | | | Merge "AudioPolicyService: malloc/delete pair"Glenn Kasten2014-03-181-1/+1
|\ \ \ \ \ \ \ \ | |_|_|_|_|_|_|/ |/| | | | | | |
| * | | | | | | AudioPolicyService: malloc/delete pairYou Kim2013-09-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I75cd44ac0caccda9148faaa052c9e7a0c06d46d1 Signed-off-by: You Kim <you.kim72@gmail.com>
* | | | | | | | mediaserver and associated services are 32-bit onlyGlenn Kasten2014-03-121-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | also 32-bit only command-line apps Change-Id: I9ac557a8d02bbf6986a9b5c3cdce23d400b306a3
* | | | | | | | audioflinger: Fix for a deadlock in track creationHaynes Mathew George2014-03-062-2/+5
| |_|_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AudioFlinger enters a deadlock (with itself) on trying to free a RecordTrack or Track object that failed initialization. Clear this bad object from the caller instead. Bug: 12423233 Change-Id: I926f2beb922a70f6924e593e2bbf1a5b5df85b16
* | | | | | | Make frameworks/av 64-bit compatibleKévin PETIT2014-02-119-45/+58
| |_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Contains the necessary changes to make frameworks/av build and work on a 64-bit machine. Signed-off-by: Craig Barber <craig.barber@arm.com> Signed-off-by: Kévin PETIT <kevin.petit@arm.com> Signed-off-by: Ashok Bhat <ashok.bhat@arm.com> Signed-off-by: Marcus Oakland <marcus.oakland@arm.com> Change-Id: I725feaae50ed8eee25ca2c947cf15aee1f395c43
* | | | | | Merge "AudioFlinger: Remove code for supporting resampling in fast tracks"Glenn Kasten2014-02-104-26/+5
|\ \ \ \ \ \ | |_|_|_|_|/ |/| | | | |
| * | | | | AudioFlinger: Remove code for supporting resampling in fast tracksMartin Storsjo2014-02-054-26/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This isn't used at the moment. Change-Id: I4e0fb2af5f7d959dbafd5ddb7defa1c6b8e8636a
* | | | | | Merge "AudioTrack: Never try to use the fast path if resampling is required"Glenn Kasten2014-02-102-5/+0
|\ \ \ \ \ \ | |/ / / / / | | | | | / | |_|_|_|/ |/| | | |
| * | | | AudioTrack: Never try to use the fast path if resampling is requiredMartin Storsjo2014-01-312-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unless AudioFlinger was built with FAST_TRACKS_AT_NON_NATIVE_SAMPLE_RATE enabled, AudioFlinger would deny using the fast path (and internally fall back to the normal codepath) when it realized that resampling was required. Since the buffer size calculations within AudioFlinger don't take resampling into account properly (see the calculation below "AUDIO_OUTPUT_FLAG_FAST denied" in audioflinger/Threads.cpp, just below the hunk that this patch changes), make sure AudioTrack doesn't try to use the fast path if resampling is required. This removes the possibility to enable FAST_TRACKS_AT_NON_NATIVE_SAMPLE_RATE in AudioFlinger since it AudioTrack now won't even try to use the fast path for content that requires resampling, regardless of the AudioFlinger configuration. Change-Id: Icf0f8ad50bf0fdb84657f518c0120aa0535f23f9
* | | | | audioflinger: conform inline ASM to UALsynergy dev2014-02-041-2/+2
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | Clang requires some inline ASM to conform to the UAL standards (Unified Assembler Language). This fixes a small issue in this inline asm to allow building. Change-Id: Ifd9b1814343ab5ade636b9401a21d575559dac16
* | | | audioflinger: fix static track end detectionEric Laurent2014-01-301-9/+2
| |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a static track is not a fast track, prepareTracks_l() must rely on framesReady() to detect end of buffer and remove the track from the active track list. Failing to do so results in the track staying active but not processed by the mixer because in underrun. This leaves the mix buffer content uninitialized and causes the effect process function to accumulate its output onto undefined data. Bug: 12013676. Change-Id: Iad72c921fa18d34811abf7d1073890c093a27725
* | | Merge "AudioMixer: Remove tracks from enabledTracks after reseting outTemp"Glenn Kasten2014-01-291-4/+7
|\ \ \