375 Commits

Author SHA1 Message Date
Glenn Kasten
8cf6d6f148 Merge "Clean up AudioTrack::mActive and stopped()" 2012-01-09 10:24:40 -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
Steve Block
8564c8da81 Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGE
See https://android-git.corp.google.com/g/157065

Bug: 5449033
Change-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69
2012-01-06 10:07:54 +00:00
Glenn Kasten
e6810ffaa1 Clean up AudioTrack::mActive and stopped()
mActive is protected by mLock; volatile is meaningless on SMP.

Fixed a couple of places where mActive was accessed without a lock:
 - stopped()
 - processAudioBuffer()

Added stopped_l() for cases where we already hold the lock.

Made mActive a bool not int.

Moved down a lock in setPosition that was being acquired too early.

Change-Id: I73ff368e991c0db9f9472df0b3f96fd33fcc7311
2012-01-05 11:55:24 -08:00
Glenn Kasten
a8719ad9d5 Merge "Use the standard CC_LIKELY and CC_UNLIKELY macros" 2012-01-05 07:38:29 -08:00
Glenn Kasten
e80a4ccd2b 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
2012-01-05 07:33:45 -08:00
Steve Block
5baa3a62a9 Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGE
See https://android-git.corp.google.com/g/156016

Bug: 5449033
Change-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298
2012-01-03 22:38:27 +00:00
Glenn Kasten
25adf47477 Merge "Fix indentation and whitespace" 2011-12-14 17:35:36 -08:00
Glenn Kasten
da7923ac29 Merge "Audio C++ comments" 2011-12-14 16:56:31 -08:00
Glenn Kasten
fb2ab9efc3 Fix indentation and whitespace
Use git diff -w to verify.

Change-Id: Ib65be0a1ecf65d6cad516110604e3855bf68a638
2011-12-14 16:54:05 -08:00
Glenn Kasten
ad2ac95d06 Merge "Remove unnecessary this->" 2011-12-14 15:40:43 -08:00
Glenn Kasten
46f54359b6 Merge "Remove redundant clear()" 2011-12-14 15:40:01 -08:00
Glenn Kasten
e5fb263a36 Audio C++ comments
Change-Id: I84906ebb9dfcfa5b96b287d18364b407f02a30c1
2011-12-14 14:38:26 -08:00
Glenn Kasten
51e445f701 Remove redundant clear()
Change-Id: Ie5e4e63cbc8fa85ef50451dddf8f149fa864b132
2011-12-14 13:31:40 -08:00
Glenn Kasten
db298a4c66 Remove unnecessary this->
Change-Id: I72038f5d4568f0633d3e4ab90f4b67e2dd22c332
2011-12-14 13:09:08 -08:00
Glenn Kasten
1c50a789ca AudioTrack::setVolume check range
Change-Id: Ie182bf0f741f1f49f68c02a1e7437a2a34d34fc5
2011-12-14 13:06:57 -08:00
Andreas Huber
848bffd8fa am 074133b2: am 351143fb: Merge "Updated (internal) API for IStreamSource to signal discontinuities" into ics-mr1
* commit '074133b260f8d12e484e93b9aa5a33a4983b7349':
  Updated (internal) API for IStreamSource to signal discontinuities
2011-11-29 16:33:02 -08:00
Andreas Huber
a10613fea8 Updated (internal) API for IStreamSource to signal discontinuities
Change-Id: Idd4b9d8e7cec16b3e3c91c70e75144d42be30f96
related-to-bug: 5553055
2011-11-29 11:59:10 -08:00
Marco Nelissen
7ff7821a60 am d4b22ab4: status_t != bool
* commit 'd4b22ab4889f9b1885bfc0dc45667c846a171a98':
  status_t != bool
2011-11-18 15:07:21 -08:00
Marco Nelissen
d4b22ab488 status_t != bool
b/5567433

Change-Id: I255ab8c3b0b5e0ea6a5cc7c05df757c667f3855e
2011-11-18 14:21:34 -08:00
Marco Nelissen
1cad15207d status_t != bool
b/5567433

Change-Id: I255ab8c3b0b5e0ea6a5cc7c05df757c667f3855e
2011-11-18 13:10:56 -08:00
Glenn Kasten
b447e9ce1d Merge "JetPlayer uses C++ Thread not createThreadEtc" 2011-11-17 07:14:29 -08:00
Glenn Kasten
9c0227a63c JetPlayer uses C++ Thread not createThreadEtc
This permits leveraging future improvements to Thread.

Change-Id: I60deed8565ed54f13d9f770c76504e411b154276
2011-11-16 15:25:30 -08:00
Glenn Kasten
99d544332a Bug 4903178 Restore priority and cgroup on stop
On AudioTrack and AudioRecord stop or failed start, restore the priority
and cgroup of the caller to their previous values, rather than forcing
to NORMAL.  Dependent on new thread APIs.

