86 Commits

Author SHA1 Message Date
Colin Cross
0ece443558 Update path for libmediandk headers
Platform usages of libmediandk headers are now in media/.

Test: builds
Change-Id: I16385cab86ae9cac225304557df416bbb232ecf3
(cherry picked from commit c8ed45d38f3b42e06c9e0980e133a84181752b5e)
2017-05-05 20:03:42 +00:00
Jean-Michel Trivi
8e48c6939b Refactor SoundPool for appOps handling through PlayerBase
Modified the signature of the abstract volume methods so
  it is clear at the subclass level whether the volume
  command is for a mute or a volume control.
  Changed the implementations in the subclasses
  accordingly.
Removed appOps handling inside SoundPool and made it
  inherit from PlayerBase.
Moved handling of the camera sound restriction from
  SoundPool to PlayerBase.
Added support in SoundPool native implementation for
  muting, as each player has its own volume.

Test: play a long file with SoundPool and enter DnD mode

Bug: 30955183
Bug: 28249605

Change-Id: I0fcd7480f9a455c06aa4f7092486f5c65bc9d7db
2016-11-14 09:36:11 -08:00
Marco Nelissen
20edcbc89c Use libaudioclient
Test: build/boot
Change-Id: I7c730bfd47297f311e00798b5927888ddc3f5062
2016-11-03 10:58:33 -07:00
Chih-Hung Hsieh
ae1aadc04f Fix google-explicit-constructor warnings in soundpool.
* Add explicit keyword to conversion constructors.
Bug: 28341362
Test: build with WITH_TIDY=1

Change-Id: Id1183b2929242cdf1fd0a1558d0e70194a1de9bb
2016-08-29 14:53:50 -07:00
Philip Cuadra
1f1f4bf91d Increase the SoundPoolThread queue size to 128 entries.
SoundPoolThread queue is undersized, bump it up to 128 entries.  This
improves the performance of loading camera by unblocking the thread that
asks SoundPool to load sounds.  Longer term, an API for setting this
number of entries should be added.

Bug: 28087906

Change-Id: Ie5cea5d11844cf035ca13979c188f2c57a8e333a
2016-04-11 23:01:04 +00:00
Andy Hung
0474773aab Stop SoundPool decode if NdkMediaCodec returns null buffers
Also increase error checking.

Bug: 27346228
Change-Id: Ib94505f852344298f88a3fdcbd65ca8031084188
2016-03-29 15:43:02 -07:00
Glenn Kasten
bd2c3d65d6 Use FCC_2 and FCC_8 to highlight channel count assumptions
Bug: 21656069
Change-Id: I20a74575eddf6e28f1777d04eeab396f28bcc0cc
2016-01-05 11:44:12 -08:00
Andy Hung
0275a982ab SoundPool: add lock for findSample access from SoundPoolThread
Sample decoding still occurs in SoundPoolThread
without holding the SoundPool lock.

Bug: 25781119
Change-Id: I11fde005aa9cf5438e0390a0d2dfe0ec1dd282e8
2015-12-01 14:40:26 -08:00
Marco Nelissen
2f01c806e0 Stop SoundPool on error instead of continuing
otherwise we might end up looping forever.

Change-Id: I86e33de5387e3acd148d9bba83d18224bb79fd95
2015-09-15 12:49:07 -07:00
Jean-Michel Trivi
5c768f4c85 SoundPool monitors AppOps for OP_PLAY_AUDIO
Fix performance regression in SoundPool by not checking SoundPool
  can play audio everytime it's about to play.
Instead check for permission in constructor and register a listener
  for changes on OP_PLAY_AUDIO.

Bug 20018833

Change-Id: I4e7a633d23b98653a149681d18a387cd560efe4d
2015-06-10 14:46:26 -07:00
Glenn Kasten
626f0dc73b Merge "Deprecations are warnings not errors" into mnc-dev 2015-05-28 22:51:17 +00:00
Glenn Kasten
85d99546a0 Deprecations are warnings not errors
Change-Id: Ib77f45fdc27ea53f1dd181f48c76810d03f8dcdb
2015-05-28 07:59:36 -07:00
Glenn Kasten
14d226a2cd Add comments to indicate code review was done for bugs
Bug: 20818955
Bug: 20890069
Change-Id: I243205b99b198eb1b5a1a027b27cbb7d5aaaa8db
2015-05-18 13:54:40 -07:00
Andy Hung
a6238ef389 Fix SoundPool.unload() return value
Bug: 21209627
Change-Id: Ifd5c5f349894744c192cad10c5c875882566ec53
2015-05-15 18:43:03 -07:00
Jean-Michel Trivi
6c307879b7 AudioTrack in SoundPool uses audio_attributes_t parameter
Bug 20731155

Change-Id: I62ce9d5c5a88aaf534cfd1861378215f9253248d
2015-05-13 19:26:12 -07:00
Andy Hung
26eca01c49 Check for null codec from AMediaCodec_createDecoderByType
NULL codec can now occur if codec cannot be created.

Bug: 20566134
Change-Id: I08d54e733a01d0614313673dc49a6f5e702633ac
2015-04-29 14:09:45 -07:00
Andy Hung
32ccb69fde Fix SoundPool track recycling for fast tracks
Bug: 19970735
Change-Id: I075d04a688383139484f24ba4be2829c5220c57e
2015-03-30 11:33:33 -07:00
John Spurlock
b4f01b966b Remove the ability to disable audio service.
Running in a configuration without audio service is not fully tested.
Remove the configuration option for now. Also remove unused delegation
layer in SoundPool.

Bug: 19891112
Change-Id: I47be0e32d54b8ef8fa25cf47b85eacf8a4969500
2015-03-24 17:22:13 -04:00
Andy Hung
2bec0fe3a7 Merge "Revert "Revert "soundpool: update sample rate when reusing audiotrack""" 2015-03-17 23:14:24 +00:00
Andy Hung
9bd868fe7a Merge "Revert "Revert "soundpool: reuse channel for same sample if available""" 2015-03-17 23:12:38 +00:00
Andy Hung
bc4537393b Revert "Revert "soundpool: update sample rate when reusing audiotrack""
This reverts commit b801f73343194cd081f675a5dc2b3e90959cf6d1.

Change-Id: I0f6ee7fc981d65040f32e7852a5f66fd391b329d
2015-03-17 23:05:12 +00:00
Andy Hung
0c4b81bd3e Revert "Revert "soundpool: reuse channel for same sample if available""
This reverts commit 18c225d05480e7b80b312ef90d15789b34ce6bbc.

Change-Id: If91b4b0fb94df1d910cbaa0a7944001b2baa7be3
2015-03-17 23:02:00 +00:00
Glenn Kasten
a080050e42 Merge "Revert "soundpool: reuse channel for same sample if available"" 2015-03-10 01:07:32 +00:00
Glenn Kasten
01771a9f7d Merge "Revert "soundpool: update sample rate when reusing audiotrack"" 2015-03-10 01:06:29 +00:00
Glenn Kasten
18c225d054 Revert "soundpool: reuse channel for same sample if available"
This reverts commit 570576b51b8123ab05b36707ec752cf966292ca5.

Bug: 19635137
Change-Id: I8385ac4c151a375c19c3606698081c947b6216e3
2015-03-09 08:40:12 -07:00
Glenn Kasten
b801f73343 Revert "soundpool: update sample rate when reusing audiotrack"
This reverts commit a7d57a6f0068b1e2a0f07ca427cfba198b12a9b9.

Bug: 19635137
Change-Id: I1f53a432936dd3d51459e7d8cd86421bde399150
2015-03-09 08:39:46 -07:00
Andy Hung
a1c3516a24 Fix SoundPool playback of multichannel files.
Bug: 17188507
Change-Id: Ia4e43c7f8889181b998673b75b1f3bbf8c43f429
2015-03-06 15:00:42 -08:00
Dhananjay Kumar
a7d57a6f00 soundpool: update sample rate when reusing audiotrack
User might update playback rate while calling Play on a sample.
Update sample rate if reusing existing audio track.