Also fixes bug where priority was set to AUDIO but cgroup not set.

Change-Id: Ib83893918fb4fdf57c6b87884b51038997a631d8
2011-11-16 14:52:55 -08:00
Hong Teng
cc6c20f532 am 716747f7: am 481ffa50: Merge "Fix for issue 5309336 -add videoeditor maximum prefetch YUV frames in media_profiles.xml to limit the total memory usage." into ics-mr1
* commit '716747f7cb29b45e41c2870f12d39095f4ed80c8':
  Fix for issue  5309336 -add videoeditor maximum prefetch YUV frames in media_profiles.xml to limit the total memory usage.
2011-11-15 13:07:07 -08:00
Hong Teng
7eb5319703 Fix for issue 5309336
-add videoeditor maximum prefetch YUV frames in media_profiles.xml to limit the total memory usage.

Change-Id: I41ffbc192fcce4c7635e5b0a1f2835852e5ee509
2011-11-14 13:02:59 -08:00
Andreas Huber
ea427b0c87 resolved conflicts for merge of 26f70db9 to master
Change-Id: Ib1536b1a4c9eeff80e0726b3e61cee12057cd120
2011-11-08 10:40:20 -08:00
Andreas Huber
95be24585f Remove surface legacy APIs and code.
All surfaces are now supported through surface textures.

Change-Id: I95dd823e7099c0c32a48a1121624149dcc29d9c6
2011-10-28 09:39:23 -07:00
Jamie Gennis
e396e993a5 am fc9592f8: am 08479cee: Merge "Stagefright: ANW::connect in MediaPlayerService" into ics-mr0
* commit 'fc9592f8a5f2f75207e5e532655ac294eb2b334b':
  Stagefright: ANW::connect in MediaPlayerService
2011-10-28 02:53:20 +00:00
Jamie Gennis
2fa0ac2e44 Stagefright: ANW::connect in MediaPlayerService
This change moves the ANativeWindow connect and disconnect logic from
MediaPlayer to MediaPlayerService::Client.

Bug: 5502654
Change-Id: Ifc43b98b01ad8f35d62d7ece43110724ec7fda3d
2011-10-26 18:40:00 -07:00
Steve Block
71f2cf116a Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF) DO NOT MERGE
See https://android-git.corp.google.com/g/#/c/143865

Bug: 5449033
Change-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a
2011-10-26 09:57:54 +01:00
Jamie Gennis
6607b39baa Stagefright: idle OMX after ANW errors
This change fixes an issue in Stagefright where the state of an OMXCodec
object can get out of sync with the state of the OMX component.  In
particular, if one of the ANativeWindow functions failed and put the
OMXCodec into the ERROR state, this would cause Stagefright to skip
doing the Executing -> Idle transition.  Without this transition the
freeBuffersOnPort call would never be made, and the MediaBuffers would
end up being leaked (which would also leak the Gralloc buffers they
reference).

Bug: 5333695
Change-Id: I85ea0cf92d18e7ef6d35c7d1e2a7b4e2c9745d34
2011-10-19 21:22:19 -07:00
James Dong
07b9ae3312 Add QVGA resolution to CamcorderProfile
Change-Id: Icebbafb68d8164370f98a2c36699845d10ef081b
related-to-bug: 5145483
2011-09-19 19:32:26 -07:00
Eric Laurent
3f0c821740 Merge "Issue 5298399: Lost speech after a crash in gTalk." 2011-09-13 17:50:31 -07:00
Eric Laurent
7e8626fd75 Issue 5298399: Lost speech after a crash in gTalk.
Fixed problem in AudioTrack::restoreTrack_l() causing a permanent
failure if the IAudioTrack interface to AudioFlinger could not be
restored at the first attempt.

Change-Id: I039d4fe2dca8d3baf71f1a6c51119f27a67b6611
2011-09-13 17:33:29 -07:00
Guang Zhu
973f553be4 Make MediaScanner skip certain directories
The list of directories to skip are configurable via setprop.
The main motivation is that some test data folder takes long time
to scan, and media scanner may compete for CPU time against perf
tests therefore skewing the results.

Bug: 5263115
Change-Id: I568213e2a4babf6033021c1d336ef0347c0e3315
2011-09-09 15:36:42 -07:00
Eric Laurent
11e2e5dece Merge "AudioTrack: extend callback thread sleep time" 2011-09-08 16:07:40 -07:00
Eric Laurent
f1d360ac86 AudioTrack: extend callback thread sleep time
Do not force wake up the AudioTrack thread every 10ms if no timed
events (loop, markers..) have to be processed.
This will help reduce power consumption.