Change-Id: I7007c335fa405baf663a322408b92b9df53efdb0
Signed-off-by: Glenn Kasten <gkasten@google.com>
2015-03-04 09:22:18 -08:00
Haynes Mathew George
570576b51b soundpool: reuse channel for same sample if available
Reuse channel for same sample if the channel completed
current playback and is not reallocated to another sample,
i.e. not stolen by other sample.

authored-by: Ashish Jain <ashishj@codeaurora.org>

Change-Id: Ibe7ee318c7dc11f3c4fd3a2f57d861318b10973b
Signed-off-by: Glenn Kasten <gkasten@google.com>
2015-03-04 09:16:28 -08:00
Marco Nelissen
06524dccbc Fix memory leak
Change-Id: Id691f9b32f9daeb23a01b17c5418b4d74a294cda
2015-02-10 15:45:23 -08:00
Marco Nelissen
6cd6110773 Fix printf format
Change-Id: Ied2f10bb59fe0e13b23bf1f9913ab3b081348a28
2015-01-27 12:17:48 -08:00
Marco Nelissen
372be8970c Make SoundPool use MediaCodec
Bug: 18239054
Change-Id: Ia144fc1bbb0d2787638ee972e2224339b4965310
2015-01-23 12:49:36 -08:00
Dariusz Iwanoczko
ed86e19af2 Race-condition in SoundPool during release
There is race between SoundPoolThread and SoundPool / AudioManager
threads during releasing SoundPool.
AudioManager deletes a global reference before setting SoundPool
callback to NULL. If, at that time, a call to the SoundPool::notify
fuction happens then mCallback is valid but mUserData is not.

The following log will show up to indicate the problem:
  JNI ERROR (app bug): accessed deleted global reference 0xXXXXXXXX

This fix is to clear the SoundPool's callback before releasing global
reference.

Change-Id: I5e6d647edc0444340db879428048e2c0a068a8b4
2014-11-11 13:12:53 +01:00
Andreas Gampe
5a15d0d31b Frameworks/base: Wall Werror in media/jni
Turn on -Wall -Werror in media/jni. Fix warnings.

Change-Id: I9da54ad379d8172ee535b52ee2b0637a2533f4e3
2014-11-10 18:19:40 -08:00
Jean-Michel Trivi
55a30c41b6 AudioAttributes for SoundPool
Add support for building a SoundPool instance and specify
 the AudioAttributes.
Remove SRC quality which was never implemented, while leaving
 room for supporting it later through the Builder pattern.
Remove stream types.
Update AudioService's use of SoundPool to the new scheme.

Change-Id: Ie51e4008684e5ba25f9b7368098e4f20266a15c7
2014-07-20 18:12:00 -07:00
John Spurlock
1af30c7ac4 Add stream-level suppression to vibrate/audio services.
- Add new audio restriction layer to app-ops.  Restrictions add
additional constraints to audio operations at a stream-level.
Restrictions do not affect the persistable state, and are purely
additive: that is, they can only impose additional contstraints, not
enable something that has already been disabled.  Restrictions
also support a whitelisted set of exempt package names.

- Add new audio stream-level checks to app-ops.

- Implement a provisional OP_PLAY_AUDIO suppression to three
java entry points MediaPlayer, AudioTrack, & SoundPool.

- Enhance vibrator api to take stream information as an optional
hint - the constants correspond to AudioManager stream types.
OP_VIBRATE now supports the stream-level restriction check.

- Simplify Vibrator subclasses by adding default implementations
for two .vibrate calls.

- Migrate NoMan's zen-mode control to use the new app-ops
stream-level restriction mechanism.

Change-Id: Ifae8952647202f728cf1c73e881452660c704678
2014-03-19 15:32:51 -04:00
Ashok Bhat
075e9a19ce AArch64: Use long for pointers in media classes
For storing pointers, long is used in media classes,
as native pointers can be 64-bit.