Change-Id: Icb425b13800690008dd07c27ffac84739e3dbba3
2011-09-08 15:18:37 -07:00
Glenn Kasten
27f4bbb676 Bug 5270905 fix MediaPlayer with IStreamSource
Change-Id: Ia8a6381a6c88b4a0a1378aab03f5275f0fa1125a
2011-09-07 14:42:37 -07:00
Eric Laurent
b6738fc6a5 Merge "Issue 5247986: Battery drain due to audio wakelock" 2011-09-06 14:53:59 -07:00
Eric Laurent
b0808f9c43 Issue 5247986: Battery drain due to audio wakelock
The problem occurs when activating or deactivating A2DP connection
while SoudPool has a channel active. This can happen quite frequently now
that the UI sound effects are enabled by default.
If PCM data is remaining in the AudioTrack buffer when it is restroyed and
re-created on the new AudioFlinger output thread, this data is flushed.
As a consequence, no underrun or request for new data callback is sent to
SoundPool and the sound channel remains active for ever as the end of the
sample is never detected.

Change-Id: I13e0c11e4ce3f83bff7f58d347ca814b6a86712b
2011-09-06 14:37:20 -07:00
Dave Burke
a28279be32 Handle setDataSource failures properly. #5261671
Change-Id: Iea0aa474d1939db23da9aabdfae2081e834f30d9
2011-09-06 20:39:47 +01:00
Eric Laurent
dca56b9432 Fix issue 5252593: any app can restart the runtime
Replace null device address string by empty sting.

Change-Id: I285c35f3345334e6d2190493b1a8a5aca1a361a4
2011-09-02 15:59:50 -07:00
Dave Burke
fc301b0bb5 Require INTERNET permission for network-based content.
Bug #1870981

Change-Id: Ia3ad166390c4d60cea19c3783895b078a2c4c15f
2011-09-02 11:26:59 +01:00
Eric Laurent
05ce094164 226483: A2DP connected, but music out to speaker
When the A2DP headset is connected, there is a possible
race condition when the audio tracks are moved from
the mixer thread attached to the speaker output to the thread
attached to A2DP output.
As the request to clear the stream type to output mapping cache in
the client process is asynchronous, it is possible that the flag
indicating to the client audio track to re-create the IAudioTrack
on the new thread is processed before the cache is invalidated.
In this case, the track will be attached to the old thread and
music will continue playing over the device speaker instead of being
redirected to A2DP headset.

Change-Id: Ib2ce1eb5320eaff83287b93779061bf4e7a330df
2011-08-30 10:19:38 -07:00
Jean-Michel Trivi
22cb204cbb Bug 4364249 Play position is 0 after flushing AudioTrack
AudioTrack::stop() is not synchronous, so a stop() followed
 by flush(), which is synchronous, will not always report
 a playhead position of 0 after being called.
This CL adds a flag to mark a track as flushed, and report the
 correct playhead position in this state.
Bug 5217011 has been created to address the real issue in the
 future, where flush could be made synchronous, to properly
 address bug 4364249.

Change-Id: Icf989d41a6bcd5985bb87764c287f3edb7e26d12
2011-08-25 17:33:49 -07:00
Rajneesh Chowdury
3ced044154 Fix for 4142219 Don't hard code platform-specific limitations (Jni/ Java)
Also fixes 5118207 add other video codec support for video editor export.

Change-Id: If72427173bd8ff684af07ba00f4425c1deef29c6
2011-08-19 14:34:47 -07:00
Eric Laurent
6752ec80b2 Audio effects: track CPU and memory use separately
Before this change, CPU and memory usage for an audio effect were
registered and checked against the limit by audio policy manager
upon effect instantiation. Even if an effect was not enabled
it would prevent another effect to be created if the CPU load budget
was exceeded, which was too restrictive.

This change adds a method to register/unregister CPU load only when
an effect is enabled or disabled.
It also adds a mechanism to place all effects on the global output mix
in suspend state (disabled) when an effect is enabled on a specific session.
This will allow applications using session effects to have the priority
over others using global effects.

Also fixes some issues with suspend/restore mechanism:
- avoid taking actions when an effect is disconnected and was not enabled.
- do not remove a session from the suspended sessions list when corresponding
effect chain is destroyed.

Change-Id: I5225278aba1ae13d0d0997bfe26a0c9fb46b17d3
2011-08-11 14:33:45 -07:00
Marco Nelissen
c74b93fdf3 Keep effects sessions active when the caller dies.
Don't remove effects until the session they are in goes away or all
AudioEffects have been explicitly released. This allows the control
panel process to die without stopping the effects.

Change-Id: I4496e5df080230ca1af149dec95c1309ab8ea888
2011-08-09 10:21:10 -07:00
Gloria Wang
ba5ddf5cfc Merge "Fix ordering assumption of argument evaluation." 2011-08-02 09:22:05 -07:00