In addition, some minor changes have been done
to conform with standard JNI practice (e.g. use
of jint instead of int in JNI function prototypes)

Change-Id: Idc4ca0124d03df7f9cef412488abafd020e5e774
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
2014-01-15 13:09:27 +00:00
Ying Wang
28af35e8cd resolved conflicts for merge of a976bddd to master
Change-Id: I64e1cbfb0eee891ce4d1eee40eefdcedcc501f7f
2013-04-09 23:21:42 -07:00
Ying Wang
d685894212 Add liblog
Bug: 8580410
Change-Id: I746aa8258866508c3a725d0773faf4518096548f
2013-04-09 21:54:12 -07:00
Dan Morrill
e4d9a01bfc Phase 1 of refactoring SystemServer.
SystemServer is currently a monolithic class that brings up key system
services. This change is the first phase of refactoring it to be more
configurable. Specifically, it adds a set of on/off switches used to control
startup of individual services. Future plans include finer grained controls
and a more explicit and consistent startup sequence for these services.

Change-Id: I7299f5ce7d7b74a34eb56dffb788366fbc058532
2013-04-04 09:49:22 -07:00
Glenn Kasten
b24a1b7f99 Remove obsolete references to libmedia_native
Bug: 6654403
Change-Id: I05d8e81fd31617b587fd1228a303c40db83e7f2d
2012-10-30 10:59:52 -07:00
James Dong
ba4d043331 frameworks base Android.mk file changes
Change-Id: I7459b9e959a60751b8fa6e0d893cb2c820c064ce
2012-03-28 11:03:25 -07:00
Eric Laurent
f5e1812549 reorganize SoundPool and JetPlayer code.
Reorganize SoundPool and JetPlayer code to be ready for the
creation of libmedia_native.

Split SoundPool between libsoundpool (JNI) and libmedia(sound pool implementation).
Remove dependencies on nativehelper/jni.h from JetPlayer.

Change-Id: I130c6014173b714329929dd82c5dfb70b757a610
2012-03-26 10:54:41 -07:00
Glenn Kasten
ae75f994cc Add libmedia_native
Change-Id: Ib8cff8abd73723b793f08da99ad59549f219e0e7
2012-03-16 11:51:30 -07:00
Glenn Kasten
28b269f341 Use audio_policy_output_flags_t consistently
This affects:
 - IAudioFlinger::openOutput
 - AudioTrack::AudioTrack
 - AudioTrack::set
 - apps that call these

Change-Id: I26fb281bac6cb87593d17697bc9cb37a835af205
2012-03-09 15:32:22 -08:00
Glenn Kasten
b3db213eb5 Update comments
We no longer put the filename at start of file.

Change-Id: Ic435b159a23105681e3d4a6cb1ac097bc853302e
2012-02-14 09:17:59 -08:00
Glenn Kasten
1137be1a68 Follow raw pointer and sp<> conventions
Unconditional delete for raw pointers.
Use "if (sp != 0)" not "if (sp.get() != 0)" or "if (sp != NULL)".
Use "if (raw != NULL)" not "if (raw)".

Change-Id: I531a8da7c37149261ed2f34b862ec4896a4b785b
2012-02-10 13:48:44 -08:00
Glenn Kasten
bc1d77b6cb Use audio_stream_type_t consistently
At native level it was a mixture of audio_stream_type_t, int, uint32_t,
and uint8_t.  Java is still int.  Also fixed a couple of hard-coded -1
instead of AUDIO_STREAM_DEFAULT, and in startToneCommand a hard-coded 0
instead of AUDIO_STREAM_VOICE_CALL.

Change-Id: Ia33bfd70edca8c2daec9052984b369cd8eee2a83
2012-01-13 10:20:14 -08:00
Glenn Kasten
1c66547ba2 Merge "Use audio_format_t consistently" 2012-01-12 10:30:28 -08:00
Steve Block
3762c31172 Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE
See https://android-git.corp.google.com/g/#/c/157220

Bug: 5449033
Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
2012-01-08 13:19:13 +00:00