• Home
  • History
  • Annotate
  • only in /frameworks/av/media/libmedia/
History log of /frameworks/av/media/libmedia/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
838be3907fc58eab119d7093a3d73be7267bd4d2 23-May-2017 Hassan Shojania <shojania@google.com> Modular DRM for MediaPlayer: L3 playback fails at OMX mmap; preparDrm preparing

Bug: 34559906
Bug: 38390836
Bug: 38039230
Bug: 62194380

Test: GTS Tests
Change-Id: I51e2479f745a4c3e271628abdd79efcb97368ec2
ediaplayer.cpp
0375da69b221b05c3e44c49b1ad2f3b93a6bf2f9 23-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Check the return value from allocateSecureBuffer" into oc-dev
c7455a0bb4909d1d48c86e4a9b699ddda65f87f4 20-May-2017 Pawin Vongmasa <pawin@google.com> Check the return value from allocateSecureBuffer

Test: Small CtsMediaTestCases

Test: com.google.android.media.gts.WidevineCodecStressTests in
GtsMediaTestCases

Bug: 38452958
Change-Id: Iba53c3fc144a3ee7d1f54b62ab3836b1a3a46dc6
mx/1.0/WOmxNode.cpp
08f4e4f6f9f73ea8e856c5328d3be8bad7f4c53e 18-May-2017 Pawin Vongmasa <pawin@google.com> Move media_profiles_V1_0.dtd to hardware/interfaces

Test: media_profiles_V1_0.dtd exists in system/etc
Bug: 36430270
Merged-In: Ib3d1defcb17fa247bf1b1be7d3667cb086c86b4a
Change-Id: Ib3d1defcb17fa247bf1b1be7d3667cb086c86b4a
ndroid.mk
ml/media_profiles_V1_0.dtd
b5bfa8fdd50307af30fd00b84bcd48e255fe908b 09-May-2017 Pawin Vongmasa <pawin@google.com> Update schema for media_profiles_V1_0.xml

Test: Small CtsMediaTestCases
Test: "xmllint --valid ..." now produces no error

Bug: 36430270
Merged-In: I1270a9357d444047f463e3da25510ae69930a451
Change-Id: I1270a9357d444047f463e3da25510ae69930a451
ml/media_profiles_V1_0.dtd
d7db05b2fea5125d7833fa87a445ec819c54e10d 03-May-2017 Pawin Vongmasa <pawin@google.com> Add search paths for xml files for MediaProfiles

This CL also adds versions to xml files. The default name for
the xml file is changed from media_profiles.xml to
media_profiles_V1_0.xml.

Test: Small CtsMediaTestCases
Test: Manual use of video recording and playback in Camera app
Bug: 36430270
Merged-In: Idd0cd07f358fb4eda8ce5b31adf62a7313eccbbf
Change-Id: Idd0cd07f358fb4eda8ce5b31adf62a7313eccbbf
ediaProfiles.cpp
nclude/media/MediaProfiles.h
fec50ceef5be99f410de5feaa44494be4e10f4fb 04-May-2017 Pawin Vongmasa <pawin@google.com> Add media_profiles_V1_0.dtd

media_profiles_V1_0.dtd is the schema file for media_profiles_V1_0.xml.

Test: media_profiles_V1_0.dtd exists in system/etc

Bug: 36430270
Merged-In: If456618dfa73274c8e5b998818139840a5258ea8
Change-Id: If456618dfa73274c8e5b998818139840a5258ea8
ndroid.mk
ml/media_profiles_V1_0.dtd
322db26b76f7511c6d73f34a92a4e54840fcb876 28-Apr-2017 Wei Jia <wjia@google.com> IMediaExtractor: ensure users to check returned value by getTrack.

Test: fix the crash from the stream in the bug.
Bug: 37777357
Change-Id: Ia99907c396a2074a9419db9b8103a9325b290169
nclude/media/IMediaExtractor.h
22dc508717c7767927064ec7c152def99e54adcb 20-Apr-2017 Pawin Vongmasa <pawin@google.com> Make IGraphicBufferSource::setTimeLapseConfig take fps

Test: Manual use of Camera, Movies, Photos and YouTube apps.

Test: With CtsMediaTestCases.apk installed,
adb shell am instrument -e size small -w
'android.media.cts/android.support.test.runner.AndroidJUnitRunner'

Bug: 37302530
Change-Id: Id0d4f7fed57349a2f5484f6b6264981471e8f022
idl/android/IGraphicBufferSource.aidl
mx/1.0/WGraphicBufferSource.cpp
fc59a24fa7d272be1e09a4b5d31bc89b3d16aeaa 19-Apr-2017 Andy Hung <hunga@google.com> Merge "Reduce memory usage by some extractors." into oc-dev
88454e41f034404d0745fded18b5a3a736135369 13-Mar-2017 yuedl1 <yuedl1@lenovo.com> Reduce memory usage by some extractors.

Occurs for some extractors that use shared memory without MediaBufferObserver.
Check with high resolution MKV.

Play a mkv file continuously and check file descriptor count.
adb shell lsof | grep mediae | wc
adb shell lsof | grep medias | wc

Test: Photos with mkv.
Bug: 36359517
Change-Id: I8719b628406a838ee091499347b219a8a4736a25
Signed-off-by: yuedl1 <yuedl1@lenovo.com>
MediaSource.cpp
005f9e289f2db7fb2ce9a8a807d5a716917a722d 18-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix libmedia includes." into oc-dev
8253f44c3d0d8a7003dd2e6f728f9e3d63927727 18-Apr-2017 Steven Moreland <smoreland@google.com> Fix libmedia includes.

Test: works with BOARD_VNDK_VERSION := current
Bug: 33241851
Change-Id: Idb6319563dfe83807d32ee54eb2fe66346c9f54a
ndroid.mk
nclude/AVSyncSettings.h
nclude/BufferProviders.h
nclude/BufferingSettings.h
nclude/CharacterEncodingDetector.h
nclude/Crypto.h
nclude/CryptoHal.h
nclude/Drm.h
nclude/DrmHal.h
nclude/DrmPluginPath.h
nclude/DrmSessionClientInterface.h
nclude/DrmSessionManager.h
nclude/ExtendedAudioBufferProvider.h
nclude/ICrypto.h
nclude/IDataSource.h
nclude/IDrm.h
nclude/IDrmClient.h
nclude/IHDCP.h
nclude/IMediaCodecList.h
nclude/IMediaCodecService.h
nclude/IMediaDeathNotifier.h
nclude/IMediaDrmService.h
nclude/IMediaExtractor.h
nclude/IMediaExtractorService.h
nclude/IMediaHTTPConnection.h
nclude/IMediaHTTPService.h
nclude/IMediaLogService.h
nclude/IMediaMetadataRetriever.h
nclude/IMediaPlayer.h
nclude/IMediaPlayerClient.h
nclude/IMediaPlayerService.h
nclude/IMediaRecorder.h
nclude/IMediaRecorderClient.h
nclude/IMediaSource.h
nclude/IOMX.h
nclude/IRemoteDisplay.h
nclude/IRemoteDisplayClient.h
nclude/IResourceManagerClient.h
nclude/IResourceManagerService.h
nclude/IStreamSource.h
nclude/JetPlayer.h
nclude/LinearMap.h
nclude/MediaCodecBuffer.h
nclude/MediaCodecInfo.h
nclude/MediaDefs.h
nclude/MediaMetadataRetrieverInterface.h
nclude/MediaProfiles.h
nclude/MediaRecorderBase.h
nclude/MediaResource.h
nclude/MediaResourcePolicy.h
nclude/MemoryLeakTrackUtil.h
nclude/Metadata.h
nclude/MidiDeviceInfo.h
nclude/MidiIoWrapper.h
nclude/Modulo.h
nclude/OMXBuffer.h
nclude/OMXFenceParcelable.h
nclude/PluginLoader.h
nclude/RecordBufferConverter.h
nclude/RingBuffer.h
nclude/SharedLibrary.h
nclude/SingleStateQueue.h
nclude/StringArray.h
nclude/TypeConverter.h
nclude/Visualizer.h
nclude/convert.h
nclude/media/AVSyncSettings.h
nclude/media/BufferProviders.h
nclude/media/BufferingSettings.h
nclude/media/CharacterEncodingDetector.h
nclude/media/Crypto.h
nclude/media/CryptoHal.h
nclude/media/Drm.h
nclude/media/DrmHal.h
nclude/media/DrmPluginPath.h
nclude/media/DrmSessionClientInterface.h
nclude/media/DrmSessionManager.h
nclude/media/ExtendedAudioBufferProvider.h
nclude/media/ICrypto.h
nclude/media/IDataSource.h
nclude/media/IDrm.h
nclude/media/IDrmClient.h
nclude/media/IHDCP.h
nclude/media/IMediaCodecList.h
nclude/media/IMediaCodecService.h
nclude/media/IMediaDeathNotifier.h
nclude/media/IMediaDrmService.h
nclude/media/IMediaExtractor.h
nclude/media/IMediaExtractorService.h
nclude/media/IMediaHTTPConnection.h
nclude/media/IMediaHTTPService.h
nclude/media/IMediaLogService.h
nclude/media/IMediaMetadataRetriever.h
nclude/media/IMediaPlayer.h
nclude/media/IMediaPlayerClient.h
nclude/media/IMediaPlayerService.h
nclude/media/IMediaRecorder.h
nclude/media/IMediaRecorderClient.h
nclude/media/IMediaSource.h
nclude/media/IOMX.h
nclude/media/IRemoteDisplay.h
nclude/media/IRemoteDisplayClient.h
nclude/media/IResourceManagerClient.h
nclude/media/IResourceManagerService.h
nclude/media/IStreamSource.h
nclude/media/JetPlayer.h
nclude/media/LinearMap.h
nclude/media/MediaCodecBuffer.h
nclude/media/MediaCodecInfo.h
nclude/media/MediaDefs.h
nclude/media/MediaMetadataRetrieverInterface.h
nclude/media/MediaProfiles.h
nclude/media/MediaRecorderBase.h
nclude/media/MediaResource.h
nclude/media/MediaResourcePolicy.h
nclude/media/MemoryLeakTrackUtil.h
nclude/media/Metadata.h
nclude/media/MidiDeviceInfo.h
nclude/media/MidiIoWrapper.h
nclude/media/Modulo.h
nclude/media/OMXBuffer.h
nclude/media/OMXFenceParcelable.h
nclude/media/PluginLoader.h
nclude/media/RecordBufferConverter.h
nclude/media/RingBuffer.h
nclude/media/SharedLibrary.h
nclude/media/SingleStateQueue.h
nclude/media/StringArray.h
nclude/media/TypeConverter.h
nclude/media/Visualizer.h
nclude/media/convert.h
nclude/media/mediametadataretriever.h
nclude/media/mediaplayer.h
nclude/media/mediarecorder.h
nclude/media/mediascanner.h
nclude/mediametadataretriever.h
nclude/mediaplayer.h
nclude/mediarecorder.h
nclude/mediascanner.h
fbd30d01ce73e50eb334a0ab2ff73a0830d79790 18-Apr-2017 Steven Moreland <smoreland@google.com> libmedia_helper: vendor_available

By setting vendor_available, the following may become true:

* a prebuilt library from this release may be used at runtime by
in a later releasse (by vendor code compiled against this release).
so this library shouldn't depend on runtime state that may change
in the future.
* this library may be loaded twice into a single process (potentially
an old version and a newer version). The symbols will be isolated
using linker namespaces, but this may break assumptions about 1
library in 1 process (your singletons will run twice).

Background:

This means that these modules may be built and installed twice --
once for the system partition and once for the vendor partition. The
system version will build just like today, and will be used by the
framework components on /system. The vendor version will build
against a reduced set of exports and libraries -- similar to, but
separate from, the NDK. This means that all your dependencies must
also mark vendor_available.

At runtime, /system binaries will load libraries from /system/lib*,
while /vendor binaries will load libraries from /vendor/lib*. There
are some exceptions in both directions -- bionic(libc,etc) and liblog
are always loaded from /system. And SP-HALs (OpenGL, etc) may load
/vendor code into /system processes, but the dependencies of those
libraries will load from /vendor until it reaches a library that's
always on /system. In the SP-HAL case, if both framework and vendor
libraries depend on a library of the same name, both versions will be
loaded, but they will be isolated from each other.

It's possible to compile differently -- reducing your source files,
exporting different include directories, etc. For details see:

https://android-review.googlesource.com/368372

None of this is enabled unless the device opts into the system/vendor
split with BOARD_VNDK_VERSION := current.

Bug: 36426473
Bug: 36079834
Test: m -j libmedia_helper
Test: attempt to compile with BOARD_VNDK_VERSION := current
Change-Id: I21fc594e8e1bf62d73c7b993b6a734c2fa24175f
ndroid.bp
bf0cfe7f240553582186586f3a50b5c44db442f2 14-Apr-2017 Steven Moreland <smoreland@google.com> Add libmedia_headers library.

Bug: 33241851
Test: build with BOARD_VNDK_VERSION := current
Change-Id: I6239b58890cabae69f27daf14aa2fb19d8bffe5d
ndroid.bp
0de04e850beced076e4b1fcf0e513255f62a7d85 12-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Remove setQuirks() from IOMXNode and IOmxNode." into oc-dev
1b8ecbb25f142904e6da47171738b55b6be69e78 08-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "NuPlayer: notify client of playback error of individual track." into oc-dev
6ed07dc02d4240f94e7fb0786fb263bdc7a610ba 05-Apr-2017 Pawin Vongmasa <pawin@google.com> Remove setQuirks() from IOMXNode and IOmxNode.

Test: Media post-submit tests on Pixel phone.
Test: Manual use of Camera, Photos, Play Movies and YouTube apps.
Bug: 36952714
Change-Id: I230df51c2d658e29cffec369ba622e336c3402d2
OMX.cpp
nclude/IOMX.h
mx/1.0/WOmxNode.cpp
464d9fbf52f37b2ec465acad65c6342aa35db457 06-Apr-2017 Scott Randolph <randolphs@google.com> Merge "Use explicit .c_str() for hidl_string" into oc-dev
0f0c9b5007ff694d05a91c28359db0553e4dd061 05-Apr-2017 Ray Essick <essick@google.com> Move MediaMetrics into its own library

Changes for the new HAL structure have brought about a build time
circular dependency between libmedia and libmediadrm. This set of
changes the media metrics code into its own library and arranges
for the relevant consumers of the media metrics code to link
to this new library (where they had previously picked it up by
including libmedia).

Bug: 36990807
Test: build, boot.
Change-Id: I81768eecca88d5e59e6e6e547f29308a94e30c7b
ndroid.mk
MediaAnalyticsService.cpp
ediaAnalyticsItem.cpp
nclude/IMediaAnalyticsService.h
nclude/MediaAnalyticsItem.h
686e8e57299151127c4ae30daf84a21cd947bf65 03-Apr-2017 Wei Jia <wjia@google.com> NuPlayer: notify client of playback error of individual track.

Test: mediaplayer doesn't send error notify to client when only one
track has error.
Bug: 24761723
Change-Id: Ie956f2c29483ac722a75bea86d649ce6d934a43d
nclude/mediaplayer.h
c1d17710bde127ad6c4533490b27effb3016f1b4 03-Apr-2017 Scott Randolph <randolphs@google.com> Use explicit .c_str() for hidl_string

hidl_string no longer will provide an implicit cast to const char* as it
interfers with other expected behaviors of the class. It now emulated
std::string in requiring a call to .c_str() to get the same behavior.

Bug: 36532780
Test: Build the tree
Change-Id: I2b7c4d8e530cc1678cd08d77e365c5e560493264
mx/1.0/WOmxNode.cpp
2fdf283c82b24caf4150b32b5e893322a3e3524b 02-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Add Flag for Enabling 64-bit Media DRM Server" into oc-dev
e9fec5451704893412c8e707940483a6bdb5f238 14-Mar-2017 John W. Bruce <juce@google.com> Add Flag for Enabling 64-bit Media DRM Server

We are ready for devices to begin migrating to a 64-bit Media DRM
Server. However, not all devices are ready to make this jump yet. A
device needs to have all of its DRM Plugins ready to run as 64-bit
before it can do this. This includes having 64-bit hardware
integrations.

So that devices can turn on 64-bit support as they get ready, I am
adding flags that can be set in a device's device.mk file. There are two
parts:

* ENABLE_MEDIADRM_64 enables building the mediadrmserver as 64-bit.

* Setting drm.64bit.enabled=true in PRODUCT_PROPERTY_OVERRIDES switches
mediadrmserver to searching for DRM Plugins in the 64-bit directory.

Test: Validated that turning on these flags enables a 64-bit
mediadrmserver that loads 64-bit DRM Plugins from the lib64
directory (after setting DISABLE_TREBLE_DRM to true to load this
code as opposed to the Legacy DRM Plugin HAL)
Bug: 36076017
Change-Id: I141cfd57ff75b40c8b0cb40a5bf1439a1ab5b766
nclude/DrmPluginPath.h
d49dbd6b625cddb82f3f7bbeac62d48ef338ef0f 07-Jul-2016 Andy Hung <hunga@google.com> Allow MediaExtractor to create FileSource

Remove binder call to MediaServer for reading files.

Test: Photos, Play Music, Play Movies, Youtube
Bug: 29125703
Change-Id: Id6abf592bf6d70b81158f6038b1982f0a537b9b9
MediaExtractorService.cpp
nclude/IMediaExtractorService.h
6dcab2bafd847be84c2c2230bbd04af9c45c491e 28-Mar-2017 Chong Zhang <chz@google.com> DRM: more fixes for heap base mapping -- DO NOT MERGE

Heap base for the same heap could be mapped to different values
after they go across binder to CryptoHal. So we can't use heapbase
to index the heaps.

Since each ACodec instance allocates all its shared memory buffers
from the same memory dealer, we let CryptoHal assign a sequence
number to the ACodec when it calls setHeap. In subsequent calls
to CryptoHal::decrypt, reference the heap by the seq num, and ignore
the heap base address.

Bug: 36479980
Bug: 36209723
Bug: 36660223

Test: the above bugs don't repro

Change-Id: I2f519a689a5891447385d1bf9d6e668bb3b4dbe2

(cherry-picked from bf628da1e231e2e4d6bf61f9884e120bae3f9156)
nclude/CryptoHal.h
nclude/ICrypto.h
d07c92742fc5801cab8e99801f591365986acbe9 28-Mar-2017 Chong Zhang <chz@google.com> Revert "Revert "Fix decoder instantiation during playback"" -- DO NOT MERGE

This reverts commit de7268d8e20b883ec88a7ff19ad560a665373484.

Bug: 36479980
Bug: 36209723
Bug: 36660223

Change-Id: I8d83305a28dc35cee16f8f1068c90fdd0b9effff
(cherry picked from commit 6aa5c0662c86c7f7b2890577a207086eeecbd177)
nclude/Crypto.h
nclude/CryptoHal.h
nclude/ICrypto.h
93e29c0846e0f7583ae96edafbf5e8a3169711ee 22-Mar-2017 Jeff Tinker <jtinker@google.com> Merge "Revert "Fix decoder instantiation during playback""
de7268d8e20b883ec88a7ff19ad560a665373484 22-Mar-2017 Jeff Tinker <jtinker@google.com> Revert "Fix decoder instantiation during playback"

This reverts commit 33327c7f0f04bcce3f8e8ee23953f87efc423037.

Bug: 36479980
Bug: 36209723

Change-Id: I8ff9422086f5ba9ba5df60135d20b9d8bfc0be52
nclude/Crypto.h
nclude/CryptoHal.h
nclude/ICrypto.h
7ec2a45e48f6c24a5e8fa96416d8793329b79d2f 17-Mar-2017 Jeff Tinker <jtinker@google.com> Merge "Fix decoder instantiation during playback"
33327c7f0f04bcce3f8e8ee23953f87efc423037 16-Mar-2017 Jeff Tinker <jtinker@google.com> Fix decoder instantiation during playback

When a decoder is created while another decoder
is in use and the two decoders share a common
crypto instance, decryption results would become
indeterminate, which could cause the decoder to
hang. This change adds a notification to the
crypto instance so it can update state when its
ownership changes.

bug: 36209723

Test: playbacktests-debug-androidTest.apk as
described in the bug.

Change-Id: I453c260eace5543dd79a3569bf6a9592394c4113
nclude/Crypto.h
nclude/CryptoHal.h
nclude/ICrypto.h
bb2e149ef409b7e14463c0fa84f99b877c96902e 17-Mar-2017 Mikhail Naganov <mnaganov@google.com> Merge "audiohal: Rename output flag VOIP_CALL_RX -> VOIP_RX"
107488f4d20f3c4595a78ae33ba2f38bca0a50b9 15-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Move hybrid interface from libbinder to libhidl/transport."
201c1de5cc5f28d7b8d06e65a82c5ced599c9ca1 15-Mar-2017 Ming Zhou <b42586@freescale.com> Merge "parameter passed to BnHDCP::onTransact() is incorrect when calling decrypt function." am: 5052e9cf9f am: 4f6b158fec
am: 8431e9e25f

Change-Id: I25296af562787d5965b53b8350d5b2cb1536ac86
4f6b158fec3f99ff4af773da04dd4f5c5fe5a6b9 15-Mar-2017 Ming Zhou <b42586@freescale.com> Merge "parameter passed to BnHDCP::onTransact() is incorrect when calling decrypt function."
am: 5052e9cf9f

Change-Id: I4eaf334bd11e1b91d68d40c0958f14364ee9b471
a9497351b989337da05cf8fba6597575e5c08259 19-Jan-2015 Ming Zhou <b42586@freescale.com> parameter passed to BnHDCP::onTransact() is incorrect when calling decrypt function.

Change-Id: Iba8e74a0043877a167e4b290b2257fcd990076b8
Signed-off-by: Ming Zhou <b42586@freescale.com>
Reviewed-on: http://androidsource.ap.freescale.net/project/504
Reviewed-by: Jian Li <jian.li@nxp.com>
HDCP.cpp
04563aafa0debc95d50951ca944abf37ef2777ce 09-Mar-2017 Pawin Vongmasa <pawin@google.com> Move hybrid interface from libbinder to libhidl/transport.

Also, merge android.hardware.media.omx@1.0-impl into libstagefright_omx.

Test: With CtsMediaTestCases.apk installed,
adb shell am instrument -e size small -w
'android.media.cts/android.support.test.runner.AndroidJUnitRunner'
Test: Manual use of Camera, Photos, Play Movies and YouTube apps.
Test: Manual use of screen mirroring.

Bug: 33854657
Change-Id: Ie927bcafd86dc7e9509bb8b76bb3b51f9a423cc7
ndroid.mk
nclude/IOMX.h
mx/1.0/WOmx.cpp
mx/1.0/WOmxBufferProducer.cpp
mx/1.0/WOmxProducerListener.cpp
4928924a74d38bad1f40d92ab6fc68f831211e76 14-Mar-2017 Mikhail Naganov <mnaganov@google.com> audiohal: Rename output flag VOIP_CALL_RX -> VOIP_RX

Makes the constant name consistent with non-Pixel HALs

Also, add missing lines in TypeConverter.

Change-Id: If60c08bc9102e9e4375b057ba2358079c913bda2
Test: make
ypeConverter.cpp
0e4b8e9cb1b422195c49be49b48d039aa0814acf 11-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes from topic 'fix omxnode fd leak'

* changes:
Fix Omx emptyBuffer fd leak in GraphicBufferSource
Revert "Revert "Refactor GraphicBufferSource wrappers for OMX HAL""
d095e65c8c125c555046c60539a0f7abf0ccf271 11-Mar-2017 Robert Shih <robertshih@google.com> Revert "Revert "Refactor GraphicBufferSource wrappers for OMX HAL""

This reverts commit a6331ba30928fac713f9d6ce94e1d5f0d008b501.

Bug: 36110748
Change-Id: I56260ae0cc13c17b0edb31c39d22f3fbd6708d34
mx/1.0/WGraphicBufferSource.cpp
mx/1.0/WOmx.cpp
3ecd658d0e403726cc8e03a4b4a4fdc81a0ec5d3 11-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Revert "Refactor GraphicBufferSource wrappers for OMX HAL""
a6331ba30928fac713f9d6ce94e1d5f0d008b501 10-Mar-2017 Rachad Alao <rachad@google.com> Revert "Refactor GraphicBufferSource wrappers for OMX HAL"

This reverts commit 3d32c95e94f2672d23b58196beafddacba07c5e8.

Bug: 36110748

Change-Id: I6d0cd5924b3e1e00cdcf844c638bb0acf4fae2ac
mx/1.0/WGraphicBufferSource.cpp
mx/1.0/WOmx.cpp
6d616e69c42fc7e692ca3770c6a1f3d573deb6ce 06-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Refactor GraphicBufferSource wrappers for OMX HAL"
de2c37e75c6e58fd9da2e87f11e72927620c3265 03-Mar-2017 Jeff Tinker <jtinker@google.com> Merge "Load vendor-provided drm hidl hal modules"
3d32c95e94f2672d23b58196beafddacba07c5e8 23-Feb-2017 Robert Shih <robertshih@google.com> Refactor GraphicBufferSource wrappers for OMX HAL

Bug: 35449087
Test: Manual
Change-Id: I0cf70526d820999902707af466ebb4e8a2c932ab
mx/1.0/WGraphicBufferSource.cpp
mx/1.0/WOmx.cpp
cca34c05ca2d5e7ac6c2fbee3ac2db88f059143d 02-Mar-2017 Pawin Vongmasa <pawin@google.com> Merge "Use tokens for IOmxNode."
ac7d4125516299b8a3e6f2b25822a692bdd96311 01-Mar-2017 Pawin Vongmasa <pawin@google.com> Use tokens for IOmxNode.

Test: Mirroring, Camera, Photos, YouTube and Play Movies apps.
Bug: 35442034
Change-Id: I0e43ec57d0f37c71d41652fd9883b72650433e20
ndroid.mk
OMX.cpp
nclude/IMediaCodecService.h
nclude/IOMX.h
mx/1.0/WGraphicBufferSource.cpp
mx/1.0/WOmx.cpp
mx/1.0/WOmxBufferProducer.cpp
mx/1.0/WOmxBufferSource.cpp
mx/1.0/WOmxNode.cpp
mx/1.0/WOmxObserver.cpp
mx/1.0/WOmxProducerListener.cpp
2928d74e1e6ed54ee80778de0fe1c988e2a0f1b5 01-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "MPEG4Extractor: ensure returned status is checked."
ff1fb4d5cdd3b2b28c69edd8cd3021e335ca381a 15-Feb-2017 Wei Jia <wjia@google.com> MPEG4Extractor: ensure returned status is checked.

Also fix handling of zero atom size in MPEG4Source::parseChunk.
IDataSource: ensure readAt returns correct status.
Test: manually test with mediaplayer.
Bug: 34718515
Change-Id: I1219ec579aa0876dc1230e36af46b158b84c6d77
DataSource.cpp
abeb36a8c2f044772297536e70340c3b245863e4 17-Feb-2017 Jeff Tinker <jtinker@google.com> Load vendor-provided drm hidl hal modules

Prior to this change, the default legacy hal
module was explicitly referenced. This change
uses the service manager to iterate through
any hal instances so vendor-provided hals
can be loaded.

bug:34507158
Change-Id: I23bc4fdb2dc7d5254833c9a977241f1fede726a9
nclude/CryptoHal.h
nclude/DrmHal.h
e2b43843fd12783188edd2c54188ea8d26864788 02-Feb-2017 Vijay Venkatraman <vijaykv@google.com> Moved headers from include/ to appropriate libs

include/camera -> camera/include/camera
include/media/audiohal -> media/libaudiohal/include
include/media/AudioResampler*.h -> media/libaudioprocessing/include
include/media/Audio*.h,IAudio*.h,IEffect*.h,ToneGenerator.h -> media/libaudioclient/include
include/media/EffectsFactoryApi.h -> media/libeffects/include
include/media/stagefright -> media/libstagefright/include
include/media/nbaio -> media/libnbaio/include
include/media/<rest of files> -> media/libmedia/include
include/cpustats -> media/libcpustats/include/cpustats

Added symlinks from old location to new ones

Bug: 33241851

Test: VNDK linked modules will need to add explicit lib dep.
All other modules should compile the same

Change-Id: I0ecf754a2132640ae781a3cc31428fb8c0bd1669
nclude/AVSyncSettings.h
nclude/BufferProviders.h
nclude/BufferingSettings.h
nclude/CharacterEncodingDetector.h
nclude/Crypto.h
nclude/CryptoHal.h
nclude/Drm.h
nclude/DrmHal.h
nclude/DrmSessionClientInterface.h
nclude/DrmSessionManager.h
nclude/ExtendedAudioBufferProvider.h
nclude/ICrypto.h
nclude/IDataSource.h
nclude/IDrm.h
nclude/IDrmClient.h
nclude/IHDCP.h
nclude/IMediaAnalyticsService.h
nclude/IMediaCodecList.h
nclude/IMediaCodecService.h
nclude/IMediaDeathNotifier.h
nclude/IMediaDrmService.h
nclude/IMediaExtractor.h
nclude/IMediaExtractorService.h
nclude/IMediaHTTPConnection.h
nclude/IMediaHTTPService.h
nclude/IMediaLogService.h
nclude/IMediaMetadataRetriever.h
nclude/IMediaPlayer.h
nclude/IMediaPlayerClient.h
nclude/IMediaPlayerService.h
nclude/IMediaRecorder.h
nclude/IMediaRecorderClient.h
nclude/IMediaSource.h
nclude/IOMX.h
nclude/IRemoteDisplay.h
nclude/IRemoteDisplayClient.h
nclude/IResourceManagerClient.h
nclude/IResourceManagerService.h
nclude/IStreamSource.h
nclude/JetPlayer.h
nclude/LinearMap.h
nclude/MediaAnalyticsItem.h
nclude/MediaCodecBuffer.h
nclude/MediaCodecInfo.h
nclude/MediaDefs.h
nclude/MediaMetadataRetrieverInterface.h
nclude/MediaProfiles.h
nclude/MediaRecorderBase.h
nclude/MediaResource.h
nclude/MediaResourcePolicy.h
nclude/MemoryLeakTrackUtil.h
nclude/Metadata.h
nclude/MidiDeviceInfo.h
nclude/MidiIoWrapper.h
nclude/Modulo.h
nclude/OMXBuffer.h
nclude/OMXFenceParcelable.h
nclude/PluginLoader.h
nclude/RecordBufferConverter.h
nclude/RingBuffer.h
nclude/SharedLibrary.h
nclude/SingleStateQueue.h
nclude/StringArray.h
nclude/TypeConverter.h
nclude/Visualizer.h
nclude/convert.h
nclude/mediametadataretriever.h
nclude/mediaplayer.h
nclude/mediarecorder.h
nclude/mediascanner.h
9dbe9a57bf0ae2494ec312d6c1b06feec20e9ec9 03-Jan-2017 Chong Zhang <chz@google.com> MediaCas: add MediaCasService

This CL adds API only without implementation.

bug: 22804304
Change-Id: Ibb5a29cc616ec0af81957b2bfe1419c482591753
ndroid.mk
MediaExtractor.cpp
ediaDefs.cpp
ea42da480ddd116cb70f2c8a7642df7c12b996af 17-Feb-2017 Ray Essick <essick@google.com> Merge "Media metrics for android.media.MediaRecorder"
bc1713d3b85d7ce656e032da6e4b6b342f14db03 14-Feb-2017 Mathias Agopian <mathias@google.com> fallout of splitting rect.h out of libandroid.

A lot of media makefiles didn’t specify libui or
libgui but included headers from these libraries
directly.

It works because these headers are on the global
include path. With this change, though, rect.h
is not anymore (albeit exported from libui).

Test: built and booted device
Bug: 35164655
Change-Id: I72e8f0b7bd25c6a67eedc17afe52c4c484a147fe
OMX.cpp
42a5de6da0084fd430c70d58671559f71c738cf0 17-Feb-2017 Hangyu Kuang <hkuang@google.com> Merge "media: Support accurate pause/resume/stop in GraphicBufferSource."
764d945bfdb9dec60f2b482fbf6c5e83824ed950 13-Dec-2016 Hangyu Kuang <hkuang@google.com> media: Support accurate pause/resume/stop in GraphicBufferSource.

Process all buffers that have been queued to the encoder on
StagefrightRecorder::pause()/stop(). Furthermore, add timestamp support for
pause/stop. Buffers willi keep getting encoded until 1) a buffer with a higher
timestamp is queued, or 2) the bufferqueue is abandoned by the producer.

Test: Recording with hacking GoogleCamera timestamp. And Mediarecorder CTS test.
Bug:32765698
Change-Id: I9ec33d635aef269836d7a5d9f4b906cb41b46a0d
idl/android/IGraphicBufferSource.aidl
cefac14261a32fb856b0d1ab31541787112e306e 07-Feb-2017 Hassan Shojania <shojania@google.com> Modular DRM for MediaPlayer

Bug: 34559906
Test: Manual through the test app

Change-Id: I286f9ff199c34563b7b8643de725f8d1534ea06c
MediaPlayer.cpp
ediaplayer.cpp
ac4e4189db77dc0af7671b162d11be5ccec69339 13-Feb-2017 Ray Essick <essick@google.com> Media metrics for android.media.MediaRecorder

underlying collection of MediaRecorder metrics for getMetrics() API
and for media metrics cloud analysis.

Bug: 35150984
Test: hacked CTS, observation of 'dumpsys media.metrics'
Change-Id: Ife2ab06158b0015549ed17d52d7f4c35781f5e0f
MediaRecorder.cpp
ediarecorder.cpp
36b31c87807a4f8cd22e73da9bf2df7babdb906e 14-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "libmedia: add NULL check before accessing source and destination buffers."
30d48d9542fb3f85889108c1ee2daff98a4860e7 14-Feb-2017 Andy Hung <hunga@google.com> Merge "VolumeShaper: Initial implementation"
a04f6995de2e469cfb3164d88cf8fe54701c9124 04-Nov-2015 Santhosh Behara <santhoshbehara@codeaurora.org> libmedia: add NULL check before accessing source and destination buffers.

IMemory can return a NULL pointer or the destination buffer for readAt can
be NULL. Check for NULL and report error.

Author: Shivaprasad Hongal <shongal@codeaurora.org>

Change-Id: I6df9275f2eb9a6e1c2641d084d713b73737d68d7
MediaHTTPConnection.cpp
129296c2169d11502e59388fbaf8b1382c2a5b8c 14-Feb-2017 Marco Nelissen <marcone@google.com> Merge "Merge "Fix overflow check and check read result" into klp-dev am: b6aa3901ce am: e541fa1764 am: 7f3980c0ca am: ea2023406b am: 3fc94bc146 am: 497f2ccce4 am: 917033735e am: 3b122332a1 am: 89cbb8482b am: 3ce7b4ddca am: 96fbe3c2e5 am: d625f8dcab am: d572632948 am: 72ff526520 am: 1d0255e990" into nyc-mr2-dev-plus-aosp
am: b6483a73d8

Change-Id: I01d08ee061a1c33f8ff4a8c61a38507581594fa1
1d0255e990821193550e1aaad8ca62d87cb787ae 14-Feb-2017 Marco Nelissen <marcone@google.com> Merge "Fix overflow check and check read result" into klp-dev am: b6aa3901ce am: e541fa1764 am: 7f3980c0ca am: ea2023406b am: 3fc94bc146 am: 497f2ccce4 am: 917033735e am: 3b122332a1 am: 89cbb8482b am: 3ce7b4ddca am: 96fbe3c2e5 am: d625f8dcab am: d572632948
am: 72ff526520

Change-Id: Ie0a458392a8aacb64c0852b18bbc55a1542c4d94
d572632948d44db41e9abcc2b6e683108a61b120 14-Feb-2017 Marco Nelissen <marcone@google.com> Merge "Fix overflow check and check read result" into klp-dev am: b6aa3901ce am: e541fa1764 am: 7f3980c0ca am: ea2023406b am: 3fc94bc146 am: 497f2ccce4 am: 917033735e am: 3b122332a1 am: 89cbb8482b am: 3ce7b4ddca am: 96fbe3c2e5
am: d625f8dcab

Change-Id: Ib9b2676a88278443f67a5c4473d5faa9bdd2caa4
d625f8dcabc1dc0cf78d93aaa6ff30b33f05d305 14-Feb-2017 Marco Nelissen <marcone@google.com> Merge "Fix overflow check and check read result" into klp-dev am: b6aa3901ce am: e541fa1764 am: 7f3980c0ca am: ea2023406b am: 3fc94bc146 am: 497f2ccce4 am: 917033735e am: 3b122332a1 am: 89cbb8482b am: 3ce7b4ddca
am: 96fbe3c2e5

Change-Id: Ic83f4cdc78ae34a6dc2de5cd3eb5247cb7af626a
96fbe3c2e52778506858d9b9ff0fae067587265c 14-Feb-2017 Marco Nelissen <marcone@google.com> Merge "Fix overflow check and check read result" into klp-dev am: b6aa3901ce am: e541fa1764 am: 7f3980c0ca am: ea2023406b am: 3fc94bc146 am: 497f2ccce4 am: 917033735e am: 3b122332a1 am: 89cbb8482b
am: 3ce7b4ddca

Change-Id: I3d6ab417df4d0b58ebb8a0df4e5344d2cdf2d2c0
3b122332a1fd6ed2ffeb1d40f93a65f676c99cc5 14-Feb-2017 Marco Nelissen <marcone@google.com> Merge "Fix overflow check and check read result" into klp-dev am: b6aa3901ce am: e541fa1764 am: 7f3980c0ca am: ea2023406b am: 3fc94bc146 am: 497f2ccce4
am: 917033735e

Change-Id: Iacd7eff2b865515af5e29cc7fb5fb517f213aabc
917033735e2f55e76e93b17a37fda2cab72f381b 14-Feb-2017 Marco Nelissen <marcone@google.com> Merge "Fix overflow check and check read result" into klp-dev am: b6aa3901ce am: e541fa1764 am: 7f3980c0ca am: ea2023406b am: 3fc94bc146
am: 497f2ccce4

Change-Id: I2df07a6aa02a7c56a47c777e0eacbc6d560055de
9fc8b5cd4a64ef07e84c69112461324d5c13a0b0 24-Jan-2017 Andy Hung <hunga@google.com> VolumeShaper: Initial implementation

The VolumeShaper is used to apply a volume
envelope to an AudioTrack or a MediaPlayer.

Test: CTS
Bug: 30920125
Bug: 31015569
Change-Id: I42e2f13bd6879299dc780e60d143c2d465483a44
MediaPlayer.cpp
ediaplayer.cpp
3fc94bc1468571e9ee3337bacbc68a51b6e387d1 13-Feb-2017 Marco Nelissen <marcone@google.com> Merge "Fix overflow check and check read result" into klp-dev am: b6aa3901ce am: e541fa1764 am: 7f3980c0ca
am: ea2023406b

Change-Id: I68fa183d94f46f7578f8b0718da9a3efd9b4946c
ea2023406b8306b5562e9113a159c7126438d200 13-Feb-2017 Marco Nelissen <marcone@google.com> Merge "Fix overflow check and check read result" into klp-dev am: b6aa3901ce am: e541fa1764
am: 7f3980c0ca

Change-Id: Iaa2a11e1924fdcfe83ca8c8e9a7925850ceb53be
7f3980c0ca0b0fe461f2e759bbbe46b85851b7c8 13-Feb-2017 Marco Nelissen <marcone@google.com> Merge "Fix overflow check and check read result" into klp-dev am: b6aa3901ce
am: e541fa1764

Change-Id: Ia2962471693b1c4302d4535a0f95dd8d914c3cb8
7863c791dba8c4e5e9591b6837d410e580be0a25 10-Feb-2017 Eric Laurent <elaurent@google.com> Merge changes from topic 'mmap_no_irq'

* changes:
Add support for mmap stream
audioflinger: define MMAP HAL Stream control interface
f2b8278225bdb043fde4ec5b6a78ff5181598cd8 08-Feb-2017 Ray Essick <essick@google.com> Merge "connect APIs to mediaextractor getMetrics()"
8ff40189817e95c7a56e347398d20e60d7534ee6 07-Feb-2017 Pawin Vongmasa <pawin@google.com> Fix some bugs in the Treble connection.

Test: Do the following inside adb shell:
setenforce 0
setprop debug.treble_omx 1
pkill mediacodec
pkill mediaserver

Bug: 31399200
Change-Id: I8d0ebcca477738add8b41b58ae85539061cfad7b
MXBuffer.cpp
ba13b7bc3d46d958bc4a395f2c162cb112ec1f3a 07-Feb-2017 Ray Essick <essick@google.com> connect APIs to mediaextractor getMetrics()

plumbing so that user level android.media.MediaExtractor.getMetrics()
will get down to where we keep the metrics and then haul them back
to the application. Includes the right hooks so that per-container-type
metrics will also be managed.

Bug: 35094936
Test: monitor dumpsys output, augmented CTS examination
MediaExtractor.cpp
9667e3eff2d34c3797c3b529370de47b2c1f1bf6 06-Feb-2017 Marco Nelissen <marcone@google.com> Fix overflow check and check read result

Bug: 33861560
Test: build
Change-Id: Ia85519766e19a6e37237166f309750b3e8323c4e
HDCP.cpp
8a21c0191f974a0b9cbd5818052e2655e0aaa306 26-Dec-2016 Pawin Vongmasa <pawin@google.com> Modify ACodec to allow using Treble.

ACodec will connect to the Treble version of Omx if the property
"debug.treble_omx" is set to true ("1", "y", "yes", "true" or "on").

Also, fix some bugs found so far.

Test: Compiles
Bug: 31399200
Change-Id: I52b27b5f99bc1d6797d3b83b8be794ed2de9956a
MXBuffer.cpp
6b26b4be294103214b67898322e10dc4d42e4fc7 31-Jan-2017 Mikhail Naganov <mnaganov@google.com> Merge "Audio HAL: extensions for new SoC features"
1784ec91786ed3a9e1fffcaa20fec8c33830b1ad 27-Jan-2017 Hassan Shojania <shojania@google.com> Merge "Modular DRM for MediaPlayer"
3a0a8b4cc0632a09fa9c669edf9c6a27be5d37d9 27-Jan-2017 Ray Essick <essick@google.com> Merge "Media Metrics for NuPlayer, Codec, Extractor"
96cf0a59adc029b877154ee56906edb8855fd0c8 23-Jan-2017 Mikhail Naganov <mnaganov@google.com> Audio HAL: extensions for new SoC features

Extend audio channel mask.

Added AC4 format.

Change-Id: Id65423396a84a84b418aa01937f55359498ae4a1
Test: make
ypeConverter.cpp
2b118b8f939c0cf1b287b1641d17b057a8e25ce7 27-Jan-2017 Pawin Vongmasa <pawin@google.com> Merge changes from topic 'OMX Treble 2'

* changes:
Split Treble conversion module into two sides: impl and utils.
Use HIDL's memory in CodecBuffer and add wrapper classes for IOmxBufferProducer and IOmxProducerListener.
db1221479a7ffe7094c51c463bbd36522ed106ab 26-Jan-2017 Ray Essick <essick@google.com> Media Metrics for NuPlayer, Codec, Extractor

Collect metrics for nuplayer/mediaplayer, codec, extractor.
publishes them to media.metrics service
provides hooks that local APIs use to connect to retrieve metrics
from the above when running on their behalf.

Separate set of changes does the final hop to the local APIs.

Bug: 34715803
Test: build & run, observed code/extractor/player metrics in logs
Change-Id: Ic5a0a7b3b93a5a41af93d81050ba038f0f7a4329
ediaplayer.cpp
f62ea8018813951e8f6a182880cadb3217e4ce37 19-Dec-2016 Pawin Vongmasa <pawin@google.com> Use HIDL's memory in CodecBuffer and add wrapper classes for
IOmxBufferProducer and IOmxProducerListener.

Test: Compiles
Bug: 31399200
Change-Id: Ia09973ee7b25120bc35cff02b1409f33b28a4b4e
ndroid.mk
MXBuffer.cpp
d6a6c677f59c6354157a951cb6ad881600a9f8b8 25-Jan-2017 Ray Essick <essick@google.com> Enable media metrics by default

flips the bit so that media metrics are gathered on the device by
default. This is (not yet) for the uploading of any collected metrics.

This is a standalone CL that can be reverted without any entanglements
to other changes and enhancements. But let's hope it doesn't come to
that.

Bug: 34715856
Test: build and boot -- see collected metrics (dumpsys media.metrics)
ediaAnalyticsItem.cpp
071437a2005e39969983ec619a4c7bc54c2dc5a9 23-Jan-2017 Hassan Shojania <shojania@google.com> Modular DRM for MediaPlayer

Bug: 34559906
Test: Manual through the test app
Change-Id: I752c3e2bbc2fac9c75f7ddc986014c4b8ce75d84
MediaPlayer.cpp
ediaplayer.cpp
a437457c4f802c8df577da452f3a26a64f55bba4 25-Jan-2017 Ray Essick <essick@google.com> Merge "Change from mediaanalytics to mediametrics"
d38e174ddbde8e7419ba01deaded4ff0ead1caaa 24-Jan-2017 Ray Essick <essick@google.com> Change from mediaanalytics to mediametrics

reflect the change from "media.analytics" to "media.metrics" in
what service names we use; bring the metrics service main code into the
service directory (vs an additional shared library).
Removed references to tentative binder functions that the service
won't be offering, at least not in the near future.

Bug: 34615027
Test: build, boot, new services run, clients talking to said services.
Change-Id: If17772a8f03c05b142e8d5779830d198710210c1
MediaAnalyticsService.cpp
ediaAnalyticsItem.cpp
d7ae0b8529d0b08496392c85ae4d00753e28882e 23-Jan-2017 Hangyu Kuang <hkuang@google.com> media: Relax the filedescriptor check to allow write-only mode.

Test: Use the MMS app to record video.
Bug: 34594319
Change-Id: Id89dd1e6fa83e1a126ff8cced065600ce4e0e663
ediarecorder.cpp
217fc01b390d88993c1c94669b251f952fe2c44e 20-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Enable CFI for some media components."
d112296453154c6974433d860f270e9d8bc7d0d0 19-Jan-2017 Wei Jia <wjia@google.com> Merge "mediaplayer: add getBufferingSettings."
ed32086f6a93a9a22f3877c54030af5c2567939a 18-Jan-2017 Wei Jia <wjia@google.com> mediaplayer: add getBufferingSettings.

Test: compiles
Bug: 32524218
Change-Id: Ifd6243d524d1554dfbbfc1381414100cfafdc02d
ediaplayer.cpp
e482d3a819edb60038ba5c4ca7f33935b27dd35f 19-Jan-2017 Hangyu Kuang <hkuang@google.com> Merge "media: Support recording exceeds filesize limit by splitting files."
a4a6d63ec590a3be60a60527c619fb0bf7870b59 21-Dec-2016 Vishwath Mohan <vishwath@google.com> Enable CFI for some media components.

Enables CFI locally for the following components:
media/libmedia/
media/libstagefright/codec2/
media/libstagefright/codecs/aacdec/
media/libstagefright/codecs/aacenc/
media/libstagefright/codecs/amrwbenc/
media/libstagefright/codecs/avc/common/
media/libstagefright/codecs/avc/enc/
media/libstagefright/codecs/avcdec/
media/libstagefright/codecs/avcenc/
media/libstagefright/codecs/flac/enc/
media/libstagefright/codecs/g711/dec/
media/libstagefright/codecs/gsm/dec/
media/libstagefright/codecs/hevcdec/
media/libstagefright/codecs/m4v_h263/dec/
media/libstagefright/codecs/m4v_h263/enc/
media/libstagefright/codecs/mp3dec/
media/libstagefright/codecs/mpeg2dec/
media/libstagefright/codecs/on2/dec/
media/libstagefright/codecs/on2/enc/
media/libstagefright/codecs/on2/h264dec/
media/libstagefright/codecs/opus/dec/
media/libstagefright/codecs/raw/
media/libstagefright/http/
media/libstagefright/httplive/
media/libstagefright/omx/
media/libstagefright/wifi-display/

Note that CFI is currently hidden under the global flag,
ENABLE_CFI=true. Unless this is set, local settings are not honored
and CFI will not be enabled. This allows CFI to essentially remain off
on all branches, but will allow it to be tested and debugged using
targeted builds.

Bug: 30227045
Test: m -j40 and device builds and boots
Test: CFI is not enabled unless built with ENABLE_CFI=true
Test: CFI enabled build passes the media CTS tests.
ndroid.mk
cac8d4ea54ece7aeb4b2ffa7aafd06fbec731a62 18-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "audio policy: allows dumping Audio Policy Mix"
dc6f340e537ce511ea1d2f8ce7dc1c4ed231f6a6 10-Jan-2017 Wei Jia <wjia@google.com> mediaplayer: add buffering settings API

Test: compiles, checked that params is passed all the way to source.
Bug:32524218
Change-Id: I637d1ab09f94a3830a33a39e7e9f1b3efb22357f
ufferingSettings.cpp
ediaplayer.cpp
2872c7ab71fb554ee14d4e8b65677f9c7a97f966 14-Jan-2017 Wei Jia <wjia@google.com> Merge "BufferingSettings: hook up internal BufferingSettings API."
fe44e4f74fe2582cbf012687059278dbcbdaa6f7 04-Jan-2017 Hangyu Kuang <hkuang@google.com> media: Support recording exceeds filesize limit by splitting files.

Test: Hacking camera app to record file larger than size limit.
Bug:28150626
Change-Id: I500913ec96d8ef49a78989d3f973bc7e8d923cb7
MediaRecorder.cpp
ediarecorder.cpp
49b2b4d30a0f74314630a5ea5f0e59697d90443e 12-Jan-2017 Chong Zhang <chz@google.com> stagefright: add rangeOffset to OMXBuffer

bug: 31399200
bug: 22804304

Change-Id: I0ac9a7ee684067d40a26135ab26ebd3de3a2f06d
MXBuffer.cpp
44344b05261cb9ad46a43e635f637b89aecc7afe 13-Dec-2016 Mikhail Naganov <mnaganov@google.com> audio policy: allows dumping Audio Policy Mix

This patch adds the dump of AudioPolicyMix if registered.
It also adds the required conversion map to human readable strings
of the types involved in Mixes.

Adapted for the development branch from the AOSP patch:
https://android-review.googlesource.com/#/c/309127/

Change-Id: I91cf7afe6de5ff837970d9063ca437d4f6201e89
Test: build, dumpsys media.audio_policy
ypeConverter.cpp
6acd1d432f526ae9a055ddaece28bf93b474a776 04-Jan-2017 Eric Laurent <elaurent@google.com> Add support for mmap stream

Add support for MMAP streams created by Oboe service.
- A new audio thread class MmapThread deriving from ThreadBase
is added to manage permissions, volume, routing and wakelocks for activity
on MMAP streams.
- Requests received over MmapStreamInterface to open, start and stop
a MMAP stream are forwarded to audio policy manager so that activity
on MMAP capture and playback streams is visible to audio policy and
taken into account in volume and routing management.
`

Bug: Bug: 33398120
Test: manual test
Change-Id: I957906495fe9277d2972d810b633f50cd1e14ec3
ypeConverter.cpp
da913494a93667a037e7923258b46d0d1dd2bf50 22-Dec-2016 Ray Essick <essick@google.com> Merge "Refine MediaAnalytics framework"
48fa06d1e80a872c7495804979256e021e566ae0 21-Dec-2016 Wei Jia <wjia@google.com> BufferingSettings: hook up internal BufferingSettings API.

Test: compiles
Bug: 32524218

Change-Id: I4b3f1689681560f0c1af3bfc62adee1ce630e218
ufferingSettings.cpp
b5fac8ef36b302c12f897d06c7e097981843f3a0 12-Dec-2016 Ray Essick <essick@google.com> Refine MediaAnalytics framework

Rework some interfaces to avoid unnecessary sp<> mechanisms;
document which side of caller/callee owns pointers afterwards.
Rework internal attribute representation, add support routines.

Bug: 33547720
Test: Boot, ran subset of CTS media tests
Change-Id: Id0d65bd6a847704dc98d38be9aa5e1ce63c20e1c
MediaAnalyticsService.cpp
ediaAnalyticsItem.cpp
1570e5805254f638ccf5bb5c29870a9c8e7a7db3 20-Dec-2016 Marco Nelissen <marcone@google.com> Merge "Fix issues with extractor dumpsys" am: 24cd6995c7 am: 579955d0ce am: 7944a0a546
am: d84aee8fc9

Change-Id: I32e46905233c052dbc846241f5bfe33399d360f8
460b7e88f1e7d13e934c9596fbd799c39e63d788 19-Dec-2016 Marco Nelissen <marcone@google.com> Fix issues with extractor dumpsys

Tracks and descriptions were added to their respective lists in
opposite order, so dumpsys could mix up the format and active
state for a given track. Also fix potential NULL pointer dereference.

Bug: 33179012
Change-Id: I700d535da0e72f5641bf9257a34fdb5d5d068b12
MediaExtractor.cpp
517b0e090680e378f056677201426ed9dc325c65 02-Dec-2016 Pawin Vongmasa <pawin@google.com> Add conversion functions.

There are 5 pairs of wrapper classes for the 5 HIDL interfaces: IOmx,
IOmxNode, IOmxObserver, IOmxBufferSource and IGraphicBufferSource.
Some additional functions of OMXBuffer and OMXFenceParcelable are needed
in the implementation of these wrapper classes, so they are added in
this CL as well.

Auto-generated files that correspond to interfaces without queryable
instances are removed.

Test: Compiles.

Bug: 31399200
Change-Id: Iaec9c0e0afee6fc847f324c3eb3c105d6342a1fe
MXBuffer.cpp
5249a5583df9a17dc3899100ea642f29eb86a23e 05-Dec-2016 Marco Nelissen <marcone@google.com> Clean up DRM handling

Avoid calling SniffDrm twice, and remove [gs]etDrmFlag methods
since they serve no purpose anymore.

Test: ran forward lock CTS test, and played protected content in Play Movies

Change-Id: I8313d2dae459151bf965a76ac1125d36ce8176e6
MediaExtractor.cpp
08dab5ae92ddd1f3b337b6e35f918fea8c284a56 07-Dec-2016 Jaekyun Seok <jaekyun@google.com> Use libmedia_helper as shared lib.

The dependencies to static libraries in frameworks should be removed
as many as possible to reduce a size of the system partition.
And that will improve coverage of the VNDK libraries because this
effort might find new necessary shared libs which were linked
statically before.

Size diffs of affected binaries on angler-userdebug build are as
follows.

libmedia : 598056 -> 547928 (-50128)
libstagefright : 1496420 -> 1492124 (-4296)
libaudiopolicyservice : 75372 -> 66940 (-8432)
libaudiopolicymanagerdefault: 613168 -> 583516 (-29652)
libaudioflinger : 397840 -> 364380 (-33460)
libaudiohal : 114752 -> 68684 (-46068)
libaudiopolicyenginedefault : 122096 -> 71968 (-50128)
libmedia_helper : 0 -> 66288 (+66288)

total : (-155876)

Test: building succeeded, and the image was tested on angler.
Bug: 33056637
Change-Id: I00a71e518337a1efcf7f55256145776311596991
ndroid.bp
ndroid.mk
c89c8910d901704e03c30b1fdbeb38fd82d4bbdc 06-Dec-2016 Mikhail Naganov <mnaganov@google.com> Audio HAL: extensions for new SoC features

Extended audio offload structure: added support to add bit_width,
offload buffer size and usage info.

Add support for direct PCM audio stream. Direct PCM stream
is used when pcm data required post processing in DSP. Direct PCM
stream is used for both track offload and PCM offload.

Add audio proxy source device.

Add support for additional audio formats: EVRC, QCELP, WMA, WMA,
AAC_ADIF, AMR, MP2, FLAC, ALAC, APE, DSD, LDAC.

Extend audio channel mask.

Test: make
Change-Id: I15be7e726c62d52cd81a4864087fab471dd7c3c2
ypeConverter.cpp
65abff18873fab87305049418c9b7c24fc0a2ef4 03-Dec-2016 Ray Essick <essick@google.com> Merge "initial mediasanalytics framework"
3938dc6363949ef126bb6188d26b5bef6db8be4d 01-Nov-2016 Ray Essick <essick@google.com> initial mediasanalytics framework

This encompasses the basic framework files for mediaanalytics. This
includes the library code to run in clients, the interface definitions
to get to the service, and the mediaanalytics service.

This version of the patchset also incorporates a wholesale change from
"Media Statistics" to "Media Analytics" -- which involved both textual
changes and file renaming

This does not include the changes to other entities that will be sending
data. We'll do those under separate per-entity commits.

Bug: 30267133
Test: run through cts' media stress tests
Change-Id: Iee7e722d10fd57c5d6b14e2947117ed0d3af4f2a
ndroid.mk
MediaAnalyticsService.cpp
ediaAnalyticsItem.cpp
4a6a59e0865fa14ff8e6e68c296134656ac1c61b 02-Dec-2016 Mikhail Naganov <mnaganov@google.com> Merge "libaudiohal: Implement simple HIDL client"
66c42ee95b42bea78cfc8035a1ea4e00c34d6cac 07-Nov-2016 Marco Nelissen <marcone@google.com> export sonivox headers for users of libmedia

Test: build

Change-Id: Id4a9b00b25bfa572789c8858d6af542b644d35a9
ndroid.mk
f558e0218d2677a813c9c600886f673894eec927 15-Nov-2016 Mikhail Naganov <mnaganov@google.com> libaudiohal: Implement simple HIDL client

This client requires both HIDL client and server to be of the same
ABI version (e.g. 32-bit).

EffectHalHidl::process and EffectHalHidl::processReverse are stubs.

Some extra warnings are logged due to unimplemented functions
in the legacy HAL.

Bug: 30222631
Change-Id: Id074131dec6d6c4f1031695abcf3ea066e92a5af
Test: Play Music (play / EQ), YouTube, Loopback RTLT, Ok Google on N5X
udioParameter.cpp
f1e829a54ec8c5e28063366d378a110e14b98811 30-Nov-2016 rago <rago@google.com> Fix security vulnerability: potential OOB write in audioserver am: e275907e57 am: 01e854056a am: 3e8ab60b7f am: 9161586309 am: ad29b47d91 am: 8b9b199891 am: 72729c449d am: 97bb7fe084 am: 3d6aada999 am: ffe82a3b4a am: ec601622f8
am: f50635bdc4

Change-Id: I2a763c6477374600f84d5c3aae646af395b947c5
f50635bdc4613bfd8f4a3a76dc0e5c6fc752c77a 30-Nov-2016 rago <rago@google.com> Fix security vulnerability: potential OOB write in audioserver am: e275907e57 am: 01e854056a am: 3e8ab60b7f am: 9161586309 am: ad29b47d91 am: 8b9b199891 am: 72729c449d am: 97bb7fe084 am: 3d6aada999 am: ffe82a3b4a
am: ec601622f8

Change-Id: I406374de32920003302cff5a78c0ced400dacbdc
ec601622f852cd1710bb92023d318a28dd03c56d 30-Nov-2016 rago <rago@google.com> Fix security vulnerability: potential OOB write in audioserver am: e275907e57 am: 01e854056a am: 3e8ab60b7f am: 9161586309 am: ad29b47d91 am: 8b9b199891 am: 72729c449d am: 97bb7fe084 am: 3d6aada999
am: ffe82a3b4a

Change-Id: I428d5c72ea37518c30d50d21b1ef47e440933cde
97bb7fe0846fc3cebc7ededd8cb337f83ff5a13d 30-Nov-2016 rago <rago@google.com> Fix security vulnerability: potential OOB write in audioserver am: e275907e57 am: 01e854056a am: 3e8ab60b7f am: 9161586309 am: ad29b47d91 am: 8b9b199891
am: 72729c449d

Change-Id: I97c6b4935971fa201e5107940643eaf0355bcaaa
72729c449d9f7a6f217be629066cb683ad27b37b 30-Nov-2016 rago <rago@google.com> Fix security vulnerability: potential OOB write in audioserver am: e275907e57 am: 01e854056a am: 3e8ab60b7f am: 9161586309 am: ad29b47d91
am: 8b9b199891

Change-Id: Id1d62d9ebabab42f5ca82ff2fbbcf14d130466f4
ad29b47d91c26f65d1d9a58d2dac1970175a885c 30-Nov-2016 rago <rago@google.com> Fix security vulnerability: potential OOB write in audioserver am: e275907e57 am: 01e854056a am: 3e8ab60b7f
am: 9161586309

Change-Id: Ibcceb08d7db77f67f3dfc3cdad1d2bd6994183ae
9161586309fd018a1503dc5227f2cb329b935213 30-Nov-2016 rago <rago@google.com> Fix security vulnerability: potential OOB write in audioserver am: e275907e57 am: 01e854056a
am: 3e8ab60b7f

Change-Id: Ib575df34ec5bb7dc2cd83a859e10abe94e894317
3e8ab60b7f65dd4c5c9efa4a1c388a51fbbb5d11 30-Nov-2016 rago <rago@google.com> Fix security vulnerability: potential OOB write in audioserver am: e275907e57
am: 01e854056a

Change-Id: I7ea6a871eed4b9e1c56c5350c4e5fb5eb628e816
e275907e576601a3579747c3a842790bacf111e2 23-Nov-2016 rago <rago@google.com> Fix security vulnerability: potential OOB write in audioserver

Bug: 32705438
Bug: 32703959
Test: cts security test
Change-Id: I8900c92fa55b56c4c2c9d721efdbabe6bfc8a4a4
Effect.cpp
b54cab90d4bf84745a57232080d72a50c3b731da 24-Nov-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "BufferingSettings: define internal BufferingSettings API."
d399e7e6065aa310e025ab633f633d5b4831a358 27-Oct-2016 Wei Jia <wjia@google.com> BufferingSettings: define internal BufferingSettings API.

Test: compiles
Bug: 32524218
Change-Id: I9a95b2fdfa497179305e031aac69e5a987614dbb
ndroid.mk
ufferingSettings.cpp
MediaPlayer.cpp
b620c0a38648f578ce3bfa77059295af79d0fa29 23-Nov-2016 Caroline Tice <cmtice@google.com> Merge "Fix null-pointer derefernce warning." am: 955e85294d am: c12499d5c6 am: aef21a74a6
am: 33091682c6

Change-Id: Iabf28befa504c6f4a18bed344fe4c64c0b3c9030
c12499d5c646e79d6a91dddc44c79921d9967c8e 23-Nov-2016 Caroline Tice <cmtice@google.com> Merge "Fix null-pointer derefernce warning."
am: 955e85294d

Change-Id: I492db6e2ea9cbe052f4120aba3477052ad791a29
fc88363032d90492845ad5b917496589ca225f63 21-Nov-2016 Jeff Tinker <jtinker@google.com> Merge "Removing widevine classic"
c5de09127e9e0d5df7aa587be317e1487d793245 18-Nov-2016 Wei Jia <wjia@google.com> mediaplayer: support same seek mode as MediaMetadataRetriever.

Test: manually force 4 seek modes in mediaplayer.
Bug: 32557491
Change-Id: Iea4f6dbfc224fc6da39624300c6d872b79142f07
MediaPlayer.cpp
ediaplayer.cpp
29b7dcf6d3cdb97103467dc8106151c6260c239a 24-Oct-2016 Jeff Tinker <jtinker@google.com> Removing widevine classic

bug:30505334
Change-Id: I40ac8020b5442857936037a15847b0271359e624
ediaDefs.cpp
225fc6958d6d9981b3f6884109ccf13fe459057c 16-Nov-2016 Caroline Tice <cmtice@google.com> Fix null-pointer derefernce warning.

Fixes IOMX.cpp:599 warning: Dereference of null pointer

BUG: None
Test: Warning is now gone.
Change-Id: Ife4a8d8af9b2eccd020448ac2ad4c65de081eb4c
OMX.cpp
aad28fc2465edadca45b2953c92186cb26f5ef51 14-Nov-2016 Mikhail Naganov <mnaganov@google.com> AudioParameter: add functions for working with parameter keys

Added functions that are helpful for building parameter query
strings to be used with HAL's 'get_parameter' methods.

Test: make
Change-Id: I66a4e94d65660b04ded4abb59a89d8288056a920
udioParameter.cpp
4c1d94395a64f4c3acd8f9e0d378a778e438221d 14-Nov-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "IOMX: add API for setPortMode"
d02c08671d666e12a94bcadd943787a9ab2ceea8 13-Oct-2016 Chong Zhang <chz@google.com> IOMX: add API for setPortMode

- Add setPortMode to centralize port mode configuration

- Remove storeMetaDataInBuffers and enableNativeBuffers. These are
no longer exposed to the client. Metadata mode and native/secure
buffer mode will be enabled by OMX as needed by the port mode.

- Move handling of legacy adpative experiment (legacy metadata mode)
to OMX side. Legacy mode will now appear the same as non-metadata
mode to client.

bug: 31399200

Change-Id: Iaf33bd7c30fab4acbc19e9fb8c19e322f9b4a0a0
OMX.cpp
MXBuffer.cpp
ad60a0f6cd9012507f8086fe741236d12d280ef3 10-Nov-2016 Wonsik Kim <wonsik@google.com> stagefright: reuse buffers instead of cloning

In buffer array mode, the buffer reference is kept in clients of
MediaCodec, so allocating new buffer for new input/output does not
work in that case.

Bug: 32577275
Bug: 32579231
Test: use screenrecord and investigate the output file.
Test: cts-tradefed run cts-dev -m CtsMediaTestCases -t android.media.cts.EncodeDecodeTest
Change-Id: I26d89f6b5735094062b8a2027bcab4754576d574
ediaCodecBuffer.cpp
0aa15c6e4d02d3aa96d5ddfc6c862fe4da1da594 08-Nov-2016 Mikhail Naganov <mnaganov@google.com> Add back AUDIO_DEVICE_*_STUB to the enum map.

It has been accidentally removed, and it is used in
audio_policy.conf on certain devices.

Bug: 32740394
Change-Id: I59a1b44472aeabc87f65c6cee6371ac3647ecf57
Test: make & check on the device
ypeConverter.cpp
75571e4bc76bd2defd4309c7154120840396329d 08-Nov-2016 Marco Nelissen <marcone@google.com> Clean up mediadrm dependencies

Move various things around so mediadrmserver doesn't need
libstagefright and libmedia

Test: build/boot
Change-Id: I48b713cd679b992cb6ad1262c20394a9892d7027
ndroid.mk
Crypto.cpp
Drm.cpp
DrmClient.cpp
MediaDrmService.cpp
300379ab01ec4c5f9f538284dbb1e49ad012de29 07-Nov-2016 Mikhail Naganov <mnaganov@google.com> Merge "Move TypeConverter into a shared library"
913d06c099bd689375483a839e11057ccf284d1c 01-Nov-2016 Mikhail Naganov <mnaganov@google.com> Move TypeConverter into a shared library

This will be needed for the default implementation of the audio HAL
in TREBLE for parsing supported formats etc. provided by HAL in
a form of string literals.

As a bonus, remove some hand-written type conversions in AudioFlinger
used in dumps.

Example changes in the dump output:

HAL format: 0x1 (pcm16) ==> HAL format: 0x1 (AUDIO_FORMAT_PCM_16_BIT)
Processing format: 0x5 (pcmfloat) ==> Processing format: 0x5 (AUDIO_FORMAT_PCM_FLOAT)
Output device: 0x2 (SPEAKER) ==> Output device: 0x2 (AUDIO_DEVICE_OUT_SPEAKER)
Input device: 0 (NONE) ==> Input device: 0 (AUDIO_DEVICE_NONE)
AudioStreamOut: 0x... flags 0x6 (PRIMARY|FAST) ==>
AudioStreamOut: 0x... flags 0x6 (AUDIO_OUTPUT_FLAG_PRIMARY|AUDIO_OUTPUT_FLAG_FAST)

Test: make & run
Change-Id: I9cde640e6827b7aa6d62e9caade9e738227e299f
ndroid.bp
udioParameter.cpp
ypeConverter.cpp
4ea929819e23ecd388e1edce25a10631ee53e9e3 07-Nov-2016 Marco Nelissen <marcone@google.com> Split libmedia into libmedia and libaudioclient
am: 795a2a7554

Change-Id: Ic08eddc5650d3f5d344ebcf93ad98ae5bb236c8c
795a2a75542d25eefa56bebc388340ee15fdff5c 02-Nov-2016 Marco Nelissen <marcone@google.com> Split libmedia into libmedia and libaudioclient

This makes it so audioserver doesn't need to link against the entire libmedia,
which has dependencies on camera, ICU, OpenGL and other things that aren't
needed for audio.

Test: build/boot

Change-Id: I99ba1a3dc3b33ca9b3abd98e7519dbf228ee62af
ndroid.mk
udioEffect.cpp
udioPolicy.cpp
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
udioTrackShared.cpp
AudioFlinger.cpp
AudioFlingerClient.cpp
AudioPolicyService.cpp
AudioPolicyServiceClient.cpp
AudioRecord.cpp
AudioTrack.cpp
Effect.cpp
EffectClient.cpp
emoryLeakTrackUtil.cpp
oneGenerator.cpp
ad43cf3a8b3e52bda741b5759813dedfcc0e19d3 05-Nov-2016 Marco Nelissen <marcone@google.com> Merge "Move IMediaLogService to libmedialogservice"
am: 12dc4449ee

Change-Id: I78dd9164b47538205fbed6fe04fafb8bbcc55009
4f197ec220d2c9634429692dd37896233273111d 04-Nov-2016 Marco Nelissen <marcone@google.com> Merge "Remove unneeded links with dynamic libraries"
am: 46d0a5b493

Change-Id: Ica6dd538c30b9aeccddad229cb24ade4d82d2e4c
4b21bd2dac2727531aad1e74079b4d34077524a0 02-Nov-2016 Marco Nelissen <marcone@google.com> Move IMediaLogService to libmedialogservice

So audioserver and libmedialogservice don't have to link against libmedia

Test: build/boot
Change-Id: I4040d9f6db59807c3fa56321d45fb6ab50fb5edb
ndroid.mk
MediaLogService.cpp
263506542fbe480ddb247597bdcef16c437b48dd 25-Oct-2016 Marco Nelissen <marcone@google.com> Remove unneeded links with dynamic libraries

Various media components were linking against dynamic libraries that weren't needed.

Test: built and booted

Change-Id: I7379506fd06d4e28e0eff0001fd073a2d3860f8e
ndroid.mk
538ec5e04f389cba637b030757be317fcb8677a8 02-Nov-2016 Marco Nelissen <marcone@google.com> Split libmedia into libmedia and libaudioclient

This makes it so audioserver doesn't need to link against the entire libmedia,
which has dependencies on camera, ICU, OpenGL and other things that aren't
needed for audio.

Test: build/boot

Change-Id: I99ba1a3dc3b33ca9b3abd98e7519dbf228ee62af
ndroid.mk
udioEffect.cpp
udioPolicy.cpp
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
udioTrackShared.cpp
AudioFlinger.cpp
AudioFlingerClient.cpp
AudioPolicyService.cpp
AudioPolicyServiceClient.cpp
AudioRecord.cpp
AudioTrack.cpp
Effect.cpp
EffectClient.cpp
emoryLeakTrackUtil.cpp
oneGenerator.cpp
8ad947667b8460f87f71aecab7ac8c23c40f5350 02-Nov-2016 Marco Nelissen <marcone@google.com> Move IMediaLogService to libmedialogservice

So audioserver and libmedialogservice don't have to link against libmedia

Test: build/boot
Change-Id: I4040d9f6db59807c3fa56321d45fb6ab50fb5edb
ndroid.mk
MediaLogService.cpp
d592974f4e1d8afc753ada8c10d2b252d8f852af 02-Nov-2016 Wei Jia <wjia@google.com> Merge "mediaplayer: add precise argument to seek function"
67b6dccfd7b59efa772a3c2c553e7382c8f9f24c 01-Nov-2016 Wei Jia <wjia@google.com> mediaplayer: add precise argument to seek function

Test: compiles
Bug: 32557491
Change-Id: Id8c3a938edd5a0b34a9b33e86a4dbff32cf10c98
MediaPlayer.cpp
ediaplayer.cpp
d4370268adbbb95eca7a518a55abe42678df93ef 27-Oct-2016 Chong Zhang <chz@google.com> Merge "IOMX: consolidate buffer passing on IOMX"
3fd200feb657c157125e45e30c2a7262e3c0244d 08-Oct-2016 Chong Zhang <chz@google.com> IOMX: consolidate buffer passing on IOMX

- Use OMXBuffer to parcel different buffer types.

- Only leave one useBuffer, emptyBuffer and fillBuffer.

- Remove the update metadata calls.

bug: 31399200
Change-Id: I307e59415c3c5be61772210431bd8225ce6b75a3
ndroid.mk
OMX.cpp
MXBuffer.cpp
7a987ecdab7e87f916fef28bf991a6183020f1b4 27-Oct-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Remove unneeded links with dynamic libraries"
6f6555a169316f1b9e2acda2b8e7042e285de310 27-Oct-2016 Wonsik Kim <wonsik@google.com> Merge "MediaCodec refactoring part 1-c: buffer ownership"
c661ae6165338fd5f0bca50a63058b4bcd6def4b 25-Oct-2016 Marco Nelissen <marcone@google.com> Remove unneeded links with dynamic libraries

Various media components were linking against dynamic libraries that weren't needed.

Test: built and booted

Change-Id: I7379506fd06d4e28e0eff0001fd073a2d3860f8e
ndroid.mk
fd44d8e2f2d37184f7add67125657f3fbfb5a085 20-Oct-2016 Wonsik Kim <wonsik@google.com> MediaCodec refactoring part 1-c: buffer ownership

- Buffers are (roughly) owned by themselves.
- As a corollary, remove output format change related events
and replace by inspecting formats associated with each buffers.

Bug: 32133435
Test: gts-tradefed run gts -m GtsExoPlayerTestCases
Test: (manual) Run Play Movies app to play a secure content.
Change-Id: I6b57da61c2d71acd0d5be4281de823ba1c95b72f
ediaCodecBuffer.cpp
bf2e61f54c7dcc37c97b4908c9ed6871cf3d2b49 24-Oct-2016 Glenn Kasten <gkasten@google.com> Merge "Use audio_patch_handle_t in startAudioSource() and stopAudioSource()"
3604cb1a5548694393c7b7a87191eb517bebaa47 10-Oct-2016 Chong Zhang <chz@google.com> IOMX: move max pts gap handling to OMX

bug: 31399200

Change-Id: I52177d6826caeedf670ecf3e6d0ff85d0e3bf1df
OMX.cpp
idl/android/IGraphicBufferSource.aidl
559d439c6fe8679e3c52f1cf265d46d7d2e65b68 29-Mar-2016 Glenn Kasten <gkasten@google.com> Use audio_patch_handle_t in startAudioSource() and stopAudioSource()

Bug: 27903060
Change-Id: Iafc2095f484b74978c6f080c54f548e293bf945e
udioSystem.cpp
AudioPolicyService.cpp
65fb65678345f03f38771523b7020f6777eff5c4 18-Oct-2016 Mikhail Naganov <mnaganov@google.com> Merge "Brush up audio parameters usage"
388360c786cdcbec650b79db65c734b8952dfec0 18-Oct-2016 Mikhail Naganov <mnaganov@google.com> Brush up audio parameters usage

It is preferred to use the constants from AudioParameter
(which can now serve as an abstraction layer similar to libaudiohal).

Grepped for usages of defines and just string values
and replaced with references to AudioParameter.

Since the parameter definitions are being moved to system/audio.h,
update includes in AudioParemeter and stagefright Utils.

Change-Id: I2addb983707d866b16f39d45d0e14b802595e292
Test: make
udioParameter.cpp
5bc1a9aa19fbf9c952cc9ccb212ff1aa8c2386c3 18-Oct-2016 Mikhail Naganov <mnaganov@google.com> Merge "Split audio effects headers"
0a2e01a3881ade646870373e1d544bea9cc3e721 15-Oct-2016 Andy Hung <hunga@google.com> Merge "AudioTrack: Add hasStarted method"
c6ef32c53dca92ea3ec647a54dc9bdf8f97d3aff 15-Oct-2016 Andy Hung <hunga@google.com> Merge "AudioTrack: Clear stream end flag on start"
9fe94012187a29eeeca2c74e75f121192560fba0 14-Oct-2016 Mikhail Naganov <mnaganov@google.com> Split audio effects headers

There can be different use cases with the code that imports
headers from audio_effects (each subsequent case is a more
specialized version of the previous one):

1. The code only needs access to general structures
like effect_descriptor_t:
==> include system/audio_effect.h
Example: AudioSystem in libmedia

2. The code that needs access to effect UUID and parameter
enums:
==> include system/audio_effects/effect_foo.h
Examples: media framework effects interfaces, libwilhelm

3. The code that needs to call into HAL:
==> include hardware/audio_effect.h
Examples: libaudiohal (implementation part) and libeffects

4. The code that implements a particular effect:
==> include audio_effects/effect_foo.h
Examples: cts/.../CTSTestEffect.cpp
stuff in hardware/, vendor/

Note that AudioPolicy still deals with the effects HAL directly,
this needs to be fixed.

Change-Id: I963335ede6a196f9225caf21e1a01d03635e363c
Test: make
ndroid.mk
65ffdfc7e92f9900d72bf6dc0b7f4e1231d4da03 11-Oct-2016 Andy Hung <hunga@google.com> AudioTrack: Add hasStarted method

Best guess determination whether the AudioTrack
has started playing.

Test: Photos app with pause and play.
Bug: 30502030
Change-Id: I03c0ae78037ec05f3025ed009ef67bd376b176ba
udioTrack.cpp
4be3b831904640ca853845b3ea31f985774047de 14-Oct-2016 Andy Hung <hunga@google.com> AudioTrack: Clear stream end flag on start

Improves readability of audioflinger dumpsys and allows
proper detection when the AudioTrack has finally stopped.

Test: NuPlayer with video clip in loop mode.
Bug: 32180119
Change-Id: I625efffdc2f589f4869ea76605b3ed90afce7e87
udioTrack.cpp
61787b26691da285d8ab79795237006ceb018c4d 14-Oct-2016 Mikhail Naganov <mnaganov@google.com> Merge "Remove dependencies on hardware/audio_effects.h and EffectsFactoryApi.h"
bd027c54192eea0c5f4f20533cd86e8d5a61df59 14-Oct-2016 Marco Nelissen <marcone@google.com> Fix divide by zero am: 0d13824315 am: c2aef83feb
am: c31b3b7d3b

Change-Id: I66a130f444fad9703fa94d10aebc91989e1ca739
c31b3b7d3b666fb19c87e022b590d695ca16042d 14-Oct-2016 Marco Nelissen <marcone@google.com> Fix divide by zero am: 0d13824315
am: c2aef83feb

Change-Id: Ib94af4f98542dd11b4f41231031bea2954fb04e2
f3e1e8c0b1ee32768ee04b308756ef6ac878d8cf 14-Oct-2016 Marco Nelissen <marcone@google.com> Fix divide by zero am: 0d13824315
am: 3fdf964302

Change-Id: I66f18bf3efc32dc2081e0b785d080f50e7dcea1f
3fdf96430241a813a33e53aa62fd1d04d0f9e6da 14-Oct-2016 Marco Nelissen <marcone@google.com> Fix divide by zero
am: 0d13824315

Change-Id: I5f2a6eb52c5abe01467da3e276365c0db30c0ae9
c2aef83febfafc8e64c183c342625e9d4e4999be 14-Oct-2016 Marco Nelissen <marcone@google.com> Fix divide by zero
am: 0d13824315

Change-Id: Ic1a3c8e78999c268a330505e92835d8c4733cbf9
00260b5e6996b0a4b12f71c5b84e44adea040534 13-Oct-2016 Mikhail Naganov <mnaganov@google.com> Remove dependencies on hardware/audio_effects.h and EffectsFactoryApi.h

Also remove some outstanding dependencies on hardware/audio.h.

Most of the time, only constants and structs from audio_effects.h
are used, and no actual calls into HAL are made. Move these
definitions into system/audio_effect.h, and generate constants
from TREBLE HAL definition.

For parameters, always use values from AudioParameter class.

There are still some outstanding includes of hardware/audio.h
in code that directly deals with audio modules. Need to extend
libaudiohal interfaces to support required functionality.

Test: make

Change-Id: I0bcdf8ae199485d4d65f3eeb7e7a3b9b5cdb6ab6
udioParameter.cpp
52dd2e30b204949353c2dee0b1f1712677bbda43 13-Oct-2016 Andy Hung <hunga@google.com> Merge "AudioTrack: Advance timestamp time during pause"
f9125c36b47a3bb510b8317e64d70f01fd65b28f 13-Oct-2016 Andy Hung <hunga@google.com> Merge "AudioTrack: Fix timestamp restore"
f20a4e9f84bbb8748f28ca326caeba7a9947a369 16-Aug-2016 Andy Hung <hunga@google.com> AudioTrack: Fix timestamp restore

Test: Photos with BT on and off.
Bug: 29946998
Change-Id: I729590451126e180ee85e1ab3dee2a0b24f0572d
udioTrack.cpp
addf2cbb120346ae42e78fa739245a353db5edad 29-Sep-2016 Chong Zhang <chz@google.com> IOMX: consolidate createInputSurface APIs

- Create GraphicBufferSource in IOMX regardless of persistency.

- Remove createInputSurface on IOMXNode, only keep setInputSurface
which accepts either a persistent or non-persistent surface.

- Instead of holding a IGraphicBufferConsumer, hold
IGraphicBufferSource across session as the persistent surface.

- Fix up GraphicBufferSource to allow usage across sessions.
GraphicBufferSource itself becomes agnostic to persistency.

- Remove max encoder input buffers profiling code.

bug: 31399200
Change-Id: I15ed52cc64509fd87736372a580abf7b51bf4de7
ndroid.mk
MediaRecorder.cpp
OMX.cpp
idl/android/IGraphicBufferSource.aidl
idl/android/IOMXNode.aidl
idl/android/IOMXNode.h
ediarecorder.cpp
5d313803bdd61d59f28e518e7a793f33832f1901 11-Oct-2016 Andy Hung <hunga@google.com> AudioTrack: Advance timestamp time during pause

Update MediaPlayer code to match.

This will change the behavior on the AudioTrack Java side,
but is within the API and should make timestamp handling easier.

Test: Photos app with pause and play.
Bug: 30502030
Change-Id: I0e9129ce6af5b920ad71e63ad0c205de7561acf2
udioTrack.cpp
21b46588d022d0c22d7c7c08e919d7a9c5cd76e3 04-Oct-2016 Chong Zhang <chz@google.com> IOMX: remove allocateBufferWithBackup

Only keep useBuffer. Pass in quirks requirement for now, once
we have access to MediaCodecList XML info in OMX, we can remove
the quirks from IOMX.

Also remove a few unused variables on BufferMeta.

bug: 31399200
Change-Id: I93bef964ce034d4aeb1f5d13a75f130108e4e648
OMX.cpp
0d13824315b0491d44e9c6eb5db06489ab0fcc20 07-Oct-2016 Marco Nelissen <marcone@google.com> Fix divide by zero

and be stricter about the layout of various boxes in mp4 files.

Bug: 31318219
Change-Id: I50034d5b6b1967ca6e88aabeacf49f26ba3c0d32
MediaExtractor.cpp
72e8bfdde091d78796c297ff708febf2a2cbbf6c 06-Oct-2016 Chong Zhang <chz@google.com> Merge "IOMX: remove nodeBinder from allocateNode"
1d2e9cfbe3f2db16ecafd2adafb4c60d7235a2ce 06-Oct-2016 Chong Zhang <chz@google.com> IOMX: remove nodeBinder from allocateNode

This is no longer needed, the IOMXNode is already a binder,
we can just link to that.

bug: 31399200

Change-Id: Ic5dd5330dab448ae126aaec694f71f22857b3169
OMX.cpp
09316fdbebc8e2e899f663aa1e4b1bcb0531354d 06-Oct-2016 Glenn Kasten <gkasten@google.com> Merge "LOCAL_CLANG := true is now the default"
bdaffdd96d0a1537d083591f93aa6d1c9cbf89ac 05-Oct-2016 Hall Liu <hallliu@google.com> Rename UK tones to GB tones am: a97494e3ae am: 09374e278c
am: 4ec5187576

Change-Id: Ibc515d554dadf59f39db9a1fdd11ca96e67c7930
4ec5187576dbe802585b60f8e38720c9da4b269b 05-Oct-2016 Hall Liu <hallliu@google.com> Rename UK tones to GB tones am: a97494e3ae
am: 09374e278c

Change-Id: Ibec2de3319b6b51b26adf2c09f0e62a97619a119
95890237a25cb40f138d300cefd82764c76ca556 05-Oct-2016 Chong Zhang <chz@google.com> Merge "IOMX: remove getState() and livesLocally()"
5f5ee1110dd85001b43db7637a97474acfe8d681 16-Aug-2016 Glenn Kasten <gkasten@google.com> LOCAL_CLANG := true is now the default

Test: verify that build has no failures
Change-Id: Ib249b276c6295e55eb54fa37b6d15486415dfbed
ndroid.mk
7dcc5f394b17238f2ae1a9c59f34664d3ad085e7 05-Oct-2016 Chong Zhang <chz@google.com> IOMX: remove getState() and livesLocally()

These are no longer used.

bug: 31399200

Change-Id: Ic61e8c7fa016ccd038e2b2427ccb08b78af34245
OMX.cpp
0aef8ce6ab2175f3c6c30029e4f2478b66ab8720 04-Oct-2016 Jeffrey Vander Stoep <jeffv@google.com> Merge "mediaextractor: Skip setting memory limits on ASan builds" am: da1ce7f95c am: 41e71e5c92
am: ff39fd1e3a

Change-Id: I53c2d8c27635002ce3ba387983e9a4c3d14cc725
a97494e3aedc0be9362c13fad1fd83ac814b76d0 04-Oct-2016 Hall Liu <hallliu@google.com> Rename UK tones to GB tones

Previous CL which introduced UK tones was incorrect since "uk" is not a
valid ISO country code. This change checks for the "gb" country code
instead.

Change-Id: I1f99a7ec5dd24a112b2b1b486fe613f965fba7ff
Fix: 31003209
oneGenerator.cpp
ff39fd1e3aca6d4ebafa887b22cb34d60fff4abc 04-Oct-2016 Jeffrey Vander Stoep <jeffv@google.com> Merge "mediaextractor: Skip setting memory limits on ASan builds" am: da1ce7f95c
am: 41e71e5c92

Change-Id: I6a5c264468553d3588b6ed03e01716c503208953
b1005323ca86a545942eb64a8cfb5e84809a5791 02-Oct-2016 Jeff Vander Stoep <jeffv@google.com> mediaextractor: Skip setting memory limits on ASan builds

ASan-ified libraries have a larger memory footprint which counts
towards a process's RLIMIT_AS. Detect ASan at runtime and skip
setting memory limits.

Test: Builds and boots. "MediaUtils: running with ASan, not setting
memory limits" appears in logcat, mediaextractor is no longer
crashing.

(cherry picked from commit 4bc7ad9e0ea04928e7ed9767251696cc4a4e5d15)

Bug: 31831213
Change-Id: I6705baa825cbfd45695def2cd80d8d2261b05339
ediaUtils.cpp
ediaUtils.h
ce9db56c299ed93331c16a6d25bcd02c573a1101 03-Oct-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "mediaextractor: Skip setting memory limits on ASan builds"
4bc7ad9e0ea04928e7ed9767251696cc4a4e5d15 02-Oct-2016 Jeff Vander Stoep <jeffv@google.com> mediaextractor: Skip setting memory limits on ASan builds

ASan-ified libraries have a larger memory footprint which counts
towards a process's RLIMIT_AS. Detect ASan at runtime and skip
setting memory limits.

Test: Builds and boots. "MediaUtils: running with ASan, not setting
memory limits" appears in logcat, mediaextractor is no longer
crashing.

Bug: 31831213
Change-Id: I6705baa825cbfd45695def2cd80d8d2261b05339
ediaUtils.cpp
ediaUtils.h
d59b97223424a3974d2ac31cff998d02eecf2eed 21-Sep-2016 Chong Zhang <chz@google.com> IOMX: separate node interface from IOMX

- Separate node interface from IOMX. Client allocates the
node through IOMX, and once it has the node interface,
it can interact with the node directly. There is no need
to go through IOMX and refer to the node by id.

- Simplify OMX, remove id-to-instance mapping on server
side, and move the callback dispatch into node instance
(as dispatcher is per-node).

- Keep track of node generation on client side to ensure
that message handling ignores messages directed at an
expired node.

- Remove MuxOMX, always use IOMX from media.codec.

- Minor whitespace reformatting.

bug: 31399200

Change-Id: I8aef6ec1fa5aba861da7d121960ed2974a963d81
OMX.cpp
7e34bf5af26f8752d4786d3098740cdf51e2438f 22-Aug-2016 Wonsik Kim <wonsik@google.com> MediaCodec refactoring part 1-a: buffers become separate class

MediaCodecBuffer is meant to replace ABuffer and MediaBuffer in
communication between framework components. As the first step, replace
use of ABuffer in MediaCodec with MediaCodecBuffer, and adjust related
classes accordingly.

MediaCodec.getBuffer() and related APIs now returns MediaCodecBuffers;
thus change MediaCodec clients to use MediaCodecBuffer accordingly.

Test: manually tested for key use cases (Camera, YouTube and Play Movies)
Change-Id: Iba7ce131645e75ce5ddbf497fb793ab38b7f245b
ndroid.mk
ediaCodecBuffer.cpp
d6137ab7865bec44c935a1ac2f52950f38f497c4 25-Sep-2016 Jeff Tinker <jtinker@google.com> Fix potential heap data leak in mediadrmserver am: d36832a813 am: d983c8319a
am: 1621bbd891

Change-Id: I648ed2892f5d15220b6ab577b0416bda846377c9
0663786514a50a16b0430422ddd5fa1374267f30 25-Sep-2016 Jeff Tinker <jtinker@google.com> Fix L3 HLS decryption am: 2cc3afc8a5 am: b135fb9849
am: 964b71aba6

Change-Id: Ic846d622b373cfb3f0a5dda62ebf67ee75b860b6
1621bbd89140dbbaebb71fa964ae8154767ec098 24-Sep-2016 Jeff Tinker <jtinker@google.com> Fix potential heap data leak in mediadrmserver am: d36832a813
am: d983c8319a

Change-Id: I78d690176d24c0a66cec78186d0f14c2c455baee
6d332d2cdf6e62c2c20ebff220868fe9e3ed7f44 07-Sep-2016 Chong Zhang <chz@google.com> stagefright: abstract GraphicBufferSource to interfaces

Create two interfaces from GraphicBufferSource:

a) IGraphicBufferSource for client (ACodec) to configure the graphic
buffer source. IOMX no longer routes these messages and OMX internal
options are removed.

b) IOMXBufferSource for IOMX to send OMX specific callbacks.

Added an |origTimestamp| argument to emptyGraphicBuffer, and restore
the original PTS inside OMX to avoid going back to GraphicBufferSource
to patch the output PTS. In the longer term, we should consider moving
the max PTS gap entirely into OMX (probably as an extension index).

Define newly introduced interfaces using AIDL to facilitate code
development.

bug: 31399200

Change-Id: Ibaf6ca1a0737ba6ba9f83bedc3b06ef358db36cb
ndroid.mk
OMX.cpp
idl/android/IGraphicBufferSource.aidl
idl/android/IOMXBufferSource.aidl
idl/android/OMXFenceParcelable.aidl
d36832a813c8a1aadcc671e99808f475a160bc22 24-Sep-2016 Jeff Tinker <jtinker@google.com> Fix potential heap data leak in mediadrmserver

Change-Id: Ife4cecaeb5e301d702681c6dba9a17357232db40
related-to-bug: 31657897
Crypto.cpp
964b71aba637bba183847394844f14a7cc1b773c 24-Sep-2016 Jeff Tinker <jtinker@google.com> Fix L3 HLS decryption am: 2cc3afc8a5
am: b135fb9849

Change-Id: I635c87f2d11306152bb69a3504cad4718f61e693
2cc3afc8a5d70910e2c0e4c04c41393ff1e7effc 22-Sep-2016 Jeff Tinker <jtinker@google.com> Fix L3 HLS decryption

A recent change to avoid returning decrypted data
over binder assumed that in-place decryption was
safe. That isn't true for the L3 HLS case. This
change eliminates the assumption that in-place
decryption is safe while still returning the
decrypted data via shared memory, instead of
copying it over binder.

bug: 31657897
Change-Id: I7e480a25d2f9b08e54a4844ecdf19ba3c8af79c2
Crypto.cpp
b74c2ff1edcf61fcf5bb97705c1f1fa0862f461d 23-Sep-2016 Mikhail Naganov <mnaganov@google.com> Merge "Make MidiDeviceInfo accessible to native code"
8ed4fd58b0183e024ff11cad3a47d2cc06bbd023 21-Sep-2016 Marco Nelissen <marcone@google.com> Check mprotect result am: 866c800c06 am: a0cfcf38d4 am: 638aca47be am: e353ce4b3c am: 762b7a9b6e am: db8cfb97c8 am: dffa39ac23 am: 53b2b9eba3 am: 4073c59ac5 am: 093d164153 am: 0b001b52f9 am: 7197338718 am: d3d06dbc0d
am: 379db9f777

Change-Id: I8dd7eeb610277402c08ec26ecf0f6d6177fe62d7
379db9f7777396d2136090e771a9d90b2c6fd064 21-Sep-2016 Marco Nelissen <marcone@google.com> Check mprotect result am: 866c800c06 am: a0cfcf38d4 am: 638aca47be am: e353ce4b3c am: 762b7a9b6e am: db8cfb97c8 am: dffa39ac23 am: 53b2b9eba3 am: 4073c59ac5 am: 093d164153 am: 0b001b52f9 am: 7197338718
am: d3d06dbc0d

Change-Id: I870e6c86361f3e2f900ecdb49c187ec62a38375c
e5de6405dcd7f929cb7b412242d678132f9bcf61 21-Sep-2016 Marco Nelissen <marcone@google.com> Check mprotect result am: 866c800c06 am: a0cfcf38d4 am: 638aca47be am: e353ce4b3c am: 762b7a9b6e am: db8cfb97c8 am: dffa39ac23 am: 53b2b9eba3 am: 4073c59ac5 am: 093d164153 am: 0b001b52f9 am: 7197338718
am: db7ad62386

Change-Id: I499c5d2a9454e500faa23208c9ae8fd2ba929fbe
d3d06dbc0dcab4010fff761bf07ddf1fd2c864ae 21-Sep-2016 Marco Nelissen <marcone@google.com> Check mprotect result am: 866c800c06 am: a0cfcf38d4 am: 638aca47be am: e353ce4b3c am: 762b7a9b6e am: db8cfb97c8 am: dffa39ac23 am: 53b2b9eba3 am: 4073c59ac5 am: 093d164153 am: 0b001b52f9
am: 7197338718

Change-Id: I0b10d3c4c2771c904bc4d41eefce59d95dee320f
db7ad62386c3094a319ca048c27502c4e0f559ee 21-Sep-2016 Marco Nelissen <marcone@google.com> Check mprotect result am: 866c800c06 am: a0cfcf38d4 am: 638aca47be am: e353ce4b3c am: 762b7a9b6e am: db8cfb97c8 am: dffa39ac23 am: 53b2b9eba3 am: 4073c59ac5 am: 093d164153 am: 0b001b52f9
am: 7197338718

Change-Id: I51e90ea3aa8b93faa09a62fc0eb6b2b8323be863
7197338718d2222ba8e2e39911eeb58f2fb3c902 21-Sep-2016 Marco Nelissen <marcone@google.com> Check mprotect result am: 866c800c06 am: a0cfcf38d4 am: 638aca47be am: e353ce4b3c am: 762b7a9b6e am: db8cfb97c8 am: dffa39ac23 am: 53b2b9eba3 am: 4073c59ac5 am: 093d164153
am: 0b001b52f9

Change-Id: I22af9732a7d15ab13dbf4994a0bc72d1716cc180
4073c59ac5613f888cd91c73b896b50f1f9ceed6 21-Sep-2016 Marco Nelissen <marcone@google.com> Check mprotect result am: 866c800c06 am: a0cfcf38d4 am: 638aca47be am: e353ce4b3c am: 762b7a9b6e am: db8cfb97c8 am: dffa39ac23
am: 53b2b9eba3

Change-Id: Ifd1146a5fa1f9ae7abe7ad559a946ca898a918ab
53b2b9eba3f660cc28c077eb6eb97fedbc672a9e 21-Sep-2016 Marco Nelissen <marcone@google.com> Check mprotect result am: 866c800c06 am: a0cfcf38d4 am: 638aca47be am: e353ce4b3c am: 762b7a9b6e am: db8cfb97c8
am: dffa39ac23

Change-Id: I7f6a1264beac4f08357a5e151ec00abc127e9338
dffa39ac23f0694e645fa3fd26eb7518bde2d5f2 21-Sep-2016 Marco Nelissen <marcone@google.com> Check mprotect result am: 866c800c06 am: a0cfcf38d4 am: 638aca47be am: e353ce4b3c am: 762b7a9b6e
am: db8cfb97c8

Change-Id: I1f204b5117adb467d0883a59b3f1a90f4c10ba47
762b7a9b6e85c747f5c805637e6f1691dda8bcf3 21-Sep-2016 Marco Nelissen <marcone@google.com> Check mprotect result am: 866c800c06 am: a0cfcf38d4 am: 638aca47be
am: e353ce4b3c

Change-Id: Iba3ac429600319f099276cc774eb8b3bb85e7b25
e353ce4b3c95a55df510da9376ad7878338e984f 21-Sep-2016 Marco Nelissen <marcone@google.com> Check mprotect result am: 866c800c06 am: a0cfcf38d4
am: 638aca47be

Change-Id: I337dd1d62a4cd52de051afd4d9b919a742ad20fe
638aca47bedb0b9f71f8962b1f04ab3cfc8876e8 21-Sep-2016 Marco Nelissen <marcone@google.com> Check mprotect result am: 866c800c06
am: a0cfcf38d4

Change-Id: I0f188e2c717922689df42af21f6c47a865a8c390
f28256f3113212db62aa8527b9ceae4caa414be3 02-Sep-2016 Mikhail Naganov <mnaganov@google.com> Make MidiDeviceInfo accessible to native code

Add a native class that supports serialization via Parcel.

Bug: 25945784
Test: using a PoC app
Change-Id: I10ff8dec38e5584a8e5a4c96b1f6978f708c305e
ndroid.mk
idiDeviceInfo.cpp
866c800c0624bb13eee44973cc8a2ecd0012de6e 20-Sep-2016 Marco Nelissen <marcone@google.com> Check mprotect result

mprotect can theoretically fail, which could then let one exploit
a vulnerable codec if one exists on the device.

Bug: 31350239
Change-Id: I7b99c190619f0fb2eb93119596e6da0d2deb8ba5
OMX.cpp
c48459f28fbcdf56887f41d7d1d619f75570b910 20-Sep-2016 Jeff Tinker <jtinker@google.com> Avoid returning decrypted data over binder am: 3048485165 am: c06b784bff
am: ddd8ab9dae

Change-Id: I7283d526fbbe336768cc10cb0ac15947f3277735
ddd8ab9dae557c4db8cd5b8cecfebece5af7452c 20-Sep-2016 Jeff Tinker <jtinker@google.com> Avoid returning decrypted data over binder am: 3048485165
am: c06b784bff

Change-Id: I025aa9b7028c7fc8a789e74ca0f7bcc91b583336
4d514476f40b9193161bda886a5dbcea4eaac3ae 20-Sep-2016 Andy Hung <hunga@google.com> IMediaSource: fix local MediaBufferGroup refcount am: 9996d9d396 am: df4e98235f
am: 60325bcfae

Change-Id: I0f7785f5def84327896181a19a43054e250b6d63
c06b784bff8f0ed3535d3f0a57acc1ede7aef4fb 20-Sep-2016 Jeff Tinker <jtinker@google.com> Avoid returning decrypted data over binder
am: 3048485165

Change-Id: I22666e1dcded55b9e026014d04afce2ddecd87e7
2f63815ca263517988ce3d6aa3febd6f2e7291e3 20-Sep-2016 Jeff Tinker <jtinker@google.com> Merge "Avoid returning decrypted data over binder" into nyc-mr1-dev
3048485165ef692c77b30330054aaf299834fcba 03-Sep-2016 Jeff Tinker <jtinker@google.com> Avoid returning decrypted data over binder

Use shared memory instead

b/29514618

Change-Id: Iba82053f7c965c7bead816654827cbf94d3b2a9d
Crypto.cpp
60325bcfaedd25eaa02e7ff4aae1075cda0610d4 20-Sep-2016 Andy Hung <hunga@google.com> IMediaSource: fix local MediaBufferGroup refcount am: 9996d9d396
am: df4e98235f

Change-Id: Ib6d6f1c296321bba587e3517d29625b4c016ffe6
df4e98235f481a777588d2eae1f153293ff8e5c5 20-Sep-2016 Andy Hung <hunga@google.com> IMediaSource: fix local MediaBufferGroup refcount
am: 9996d9d396

Change-Id: Id12f76a8618877fc0bf4ed1b550108df164c9a4a
aac112a031d52dacc467bc0a6a889a90da2792d5 20-Sep-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "IMediaSource: fix local MediaBufferGroup refcount" into nyc-mr1-dev
d5d60f642d1d2620b120ca46b1d409007f494321 19-Sep-2016 Lajos Molnar <lajos@google.com> fix build

Revert incorrectly merged f8a4cb410115045278f534e54b41ac78d6bf6c07.
Merge 7c3c2fa3e233c656fc8c2fc2a6634b3ecf8a23e8 instead.

Keep fixes to these that were merged in since then.
OMX.cpp
9996d9d39618b89d0f85c98b8036f003290f0d7e 16-Sep-2016 Andy Hung <hunga@google.com> IMediaSource: fix local MediaBufferGroup refcount

Bug: 31526329
Change-Id: Ib596454e1c224e135dd51f95b0182f86d9e76f55
MediaSource.cpp
69d7857f1d4f55fec6f8f5c7750193d9e031757d 16-Sep-2016 ganxiaolin <ganxiaolin@xiaomi.com> Remove force argument to ensure mCaptureThread exit within Visualizer destructor am: 2e5b5704b0 am: 524354319a
am: 071a1d2752

Change-Id: I0be5c03861d06ae036898f1eac34c057ebaf2b54
071a1d2752101140d921d8c20b3c76cebd990228 16-Sep-2016 ganxiaolin <ganxiaolin@xiaomi.com> Remove force argument to ensure mCaptureThread exit within Visualizer destructor am: 2e5b5704b0
am: 524354319a

Change-Id: Ie415398b2a6b603c8ada1e89fafe865cddfe2ac9
1658f22ef0f4e4ae5640d2474fc138dab4a84844 02-Aug-2016 Lajos Molnar <lajos@google.com> IOMX: work against metadata buffer spoofing

- Prohibit direct set/getParam/Settings for extensions meant for
OMXNodeInstance alone. This disallows enabling metadata mode
without the knowledge of OMXNodeInstance.
- Do not share metadata mode buffers cross process.
- Disallow setting up metadata mode/tunneling/input surface
after first sendCommand.
- Disallow store-meta for input cross process.
- Disallow emptyBuffer for surface input (via IOMX).
- Fix checking for input surface.

Bug: 29422020
Change-Id: I801c77b80e703903f62e42d76fd2e76a34e4bc8e
OMX.cpp
2e5b5704b0028d8cf9467789dd0c01709644a523 29-Jan-2016 ganxiaolin <ganxiaolin@xiaomi.com> Remove force argument to ensure mCaptureThread exit within Visualizer destructor

Updated logic for exit request when effect is disabled.
This CL includes some original changes suggested by:
ganxiaolin <ganxiaolin@xiaomi.com>

Bug: 30684284

Change-Id: I77768e8204e712f3fd9d0a9bf768de3cb578d6ce
isualizer.cpp
e37736428f5393ea5f32729ad16f59c2c297c04f 14-Sep-2016 Phil Burk <philburk@google.com> AudioFlinger: flush direct tracks that are paused am: 4bb650bb3c am: b4fb66000f
am: 1935f31023

Change-Id: I7e6e7e73f2dd77c91995570c8719ab9c8e5561e9
1935f3102352256a6388224a49013c3b05b8f8d8 14-Sep-2016 Phil Burk <philburk@google.com> AudioFlinger: flush direct tracks that are paused am: 4bb650bb3c
am: b4fb66000f

Change-Id: I7b6a1b64871d40f50aea5a127219be210b9acb60
b4fb66000ff1148db0cc47697eda87dcbb0805c1 14-Sep-2016 Phil Burk <philburk@google.com> AudioFlinger: flush direct tracks that are paused
am: 4bb650bb3c

Change-Id: I86d50d180819dfb7abed479905fb5921b69188b5
a930117eb3c4e184395f87b5b6d7639dc11576d9 14-Sep-2016 Phil Burk <philburk@google.com> Merge "AudioFlinger: flush direct tracks that are paused" into nyc-mr1-dev
4bb650bb3c4f15789232f3f3cf778c5441122360 09-Sep-2016 Phil Burk <philburk@google.com> AudioFlinger: flush direct tracks that are paused

Normally the flush is processed on ObtainBuffer.
But that is not called when the track is paused.
So it was not possible to flush and re-prime a
track that was paused.

Now we flush synchronously for inactive tracks,
and flush from prepareTracks_l for active tracks.

Bug: 19193985
Bug: 27791443
Change-Id: I39a7e4921e45041c3a51cf91fd3995b5edee6dd4
Signed-off-by: Phil Burk <philburk@google.com>
udioTrackShared.cpp
09fcc862f226df509cde12923d92cf6db53c4108 09-Sep-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "stagefright: remove OMXNodeInstance usage from GraphicBufferSource"
6cf9a1238986880536de705255f7c2c91c1ba719 09-Sep-2016 Chong Zhang <chz@google.com> stagefright: remove OMXNodeInstance usage from GraphicBufferSource

This is a preliminary to separate GraphicBufferSource from IOMX.

- Use IOMX instead of internal OMXNodeInstance.

- Keep track of codec buffers by buffer_id, do not write to the
OMX buffer headers directly

- Upon data space change, notify IOMX to handle it

bug: 31399200

Change-Id: I86534d7602294f70da582457b5af2eb9b6a58eda
OMX.cpp
5f7114f27c3ee61d5ccd866c99f3775136b1ab75 09-Sep-2016 Andy Hung <hunga@google.com> Improve MediaBuffer robustness for remote clients am: 9bd3c9b0e8 am: e2538f2f9b
am: ff97bcaf88

Change-Id: I97a2b06342b90949b489f72b9165fe618479fd82
ff97bcaf881576703e6a9af014f87529b3af774e 09-Sep-2016 Andy Hung <hunga@google.com> Improve MediaBuffer robustness for remote clients am: 9bd3c9b0e8
am: e2538f2f9b

Change-Id: I8d378f6c64bfe9a97941cddafe6c3163abc7a050
e2538f2f9b5d81ce53dc13bbf87b2f36f6c45eb5 09-Sep-2016 Andy Hung <hunga@google.com> Improve MediaBuffer robustness for remote clients
am: 9bd3c9b0e8

Change-Id: I3abb06e498b8951e5e934d0127e12b9adb65707c
9bbafdb5b4266d51d868844c624a33035a2abea1 09-Sep-2016 Andy Hung <hunga@google.com> Merge "Improve MediaBuffer robustness for remote clients" into nyc-mr1-dev
61bb7a0d99bcacac5ae4ea2171add8d4dd9ea459 09-Sep-2016 Lajos Molnar <lajos@google.com> DO NOT MERGE: IOMX: work against metadata buffer spoofing am: 9a4768f7bf
am: da3cba194b

Change-Id: I018340e57d237e4d36d68e2cd118336242447b9c
c5251a627cd1c4c9403c80458fa10768813e7202 09-Sep-2016 Lajos Molnar <lajos@google.com> DO NOT MERGE: IOMX: work against metadata buffer spoofing am: 807e827d4c
am: ee9effab3d

Change-Id: I64bd10fa5e5e5a020c129c0b77d813a2772376a0
8751b3c3ac6a6cc606a0fce1e8ed0a01a1168c08 09-Sep-2016 Lajos Molnar <lajos@google.com> IOMX: work against metadata buffer spoofing
am: f8a4cb4101

Change-Id: I3aeec794c96fe3b0000546700e010b5ddc6e4f0f
030fbd4835412d07edcfb80230d930c3819dd2ee 09-Sep-2016 Lajos Molnar <lajos@google.com> Merge "IOMX: work against metadata buffer spoofing" into mnc-dev
9bd3c9b0e894c9f6c48a2cfa7c5f21d384b1c596 07-Sep-2016 Andy Hung <hunga@google.com> Improve MediaBuffer robustness for remote clients

Allow remote process to die or behave incorrectly.

Bug: 31060086
Change-Id: I01bc8984287fed61a46083ec090b7773e49158a9
MediaSource.cpp
bfb56e164b494a73063329c9c355dd091307c792 07-Sep-2016 Jeff Tinker <jtinker@google.com> Fix stack content leak vulnerability in mediaserver am: 9a6861cbd3 am: 647f55d75d am: b6d08633e9 am: 7d616daf2b am: b57b64d46d am: fd14435afe
am: 95bad3eabb

Change-Id: I1c89abd43aed4614e4a82db713c62d9bac0713e1
dd7e169bd1e6bc1688ffb732b8fa1c75656ae719 07-Sep-2016 Jeff Tinker <jtinker@google.com> Fix stack content leak vulnerability in mediaserver am: 9a6861cbd3 am: 647f55d75d am: b6d08633e9 am: 7d616daf2b am: b57b64d46d
am: 9ede6cef5e

Change-Id: If4e0de93975dacfeb2bac69646a86b8a18d516a7
95bad3eabb56b920deaae5b298e84a9e0ed1aab2 07-Sep-2016 Jeff Tinker <jtinker@google.com> Fix stack content leak vulnerability in mediaserver am: 9a6861cbd3 am: 647f55d75d am: b6d08633e9 am: 7d616daf2b am: b57b64d46d
am: fd14435afe

Change-Id: I4294c3eb6624f181120c56cc9938d0f12aaefd15
9ede6cef5e2cf5822f826eb9df980dcb7337ea41 07-Sep-2016 Jeff Tinker <jtinker@google.com> Fix stack content leak vulnerability in mediaserver am: 9a6861cbd3 am: 647f55d75d am: b6d08633e9 am: 7d616daf2b
am: b57b64d46d

Change-Id: I85758471a3e01105986b1975b55287ce02161178
fd14435afe8076a2268cb92614d9eb3cc2ea9086 07-Sep-2016 Jeff Tinker <jtinker@google.com> Fix stack content leak vulnerability in mediaserver am: 9a6861cbd3 am: 647f55d75d am: b6d08633e9 am: 7d616daf2b
am: b57b64d46d

Change-Id: If69ee138c4648d060fc0d3f6ab120ea1595dd203
b57b64d46d7150b40a81629a89074af8212c661c 07-Sep-2016 Jeff Tinker <jtinker@google.com> Fix stack content leak vulnerability in mediaserver am: 9a6861cbd3 am: 647f55d75d am: b6d08633e9
am: 7d616daf2b

Change-Id: I31fea7042e670c4e2bfbb9225b012e203d5a43bf
647f55d75de0a6b09b2171682e78de34160f09f2 07-Sep-2016 Jeff Tinker <jtinker@google.com> Fix stack content leak vulnerability in mediaserver
am: 9a6861cbd3

Change-Id: I3c8d56b18678f68ff4617620312c4c32d4e0baf7
9a6861cbd3bb0e1b8fe4c105795256ee032f9664 02-Sep-2016 Jeff Tinker <jtinker@google.com> Fix stack content leak vulnerability in mediaserver

bug: 30875060
Change-Id: I03f4d08b7b31ac5b507cfc9e65e5607c73972d95
Drm.cpp
d7a756ce1c11c17d897117df35dbc217a0c09567 30-Aug-2016 Dan Willemsen <dwillemsen@google.com> Merge "Convert to Android.bp" am: dd780c160d am: 1ee5667b7e am: 04fdc15790
am: 55490dcc95

Change-Id: Ic50254031f6879c696be36a5e7ccbda8533acfb7
55490dcc954dc04aaabcaf0bb0dfc44af9bf2c01 30-Aug-2016 Dan Willemsen <dwillemsen@google.com> Merge "Convert to Android.bp" am: dd780c160d am: 1ee5667b7e
am: 04fdc15790

Change-Id: I4f3a0801a6166921ba5bc93abb81dc6abf6121bb
04fdc1579006533a634e7071b02976652b747382 30-Aug-2016 Dan Willemsen <dwillemsen@google.com> Merge "Convert to Android.bp" am: dd780c160d
am: 1ee5667b7e

Change-Id: Ib85518624aedc9099e1aab4757e5e7c95afd6fac
442a2ee35a2c3922237540aed8c16481e03dfb0d 27-Aug-2016 Dan Willemsen <dwillemsen@google.com> Convert to Android.bp

See build/soong/README.md for more information.

Change-Id: Ib5abad8bcb63bd3f3aa19a08817276fe21902515
ndroid.bp
ndroid.mk
bf7752ea6aa7fef4a75b73fed869298d59cdf580 24-Aug-2016 Glenn Kasten <gkasten@google.com> sched_getscheduler may include SCHED_RESET_ON_FORK am: 8255ba7b40 am: f4da60ebc2 am: b2544bcc98
am: 3c901299c6

Change-Id: Ibefe0567ce2e98ee089af66bfea3532cf9908348
3c901299c6c0a8a7f52b2a2895cff80886777ada 24-Aug-2016 Glenn Kasten <gkasten@google.com> sched_getscheduler may include SCHED_RESET_ON_FORK am: 8255ba7b40 am: f4da60ebc2
am: b2544bcc98

Change-Id: I8e28c76bf3936f67f4a503b0d7cf438c19c8e472
f4da60ebc2c527a3f5afca30a28b1d73801ea850 24-Aug-2016 Glenn Kasten <gkasten@google.com> sched_getscheduler may include SCHED_RESET_ON_FORK
am: 8255ba7b40

Change-Id: I525d60cb487c87c517ba1edeadaf29b5f9a6cb54
8255ba7b40774b2b8868482f1a302db3ae98e905 23-Aug-2016 Glenn Kasten <gkasten@google.com> sched_getscheduler may include SCHED_RESET_ON_FORK

The SCHED_RESET_ON_FORK flag is visible in the policy value returned by sched_getscheduler()

Bug: 31020591
Change-Id: I5243fadce2a5f629fa2dc61888d8aa9aff32d9ca
udioRecord.cpp
udioTrack.cpp
9a4768f7bfcd4654f93ad9b22eff87df493a9d5e 02-Aug-2016 Lajos Molnar <lajos@google.com> DO NOT MERGE: IOMX: work against metadata buffer spoofing

- Prohibit direct set/getParam/Settings for extensions meant for
OMXNodeInstance alone. This disallows enabling metadata mode
without the knowledge of OMXNodeInstance.
- Do not share metadata mode buffers cross process.
- Disallow setting up metadata mode/tunneling/input surface
after first sendCommand. (Except to Idle for OMXCodec quirk.)
- Disallow store-meta for input cross process.
- Disallow emptyBuffer for surface input (via IOMX).
- Fix checking for input surface.

[backported from M]

Bug: 29422020
Change-Id: I801c77b80e703903f62e42d76fd2e76a34e4bc8e
OMX.cpp
86369364a07c85dd8f0e890b783a7bd434b8ef7c 02-Aug-2016 Lajos Molnar <lajos@google.com> DO NOT MERGE: IOMX: work against metadata buffer spoofing

- Prohibit direct set/getParam/Settings for extensions meant for
OMXNodeInstance alone. This disallows enabling metadata mode
without the knowledge of OMXNodeInstance.
- Do not share metadata mode buffers cross process.
- Disallow setting up metadata mode/tunneling/input surface
after first sendCommand. (Except to Idle state for OMXCodec quirk.)
- Disallow store-meta for input cross process.
- Disallow emptyBuffer for surface input (via IOMX).
- Fix checking for input surface.

[backported from L-MR1]

Bug: 29422020
Change-Id: I801c77b80e703903f62e42d76fd2e76a34e4bc8e
OMX.cpp
807e827d4c1196754faaf138cb93c57c5b137e69 02-Aug-2016 Lajos Molnar <lajos@google.com> DO NOT MERGE: IOMX: work against metadata buffer spoofing

- Prohibit direct set/getParam/Settings for extensions meant for
OMXNodeInstance alone. This disallows enabling metadata mode
without the knowledge of OMXNodeInstance.
- Do not share metadata mode buffers cross process.
- Disallow setting up metadata mode/input surface
after first sendCommand (except to Idle for OMXCodec quirk).
- Disallow store-meta for input cross process.
- Disallow emptyBuffer for surface input (via IOMX).
- Fix checking for input surface.

[backported from L]

Bug: 29422020
Change-Id: I801c77b80e703903f62e42d76fd2e76a34e4bc8e
OMX.cpp
b29385110c3f6a52e209c0e1cf70e9cf2eed5e89 18-Aug-2016 Eric Laurent <elaurent@google.com> Merge "Fix for tone glitch produced in ToneGenerator" am: 46f1c24c5a am: 84183ba496 am: 09b0b40fb4
am: 67b5bb745b

Bug: 29922404

Change-Id: Ie5185fda8ad4043ec199e9ebe74e67974ce7e44f
(cherry picked from commit 7f68f0f06504664b8b328f8b99ab5479f9dbd1a8)
oneGenerator.cpp
7f68f0f06504664b8b328f8b99ab5479f9dbd1a8 18-Aug-2016 Eric Laurent <elaurent@google.com> Merge "Fix for tone glitch produced in ToneGenerator" am: 46f1c24c5a am: 84183ba496 am: 09b0b40fb4
am: 67b5bb745b

Change-Id: Ie5185fda8ad4043ec199e9ebe74e67974ce7e44f
67b5bb745b1eb502cf6cfcd4fc8f7b2e4dccff59 18-Aug-2016 Eric Laurent <elaurent@google.com> Merge "Fix for tone glitch produced in ToneGenerator" am: 46f1c24c5a am: 84183ba496
am: 09b0b40fb4

Change-Id: I0b2765bba69b2de8ec6a5d6cdc894c03e587ce2a
09b0b40fb4668726622891d40f16984c29ff05ba 18-Aug-2016 Eric Laurent <elaurent@google.com> Merge "Fix for tone glitch produced in ToneGenerator" am: 46f1c24c5a
am: 84183ba496

Change-Id: Iae5baa5892962245143dfecf4bac156dfe5a7912
84183ba49683678a3420c4c1108be7c1be69443c 18-Aug-2016 Eric Laurent <elaurent@google.com> Merge "Fix for tone glitch produced in ToneGenerator"
am: 46f1c24c5a

Change-Id: If7da9dbfe106fdda640fc817a4fffe05b2ed5dff
46f1c24c5ac7711702147c4db20e791827a88371 18-Aug-2016 Eric Laurent <elaurent@google.com> Merge "Fix for tone glitch produced in ToneGenerator"
149df9f07107e249acec848c5a53d7b4c0d16a16 18-Aug-2016 Andy Hung <hunga@google.com> MediaBuffer: Only use shared memory for processes that export MediaBuffers am: cfa86b5efa
am: fde5258be5

Change-Id: I63edca0af5b025d650e9409045aa3b691555a21e
cfa86b5efa029391df04182dedfabd72b49a32f5 30-Jul-2016 Andy Hung <hunga@google.com> MediaBuffer: Only use shared memory for processes that export MediaBuffers

Reduces excess file descriptors and shared memory creation and releases.

Bug: 28930897
Bug: 30341084
Change-Id: I8190e22dd800f25be79ec33cb02613d15482e1d4
MediaExtractorService.cpp
5ca8f32280377dd923e72c3c6bd3994217461b8b 11-Aug-2016 Chih-Hung Hsieh <chh@google.com> resolve merge conflicts of fd923e7 to stage-aosp-master am: df5d9246f9
am: 63ef5a38f8

Change-Id: I516a43c5e56323e99ad7a8ca2e4811b77c9704f4
63ef5a38f82d22c1f97922fe490a1fd336566d5c 11-Aug-2016 Chih-Hung Hsieh <chh@google.com> resolve merge conflicts of fd923e7 to stage-aosp-master
am: df5d9246f9

Change-Id: I20767244fef48ad42334c5131e2d402f75bb7327
df5d9246f9607b1c2f8b134c46a05af06e206da3 11-Aug-2016 Chih-Hung Hsieh <chh@google.com> resolve merge conflicts of fd923e7 to stage-aosp-master

Change-Id: I75b44b89bae41197a1fd68362d20b8ba2b4dd192
e964d4e421e2d1ca937227a580c0c837091a11e3 09-Aug-2016 Chih-Hung Hsieh <chh@google.com> Fix clang-tidy warnings in audio and playerservice.

* Add explicit keyword to conversion constructors.
Bug: 28341362
* Use const reference type for read-only parameters.
Bug: 30407689
Test: build with WITH_TIDY=1

Change-Id: I265f3b094e08d5705b506b3fbba51439c134af84
udioSystem.cpp
AudioPolicyService.cpp
36d0ca16024820df9a12903d2ac443fabcc180bc 09-Aug-2016 Chih-Hung Hsieh <chh@google.com> Fix clang-tidy warnings in audio and playerservice.

* Add explicit keyword to conversion constructors.
Bug: 28341362
* Use const reference type for read-only parameters.
Bug: 30407689
Test: build with WITH_TIDY=1

Change-Id: I265f3b094e08d5705b506b3fbba51439c134af84
Merged-In: I265f3b094e08d5705b506b3fbba51439c134af84
udioSystem.cpp
AudioPolicyService.cpp
29ac8d5c17fa8d75253e2a4baa70a30075f670af 05-Aug-2016 Andy Hung <hunga@google.com> Merge "MediaBuffer: Only use shared memory for processes that export MediaBuffers"
f8a4cb410115045278f534e54b41ac78d6bf6c07 02-Aug-2016 Lajos Molnar <lajos@google.com> IOMX: work against metadata buffer spoofing

- Prohibit direct set/getParam/Settings for extensions meant for
OMXNodeInstance alone. This disallows enabling metadata mode
without the knowledge of OMXNodeInstance.
- Do not share metadata mode buffers cross process.
- Disallow setting up metadata mode/tunneling/input surface
after first sendCommand.
- Disallow store-meta for input cross process.
- Disallow emptyBuffer for surface input (via IOMX).
- Fix checking for input surface.

Bug: 29422020
Change-Id: I801c77b80e703903f62e42d76fd2e76a34e4bc8e
OMX.cpp
f8a6fff499b7defd9ea709118b979cd1035f6e61 02-Aug-2016 Tyler Gunn <tgunn@google.com> Add Australia specific supervisory tones. am: 50029b6d73 am: 0edaaefadd
am: d393216f27

Change-Id: If6659753f7a8b5d3f29b133ab136a7e3d9d96dea
d393216f2744b2f7359814c595e4e384e0b776f3 02-Aug-2016 Tyler Gunn <tgunn@google.com> Add Australia specific supervisory tones. am: 50029b6d73
am: 0edaaefadd

Change-Id: I9a46fafda33e1fa710c130ca09dde878f293eac4
4c3d1ee7415116f43c71e33ce1b2b2d72a311922 30-Jul-2016 Andy Hung <hunga@google.com> MediaBuffer: Only use shared memory for processes that export MediaBuffers

Reduces excess file descriptors and shared memory creation and releases.

Bug: 28930897
Bug: 30341084
Change-Id: I8190e22dd800f25be79ec33cb02613d15482e1d4
MediaExtractorService.cpp
50029b6d7333197cc3d48e5d7e3bfd6ac3a288f0 02-Aug-2016 Tyler Gunn <tgunn@google.com> Add Australia specific supervisory tones.

Source: http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf

Bug: 30492475
Change-Id: I39bab77ec4db8c81aa0e9f6c509c67970a76ab81
oneGenerator.cpp
fe0f3d64346e7f3600237b8621c841ef90e9881f 26-Jul-2016 Andy Hung <hunga@google.com> ToneGenerator: Increase buffer framecount am: 7711c90d95
am: b25395b171

Change-Id: I2cd9e7ea331a323530fa654da15f2a06fbc9a75f
b25395b1711f680bfc2b285c4f8577c8e9293898 26-Jul-2016 Andy Hung <hunga@google.com> ToneGenerator: Increase buffer framecount
am: 7711c90d95

Change-Id: I6754d4fa3a9a227ba90ec4b491f499fe57e8582a
5cd258a918f4eebde4b899f71126cbfba42895c7 26-Jul-2016 Andy Hung <hunga@google.com> Merge "ToneGenerator: Increase buffer framecount" into nyc-mr1-dev
309204e2c904c9a22b3a6c3925ed644b343fa3a6 26-Jul-2016 Glenn Kasten <gkasten@google.com> Fix AudioRecord::read and AudioTrack::write return am: 0a2f151f37
am: 0e0c9f059b

Change-Id: I8b80e1aedf14212856ecabbddd3e3ae037c2b3d2
0e0c9f059b5ec9136367203880757a9b7758e86f 26-Jul-2016 Glenn Kasten <gkasten@google.com> Fix AudioRecord::read and AudioTrack::write return
am: 0a2f151f37

Change-Id: I9926f0046a6e2f550be852faf4b4d08d8c444260
7711c90d957514efd5fa68d3fdf269e919a36720 26-Jul-2016 Andy Hung <hunga@google.com> ToneGenerator: Increase buffer framecount

Using default fast track buffer size made glitches evident;
increase to at least process size.

Bug: 29345846
Change-Id: Ib554f31d5f5731dfad481c5e48c26e7c529a2a6b
oneGenerator.cpp
0a2f151f37c715078351ae0be99b0c4dbabc2a23 22-Jul-2016 Glenn Kasten <gkasten@google.com> Fix AudioRecord::read and AudioTrack::write return

value to only be one of the documented status codes.

Bug: 30158307
Change-Id: If1ba16ce2ee10ba5ccb1674003a4b8fa086f27bc
udioRecord.cpp
udioTrack.cpp
a7edc529e64934aeb2044a6e6e69056f4ccbfea0 15-Jul-2016 Andy Hung <hunga@google.com> Merge \\"GenericSource: Allow multiple buffer reads for video\\" into nyc-mr1-dev am: e98f14ff19
am: 888de371da

Change-Id: I0cb63a7e930acc92408a94fbf2b381f6f1fe2d60
888de371da1b821975506c6013e2013ed6024e02 15-Jul-2016 Andy Hung <hunga@google.com> Merge \"GenericSource: Allow multiple buffer reads for video\" into nyc-mr1-dev
am: e98f14ff19

Change-Id: I8348ecb645e1aef74064bacdbacd8de6c20e4d94
277d08aa27cad359fc8484f4234ae812795acc8d 15-Jul-2016 Andy Hung <hunga@google.com> resolve merge conflicts of e8d9d6d to master

Change-Id: I85bc31cb4eab680aee2ba409dddd975e0696b37e
e8d9d6d8ff2c229313ab7f079ae52445e8ee6b5a 15-Jul-2016 Andy Hung <hunga@google.com> Merge \"IMediaSource: Improve shared memory buffer transfer\" into nyc-mr1-dev
am: 83efe020b9

Change-Id: I20c727525eb2aa9d9858ee59d699c5ae8b81ef1f
2d46f5972c0f7583a36e9df0c9622e91d6a1a5fd 14-Jul-2016 Wei Jia <wjia@google.com> MediaExtractor: add DrmInitialization in IDataSource.
am: 9a1a953745

Change-Id: Ib5a5b4c2989fb9688e53ad4251892b8a6b863f2b
9a1a9537456e41cb8450f84a735c3d005a22ffe2 07-Jul-2016 Wei Jia <wjia@google.com> MediaExtractor: add DrmInitialization in IDataSource.

Bug: 28901867
Change-Id: Ic33dc8dc2f5f36239e057d2f2aceeb7738eef968
(cherry picked from commit 2a5e49c984befa066e966cd9af2303a54976f163)
DataSource.cpp
cdeb6603d862cec4adac7c39f3b8b240f2b645dc 29-Jun-2016 Andy Hung <hunga@google.com> GenericSource: Allow multiple buffer reads for video

Bug: 29125703
Change-Id: I23490a65ad3968d7be561805c9fa742320b5c78a
MediaSource.cpp
f59c0bafebcd795b20141bf928a5cab8ac46e882 16-Jun-2016 Andy Hung <hunga@google.com> IMediaSource: Improve shared memory buffer transfer

Bug: 29125703
Change-Id: Icf1180dee65f6504e6c10dd4d5b28a8e441f67d1
MediaSource.cpp
b23a8a8d5d56dc308438d523a66554a3a59227cf 13-Jul-2016 Wei Jia <wjia@google.com> Merge \\"MediaExtractor: add DrmInitialization in IDataSource.\\" into nyc-mr1-dev am: 489eb9bfaa
am: 464578df77

Change-Id: I2470062d2da23bd18e647ace03911722f6af6ff9
464578df7725dc452b35466e469b35e6f39d8e8f 13-Jul-2016 Wei Jia <wjia@google.com> Merge \"MediaExtractor: add DrmInitialization in IDataSource.\" into nyc-mr1-dev
am: 489eb9bfaa

Change-Id: I91208fea89388be02550c6c8b7a728dd9dd1ee31
2a5e49c984befa066e966cd9af2303a54976f163 07-Jul-2016 Wei Jia <wjia@google.com> MediaExtractor: add DrmInitialization in IDataSource.

Bug: 28901867
Change-Id: Ic33dc8dc2f5f36239e057d2f2aceeb7738eef968
DataSource.cpp
48b0693c7e74e7c2792e289b3e5a0b6e9c180192 12-Jul-2016 Eric Laurent <elaurent@google.com> Merge \\\\"Fix WaveGenerator memory leak\\\\" am: f58e41ab2f am: faf2adda1b am: 9950354362
am: 38c26fba02

Change-Id: I5c3af1c98cfa7f64632b3be6ec8c1224da5f6d65
38c26fba02e512c0391878eb6bfc2ed1a88443de 12-Jul-2016 Mykola Kondratenko <mykola.kondratenko@sonymobile.com> Merge \\\"Fix WaveGenerator memory leak\\\" am: f58e41ab2f am: faf2adda1b
am: 9950354362

Change-Id: I8f83a4c8415a568eaea68a06154a41686b12df6d
faf2adda1b3644079e202c2286c817843ecc115d 12-Jul-2016 Mykola Kondratenko <mykola.kondratenko@sonymobile.com> Merge \"Fix WaveGenerator memory leak\"
am: f58e41ab2f

Change-Id: I4690fad5c3e89abc57cd63e50f30cf0fbbab1294
2b49066e0261377477aef9743a9db82805d0eb8d 14-Aug-2015 Mykola Kondratenko <mykola.kondratenko@sonymobile.com> Fix WaveGenerator memory leak

Releasing memory with ToneGenerator::stopTone() depends on
ToneGenerator::mState that can cause memory leak in case
mState is TONE_INIT.

Remove dependency to mState by adding ToneGenerator::clearWaveGens()
explicit call in ToneGenerator destructor.

Bug: 29916937

Change-Id: I5ccfbca9f2ae1abac9e160a2a309fb6962d4a110
oneGenerator.cpp
f58e41ab2f182297b3f7337040accbefee16e702 12-Jul-2016 Eric Laurent <elaurent@google.com> Merge "Fix WaveGenerator memory leak"
f1af17aa70d810b1184f90416efa3287976392a6 14-Aug-2015 Mykola Kondratenko <mykola.kondratenko@sonymobile.com> Fix WaveGenerator memory leak

Releasing memory with ToneGenerator::stopTone() depends on
ToneGenerator::mState that can cause memory leak in case
mState is TONE_INIT.

Remove dependency to mState by adding ToneGenerator::clearWaveGens()
explicit call in ToneGenerator destructor.

Bug: 29916937

Change-Id: I5ccfbca9f2ae1abac9e160a2a309fb6962d4a110
oneGenerator.cpp
818e974ecbca1150301be50492867403876fddd7 01-Jul-2016 Eric Laurent <elaurent@google.com> resolve merge conflicts of c9a7b55 to nyc-mr1-dev-plus-aosp
am: b01ac38569

Change-Id: I5be64fe803d7a85a387342031d9d5ab280b98c47
b01ac3856987aa4cf3176b6e676e4dd9a27dddc8 01-Jul-2016 Eric Laurent <elaurent@google.com> resolve merge conflicts of c9a7b55 to nyc-mr1-dev-plus-aosp

Change-Id: I07b5b3213dd034ebed781648ccc8158c077f493f
1bcae276ab189c364393d6971ed8a7d5e6376498 06-Oct-2015 Lukasz Wasowicz <lukasz.wasowicz@sonymobile.com> Fix for wrong ringtone when using VoWiFi

If operator goes into flight mode and tries to make call via WiFi, then
property "gsm.operator.iso-country" is read as empty string and in
consequence mRegion is set as CEPT instead of specific country-area
name (e.g. instead of UNITED_KINGDOM).

We may check additional property that does not depend on network
operator: "gsm.sim.operator.iso-country" so that we could set mRegion
properly.

Bug: 29494265

Change-Id: Ia374f73159e005431fb0ad9bf8b5dbb3d9a3e294
oneGenerator.cpp
7a9c55c5cedf46ef4f6b3de034634312bd1ff0ee 18-Apr-2016 tadashi.aoyama <tadashi.xa.aoyama@sonymobile.com> Fix tone region(for US, CA and JP) recognition for dual SIM

Value of "gsm.operator.iso-country" differs between the case of single
SIM device and the case of dual SIM device with only one SIM enabled.
This change makes ToneGenerator detect region in case there is only
one SIM enabled in dual SIM device.

Change-Id: I771858ec9d85054d90d7d8141266655b42b093b9
oneGenerator.cpp
3743febf9567e849ce580ddc68579237d96e5a55 20-Nov-2015 takafumi nakamura <takafumi.x.nakamura@sonymobile.com> Add the conditions that determine the region for US, CA and JP

Region is incorrect when dual SIM is inserted.
ToneGenerator class doesn't consider the dual SIM use case,
so region is always set to a default value(CEPT) even if
these country's dual SIMs are inserted.

Change-Id: Iad684856f550b50345b71d8c07e99e27f87407a7
oneGenerator.cpp
ce4df5e534eb86748fe80c84efb6b7fc0b6b5b46 04-Mar-2016 Wonsik Kim <wonsik@google.com> stagefright: move MedaDefs from libstagefright to libmedia

Bug: 24761407
Change-Id: If4914340a645c6f3c14eea0c873c162926d72ca2
ndroid.mk
ediaDefs.cpp
d52f324a2663c72ec7fa1137a2e202e20d3f1497 23-Jun-2016 Glenn Kasten <gkasten@google.com> Merge \\\"Revert \\\"Restore old signature for acquire/release session\\\"\\\" into nyc-dev am: 6e70614750 am: 6a725defdf
am: 3cb0ba5bb5

Change-Id: I3f3550a74e6a82cb9a13649119a72b006419364d
3cb0ba5bb5042275372c899e4b3aa745a3d465df 23-Jun-2016 Glenn Kasten <gkasten@google.com> Merge \\"Revert \\"Restore old signature for acquire/release session\\"\\" into nyc-dev am: 6e70614750
am: 6a725defdf

Change-Id: I8591cfa0ac94a3dd13c97a596e48f7647adda69f
793caf8a76375aff3c22af4db7489859408f9b10 23-Jun-2016 Glenn Kasten <gkasten@google.com> Merge \"Revert \"Restore old signature for acquire/release session\"\" into nyc-dev
am: 6e70614750

Change-Id: Icbbcfdbbfce7ce8f00e40e58c9a13d1a1a245f37
6a725defdfeac9ba1d608504a87ea9095c73db55 23-Jun-2016 Glenn Kasten <gkasten@google.com> Merge \"Revert \"Restore old signature for acquire/release session\"\" into nyc-dev
am: 6e70614750

Change-Id: Ia4d3883803cdf91f0459e8549523cadb64afba51
6e70614750e8100f86fb4cb0f010b49aef39b3a1 23-Jun-2016 Glenn Kasten <gkasten@google.com> Merge "Revert "Restore old signature for acquire/release session"" into nyc-dev
fc5c22b0c574f97fbf5c87f9a01b4d60e27e6b37 23-Jun-2016 Glenn Kasten <gkasten@google.com> Revert "Restore old signature for acquire/release session"

This reverts commit 2d51b7c18ad0ffd142d7ba94203f52ba3f735530.

Change-Id: I8e17813b9639d8e928bcfa348d21c45fb8b5f846
udioSystem.cpp
aaddfa248b8d4ed8961454a4f3ee0f535668f809 23-Jun-2016 Glenn Kasten <gkasten@google.com> Merge \\\"Restore old signature for acquire/release session\\\" into nyc-dev am: ef9cab1d86 am: 20ca8a71cb
am: c3b8968cb4

Change-Id: I0acc82b1b4b4365417bdf0e6263552745fa2d030
c3b8968cb434fcdf270bb9eaaa96f859c4c14f58 23-Jun-2016 Glenn Kasten <gkasten@google.com> Merge \\"Restore old signature for acquire/release session\\" into nyc-dev am: ef9cab1d86
am: 20ca8a71cb

Change-Id: Iafa989fcaab7678cfc5b4d6305322591e717caa3
dc43ff40e32db2ce14d21ce25ce8a0f887cf9aa9 23-Jun-2016 Glenn Kasten <gkasten@google.com> Merge \"Restore old signature for acquire/release session\" into nyc-dev
am: ef9cab1d86

Change-Id: I2de74604cdf21c4535904f9c913392952943d3b5
20ca8a71cbb39cac7eeb0c17bb2df3e0f941ee6d 23-Jun-2016 Glenn Kasten <gkasten@google.com> Merge \"Restore old signature for acquire/release session\" into nyc-dev
am: ef9cab1d86

Change-Id: Ie5af8a39ffc8709b0d804927b2db5d13871492e0
ef9cab1d86054d8ab17056990e0264e1ccb826c1 23-Jun-2016 Glenn Kasten <gkasten@google.com> Merge "Restore old signature for acquire/release session" into nyc-dev
2d51b7c18ad0ffd142d7ba94203f52ba3f735530 23-Jun-2016 Glenn Kasten <gkasten@google.com> Restore old signature for acquire/release session

Bug: 29490416
Change-Id: Iaf6be0666937c6fa625f936839f5a04d58350640
udioSystem.cpp
03a298348baac8b1bb0bf6b4ad3549f76e3c4db1 22-Jun-2016 Andy Hung <hunga@google.com> Merge \\\"Limit cached timestamp use if HW fails to provide them\\\" into nyc-dev am: 0256917c88 am: aeffd19df0
am: b18af48e3c

Change-Id: I628b8869bb7dd183270a6309c6e70072786e00b5
b18af48e3c1e64aa99954eaf04ed857b61a135aa 22-Jun-2016 Andy Hung <hunga@google.com> Merge \\"Limit cached timestamp use if HW fails to provide them\\" into nyc-dev am: 0256917c88
am: aeffd19df0

Change-Id: I6f4c59ef161ef67395adecba15592868acc1b545
aeffd19df0a23cfcd09ef81ba136ce02ec76a37a 22-Jun-2016 Andy Hung <hunga@google.com> Merge \"Limit cached timestamp use if HW fails to provide them\" into nyc-dev
am: 0256917c88

Change-Id: I1186034edf91d3b136b2571fa0acadc9b21de891
ed61ffb179f0f5154ae9c7fa8b76fba28f686b71 22-Jun-2016 Andy Hung <hunga@google.com> Merge \"Limit cached timestamp use if HW fails to provide them\" into nyc-dev
am: 0256917c88

Change-Id: Ia0c7b61ec235f277f0266dac3320d25cdfeba4f0
07eee80b3422c0304491f24bbc415deb0badbefc 22-Jun-2016 Andy Hung <hunga@google.com> Limit cached timestamp use if HW fails to provide them

On some devices, if the HDMI cable is disconnected during use,
cached timestamp info can become very old.

Bug: 29423451
Change-Id: Ieecf5e98bad14d00b4f5f14b032c2cf66ae94ceb
udioTrack.cpp
53f3301c924fcd865ec99abb865b805e02ab1451 21-Jun-2016 Eric Laurent <elaurent@google.com> Merge \\\\"Fix for wrong ringtone when using VoWiFi\\\\" am: e3596517c1 am: 87f033a1ee am: 357b84734c
am: 6c6cd5f24b

Change-Id: Id6cfb7c108bd9e7168412bfa45eb865552f36a3a
6c6cd5f24b25a19f311fe00680588cb5e49a94a5 21-Jun-2016 Lukasz Wasowicz <lukasz.wasowicz@sonymobile.com> Merge \\\"Fix for wrong ringtone when using VoWiFi\\\" am: e3596517c1 am: 87f033a1ee
am: 357b84734c

Change-Id: I97f96c9797af9994f41258c8cae3eda4eceeb290
87f033a1eee7af1dd41c8de8263c72f1c3d61c82 21-Jun-2016 Lukasz Wasowicz <lukasz.wasowicz@sonymobile.com> Merge \"Fix for wrong ringtone when using VoWiFi\"
am: e3596517c1

Change-Id: I70e9055b946e92cf21c384ac263dbea0d679b23b
39390358583684e1703e7f19321725c88313fcaa 06-Oct-2015 Lukasz Wasowicz <lukasz.wasowicz@sonymobile.com> Fix for wrong ringtone when using VoWiFi

If operator goes into flight mode and tries to make call via WiFi, then
property "gsm.operator.iso-country" is read as empty string and in
consequence mRegion is set as CEPT instead of specific country-area
name (e.g. instead of UNITED_KINGDOM).

We may check additional property that does not depend on network
operator: "gsm.sim.operator.iso-country" so that we could set mRegion
properly.

Bug: 29494265

Change-Id: Ia374f73159e005431fb0ad9bf8b5dbb3d9a3e294
oneGenerator.cpp
d976c1c0675144b35f5bf9c7e3371c5e8aa75124 18-Jun-2016 Wei Jia <wjia@google.com> Merge \\"MediaPlayer: disallow calling setPlaybackParams in stopped state.\\" into nyc-mr1-dev am: 9ec10a72bf
am: 4dead6f3c8

Change-Id: I357634d2ef1013c38b2b26d779002692159d8d63
4dead6f3c81a8f21b71c7baedfe9cb73e112e167 18-Jun-2016 Wei Jia <wjia@google.com> Merge \"MediaPlayer: disallow calling setPlaybackParams in stopped state.\" into nyc-mr1-dev
am: 9ec10a72bf

Change-Id: I0a9497f8aa8c567579a53a59ae3c58848e6c4ccb
5af6a9b4a6924377d80de7c3f460f99b89cff91e 16-Jun-2016 Wei Jia <wjia@google.com> MediaPlayer: disallow calling setPlaybackParams in stopped state.

Bug: 29420829
Change-Id: Iaba71f3b975022f150962fa306c2426c61457820
ediaplayer.cpp
c163ec57093faf73c5b0749b7644898b284f84c0 15-Jun-2016 Wei Jia <wjia@google.com> Merge \\"IMediaSource: add supportReadMultiple().\\" into nyc-mr1-dev am: 5a71f1a211
am: ba505c621b

Change-Id: I25371f782242bba42addef9a9f672ec6fa4b1dfa
ba505c621b565e815739180ee8e779077a85b3c1 14-Jun-2016 Wei Jia <wjia@google.com> Merge \"IMediaSource: add supportReadMultiple().\" into nyc-mr1-dev
am: 5a71f1a211

Change-Id: I41bdcc6f58ef96718acddd19c169b6e54fcc26a9
d3f4e14d4c6ea02c49a50ad7c5fd08dd13b518e1 13-Jun-2016 Wei Jia <wjia@google.com> IMediaSource: add supportReadMultiple().

Bug: 29331573
Change-Id: I7cdff44878bd93671e98fe11c99d17e82410cdcb
MediaSource.cpp
10dbaa5876c0551adfc4c8a40842c5c7fdf39ff9 11-Jun-2016 Wei Jia <wjia@google.com> Merge \\\"MediaPlayer: fix state for setPlaybackParams.\\\" into nyc-dev am: d554814b49 am: 2e96e62e24
am: bff1cd866f

Change-Id: I6f4372b19331bdff8f74b755890baaa6d85c6fe8
bff1cd866fd81120540cc699c5d92092601e74d0 11-Jun-2016 Wei Jia <wjia@google.com> Merge \\"MediaPlayer: fix state for setPlaybackParams.\\" into nyc-dev am: d554814b49
am: 2e96e62e24

Change-Id: Ibf5b04a5eec5acd2837e50392ed172c405d03672
2e96e62e248b0019147e0de82d7984a1d832e2c7 11-Jun-2016 Wei Jia <wjia@google.com> Merge \"MediaPlayer: fix state for setPlaybackParams.\" into nyc-dev
am: d554814b49

Change-Id: I370dc96e87250b20d5adaeb32f09df96c105d62d
1978994a117f0bac69e7b17af6ffe1dc9e632272 11-Jun-2016 Wei Jia <wjia@google.com> Merge \"MediaPlayer: fix state for setPlaybackParams.\" into nyc-dev
am: d554814b49

Change-Id: I31d18ed997e8a9519e717bf1721a2a9407e33328
d554814b49ae68a1e4a24f628bd0fed73a12ad08 11-Jun-2016 Wei Jia <wjia@google.com> Merge "MediaPlayer: fix state for setPlaybackParams." into nyc-dev
5be109faadfc08b561221bd801082873b614b93d 11-Jun-2016 Wei Jia <wjia@google.com> MediaPlayer: fix state for setPlaybackParams.

Bug: 29032949
Change-Id: I7580a04cc03f96109a770f95abd3fb884c810103
ediaplayer.cpp
75b4830b14a67597692133988a2634cc933f8770 10-Jun-2016 Marco Nelissen <marcone@google.com> Merge \\\"Don\\\'t use sp<>&\\\" into nyc-dev am: 09b5fd9cbf am: 88b6c4d3d8
am: bd9895f125

Change-Id: Ia537d480e843ec1f6f4d513ad2c1fed0ff2f7e58
bd9895f125e17a2463b4f9cf99c0f227a76aa1e7 10-Jun-2016 Marco Nelissen <marcone@google.com> Merge \\"Don\\'t use sp<>&\\" into nyc-dev am: 09b5fd9cbf
am: 88b6c4d3d8

Change-Id: I736f8066a2c2ee6ae63f3d6f66b485d3c2cbcb71
88b6c4d3d87cb9c2fd8fc3d9761975b097302eaf 10-Jun-2016 Marco Nelissen <marcone@google.com> Merge \"Don\'t use sp<>&\" into nyc-dev
am: 09b5fd9cbf

Change-Id: Id2e6fc9f6a85ff1d17fd6225291858b5012dda32
504e6adea003bc26688f0e84e58eb91feaa439ef 10-Jun-2016 Marco Nelissen <marcone@google.com> Merge \"Don\'t use sp<>&\" into nyc-dev
am: 09b5fd9cbf

Change-Id: I45e45e8f550922ef86daee7febf0ee6e4f427e95
fc908d010b32bbb850a6306893ce7db166a932f6 07-Jun-2016 Marco Nelissen <marcone@google.com> Don't use sp<>&

because they may end up pointing to NULL after a NULL check was performed.

Bug: 28166152
Change-Id: Iab2ea30395b620628cc6f3d067dd4f6fcda824fe
MediaDeathNotifier.cpp
ediaplayer.cpp
ediarecorder.cpp
1f56e8a581b26bad357865aee53063e246dbdc55 09-Jun-2016 Marco Nelissen <marcone@google.com> Merge \\"Don\\'t use sp<>&\\" into lmp-mr1-ub-dev am: 277a8ab9ab
am: 4905ff3baf

Change-Id: Ia8ba85cf0bde2f32afb7f6704e4653c6c0e907ed
4905ff3baf0527641b93892357e93075583e61dc 09-Jun-2016 Marco Nelissen <marcone@google.com> Merge \"Don\'t use sp<>&\" into lmp-mr1-ub-dev
am: 277a8ab9ab

Change-Id: I67bac3501905ca69180bf187bf53a4a0e7581ee8
d01cc80eaf2c5e1a1681d1410626c0ea7ba1dca8 07-Jun-2016 Marco Nelissen <marcone@google.com> Don't use sp<>&

because they may end up pointing to NULL after a NULL check was performed.

Bug: 28166152
Change-Id: Iab2ea30395b620628cc6f3d067dd4f6fcda824fe
MediaDeathNotifier.cpp
ediaplayer.cpp
ediarecorder.cpp
949333a3ab4868c1cc7b2e0ed26d045fd99d8a88 09-Jun-2016 Marco Nelissen <marcone@google.com> Don\'t use sp<>&
am: d0f4bfb552

Change-Id: I0490c443ad93133a8023134789dcecbcfc159cf3
d0f4bfb5527e88e868c4263cb6c9d219367b9fc9 07-Jun-2016 Marco Nelissen <marcone@google.com> Don't use sp<>&

because they may end up pointing to NULL after a NULL check was performed.

Bug: 28166152
Change-Id: Iab2ea30395b620628cc6f3d067dd4f6fcda824fe
MediaDeathNotifier.cpp
ediaplayer.cpp
ediarecorder.cpp
e66381758d6ba02494251e6097e0774a56524be5 09-Jun-2016 Marco Nelissen <marcone@google.com> Merge \\"Don\\'t use sp<>&\\" into klp-dev am: 598f8d3218
am: 0ee3710873

Change-Id: I95ce93c3c1975b444bd6cd2c49a3b215395d2754
fc47a301b7b2b044eddaedc98861d55193ec7dc0 07-Jun-2016 Marco Nelissen <marcone@google.com> Don't use sp<>&

because they may end up pointing to NULL after a NULL check was performed.

Bug: 28166152
Change-Id: Iab2ea30395b620628cc6f3d067dd4f6fcda824fe
MediaDeathNotifier.cpp
ediaplayer.cpp
ediarecorder.cpp
4cfa355eedae56e047b63b1b02fc6d789e21980d 04-Jun-2016 Eric Laurent <elaurent@google.com> Merge "Add AudioTrack and AudioRecord flag checks" into nyc-mr1-dev am: 2f8e63b5be
am: b70868bb33

* commit 'b70868bb337f0b12f993494f4d110979a33ddd24':
Add AudioTrack and AudioRecord flag checks

Change-Id: Ia6ab9998dcaa065d18fc048ae5ea6bb3e087ba62
b70868bb337f0b12f993494f4d110979a33ddd24 04-Jun-2016 Eric Laurent <elaurent@google.com> Merge "Add AudioTrack and AudioRecord flag checks" into nyc-mr1-dev
am: 2f8e63b5be

* commit '2f8e63b5be5b0160302cffe1f1f18e560d31d3e7':
Add AudioTrack and AudioRecord flag checks

Change-Id: If9043721f4763ce0f4db96c63595f92c5ba22556
2f8e63b5be5b0160302cffe1f1f18e560d31d3e7 04-Jun-2016 Eric Laurent <elaurent@google.com> Merge "Add AudioTrack and AudioRecord flag checks" into nyc-mr1-dev
050677873c10d4da308ac222f8533c96cca3207e 02-Jun-2016 Eric Laurent <elaurent@google.com> Add AudioTrack and AudioRecord flag checks

Verify that the requested flags are compatible with the input
or output flags when creating and AudioRecord or AudioTrack

Get rid of IAudioFlinger::track_flags_t which was redundant
with audio_input_flags_t and audio_output_flags_t.

Change-Id: I0dd9232f857b2737e99a8c668806e45bce09cdbd
udioRecord.cpp
udioTrack.cpp
AudioFlinger.cpp
6f293d93d203832e64283b9d2a887f2214d920a6 03-Jun-2016 Marco Nelissen <marcone@google.com> Merge "limit mediaextractor memory" into nyc-dev am: 559b01b20a am: d5ce35aed9
am: 92505843f7

* commit '92505843f73008730a79388b7e8a646571f91e56':
limit mediaextractor memory

Change-Id: I6248cd92242d0ca21e34aa155ff7d32e67e8bb9e
d5ce35aed9ae96ee7f791b67f2d81fcc1ab81295 03-Jun-2016 Marco Nelissen <marcone@google.com> Merge "limit mediaextractor memory" into nyc-dev
am: 559b01b20a

* commit '559b01b20a18bce9017a199b93241690860fa0b7':
limit mediaextractor memory

Change-Id: I3921d30dcf8dd7449ddc3b4fd76fa186294ed8da
c57fe21ebdd6813c5a8954f3fda51b82d26acd07 31-May-2016 Marco Nelissen <marcone@google.com> limit mediaextractor memory

Limit mediaextractor using rlimit, to prevent it from bringing down the system
via the low memory killer.

Bug: 28471206
Bug: 28615448
Change-Id: Ic84137435d1ef0a6883e9789a4b4f399e4283f05
ndroid.mk
ediaUtils.cpp
ediaUtils.h
adcbf8f4c9ed345fa6665e934742dc9e11da3747 27-May-2016 Chih-Hung Hsieh <chh@google.com> resolve merge conflicts of 9764d52 to nyc-dev-plus-aosp am: 4c39b9c742
am: f897e4a66f

* commit 'f897e4a66f814e653980271ab67d3605228c8bb5':
Fix misc-macro-parentheses warnings.

Change-Id: I104a6333d3bd74411731ffda425711853cb21d2f
d9adebb616746e764e1614d86739fb093eb833ca 27-May-2016 Eric Laurent <elaurent@google.com> Merge "Fix tone region(for US, CA and JP) recognition for dual SIM" am: 5b326e16d5 am: f82e7a9149 am: f69feffd84
am: e0f8d0c69c

* commit 'e0f8d0c69cbaafad8f4f62ef602994dd4eb63900':
Fix tone region(for US, CA and JP) recognition for dual SIM

Change-Id: I5fdb4b408a0b06161749b937350ea29cf16908e6
4c39b9c74224782a6ceb299554f4abc9e1cf5733 27-May-2016 Chih-Hung Hsieh <chh@google.com> resolve merge conflicts of 9764d52 to nyc-dev-plus-aosp

Change-Id: I52d001d9dff4b250769e5fa59f9aea461b435193
f69feffd84bc736a8cdee7902bfcf988409af7c1 27-May-2016 Eric Laurent <elaurent@google.com> Merge "Fix tone region(for US, CA and JP) recognition for dual SIM" am: 5b326e16d5
am: f82e7a9149

* commit 'f82e7a914967e78aae3a7f5f368a1404e8369b4a':
Fix tone region(for US, CA and JP) recognition for dual SIM

Change-Id: I39341bf5ae0f86f22bee26ac57a6867dbb353f4a
e0a6fa055310aac547882aef92c82276d04da9f1 27-May-2016 Chih-hung Hsieh <chh@google.com> Merge "Fix misc-macro-parentheses warnings."
5b326e16d5ff9705eac5e848465edc93c70750b7 27-May-2016 Eric Laurent <elaurent@google.com> Merge "Fix tone region(for US, CA and JP) recognition for dual SIM"
0bc9277c965d3cf5228c71c7ce0dc7f48975f20d 18-Apr-2016 tadashi.aoyama <tadashi.xa.aoyama@sonymobile.com> Fix tone region(for US, CA and JP) recognition for dual SIM

Value of "gsm.operator.iso-country" differs between the case of single
SIM device and the case of dual SIM device with only one SIM enabled.
This change makes ToneGenerator detect region in case there is only
one SIM enabled in dual SIM device.

Change-Id: I771858ec9d85054d90d7d8141266655b42b093b9
oneGenerator.cpp
0ccaca151cd666de6eb1140fdf330d6cca1cf9a3 25-May-2016 Chih-hung Hsieh <chh@google.com> Merge "Merge "Fix misc-macro-parentheses warnings." am: 945da9bbcd am: b3db6b8c3e" into nyc-dev-plus-aosp am: ae46b50c57
am: c26f645ffd

* commit 'c26f645ffd66a2f268334c6527b3e7bd5217cf7b':
Fix misc-macro-parentheses warnings.

Change-Id: I4b95492d54c81c261b243a4bb72195fa589ae665
8a4348bb7a598eab9b692d782595689112df367a 25-May-2016 Andy Hung <hunga@google.com> resolve merge conflicts of 5d8e380 to nyc-mr1-dev am: b09a6d0832
am: 6b0a8693e1

* commit '6b0a8693e169a97f5fd92260bcbd437b514d7691':
AudioTrack: Fix timestamp startup condition

Change-Id: Ie11abf463d4ca8b065fffc66bfb1c4db37a3ca4c
6b0a8693e169a97f5fd92260bcbd437b514d7691 25-May-2016 Andy Hung <hunga@google.com> resolve merge conflicts of 5d8e380 to nyc-mr1-dev
am: b09a6d0832

* commit 'b09a6d08321b9484d80a2a9dc11ed52623942c8d':
AudioTrack: Fix timestamp startup condition

Change-Id: Id2c883949a47daac936266310ebe4d69a5965eb3
ae46b50c57ac3386d9c8eec00eacc6b60bb2bd1a 25-May-2016 Android Build Merger (Role) <android-build-merger@google.com> Merge "Merge "Fix misc-macro-parentheses warnings." am: 945da9bbcd am: b3db6b8c3e" into nyc-dev-plus-aosp
688d14a492a16a82e55f654bc2ca66ce50ebf715 25-May-2016 Chih-hung Hsieh <chh@google.com> Merge "Fix misc-macro-parentheses warnings." am: 945da9bbcd
am: b3db6b8c3e

* commit 'b3db6b8c3e04337ec3b122a106f89d4691009bd9':
Fix misc-macro-parentheses warnings.

Change-Id: Ief489e128b5b77e3fed5878ce042b2325b7848bc
8572ee135c9af5aacf74f02dd3ce8e9eb3956ec4 25-May-2016 Andy Hung <hunga@google.com> Merge "AudioTrack: Fix timestamp startup condition" into nyc-dev
am: 5d8e3808b4

* commit '5d8e3808b4012fa72bedf5898803682831f88e84':
AudioTrack: Fix timestamp startup condition

Change-Id: Ibc54738fb4beee0db7559e5b9f76910d639e966f
69488c4ef115c9de52c85f4fcae27c7774720298 17-May-2016 Andy Hung <hunga@google.com> AudioTrack: Fix timestamp startup condition

Suppress timestamps without valid kernel information or
a server update.

Update timing of server timestamp location to better indicate
when the server pull occurs.

Update write timing logic to suppress unneeded time calls
and to ensure proper throttling.

Bug: 28771691
Change-Id: I2cd25dad638ca1d0b1355d87d175d908f3bddb26
udioTrack.cpp
f797c3a3de15563ed1a66f067689b8717f724831 24-May-2016 Andy Hung <hunga@google.com> Merge "Add memory heap checks for mediaserver and audioserver" into nyc-dev am: f3d9908a88 am: ce2b51c91f
am: e34a44ff6c

* commit 'e34a44ff6cb12e65736c09e1baab1823de190e03':
Add memory heap checks for mediaserver and audioserver

Change-Id: I7176f6a4d3d27343e7ac5bb22a476e4e3076ed17
e34a44ff6cb12e65736c09e1baab1823de190e03 24-May-2016 Andy Hung <hunga@google.com> Merge "Add memory heap checks for mediaserver and audioserver" into nyc-dev am: f3d9908a88
am: ce2b51c91f

* commit 'ce2b51c91f431be6a62b2fed746650d18499cb83':
Add memory heap checks for mediaserver and audioserver

Change-Id: If5a9216ef18a9af22154d1510f835e0b3fafa651
5cb96b83e6bff91a5ab006ff542dc32031be9087 24-May-2016 Andy Hung <hunga@google.com> Merge "Add memory heap checks for mediaserver and audioserver" into nyc-dev
am: f3d9908a88

* commit 'f3d9908a888203e7e70b8c2d43ee741a95e154ed':
Add memory heap checks for mediaserver and audioserver

Change-Id: I8b5dda2e29da8651cbd9dbc77fa9ca6211b1a47d
f3d9908a888203e7e70b8c2d43ee741a95e154ed 24-May-2016 Andy Hung <hunga@google.com> Merge "Add memory heap checks for mediaserver and audioserver" into nyc-dev
7118308943d64f8d9e4c63b0e6d49da376be1966 24-May-2016 Eric Laurent <elaurent@google.com> Fix android.permission.CAPTURE_AUDIO_OUTPUT permission check am: b2379ba0a3 am: cc516cdd02
am: e52cab1f56

* commit 'e52cab1f56c39b72090f53ef3b2a187191d13143':
Fix android.permission.CAPTURE_AUDIO_OUTPUT permission check

Change-Id: Ia663aa8d975108cda5f0f2592d4bbf490bf776da
d9bb4b4e2ecc8fd0002249b73a23973208d74786 24-May-2016 Haynes Mathew George <hgeorge@codeaurora.org> Merge "audioflinger: Pass pid of process creating track or opening record" into nyc-dev am: a0e10ff02b am: 8b269a1708
am: a76c33e1bf

* commit 'a76c33e1bfc73baa190627cb9862b7789ddf8232':
audioflinger: Pass pid of process creating track or opening record

Change-Id: I6b9bf80afa039c16862c2979ff58a1592c1a02ff
cc516cdd0293fead98ed33fa0334c79a940c8653 24-May-2016 Eric Laurent <elaurent@google.com> Fix android.permission.CAPTURE_AUDIO_OUTPUT permission check
am: b2379ba0a3

* commit 'b2379ba0a32638bae2ea0460644f68cf5a0967ce':
Fix android.permission.CAPTURE_AUDIO_OUTPUT permission check

Change-Id: Iff08e0b44c71b63d101ca26c6ed9972fa030bfb1
8b269a1708b95d5f31ea59afb36bb42c26f91961 24-May-2016 Haynes Mathew George <hgeorge@codeaurora.org> Merge "audioflinger: Pass pid of process creating track or opening record" into nyc-dev
am: a0e10ff02b

* commit 'a0e10ff02b156738c0e5441104821b220eea3d68':
audioflinger: Pass pid of process creating track or opening record

Change-Id: I728ffba8938a82f8b8f7b773febafd5e466c8e4d
b2379ba0a32638bae2ea0460644f68cf5a0967ce 24-May-2016 Eric Laurent <elaurent@google.com> Fix android.permission.CAPTURE_AUDIO_OUTPUT permission check

Make sure we use the correct PID and UID when checking
android.permission.CAPTURE_AUDIO_OUTPUT permission from audio
policy service.

Bug: 28772898
Change-Id: I8f0c45bf7a5728b4364a451eefb6c025892ae9a5
udioRecord.cpp
udioSystem.cpp
AudioPolicyService.cpp
9ea77cdba8c422940adb57a790b44ac04fe0353f 07-Apr-2016 Haynes Mathew George <hgeorge@codeaurora.org> audioflinger: Pass pid of process creating track or opening record

AudioFlinger allocates a Client heap for each unique pid.
If two applications use mediaplayer APIs, the same Client heap
is reused as the pid used is not the application pid but that
of mediaserver. With this change, the pid of the application
pid is used to decide the heap to be used.

Bug: 23525542
Bug: 28772898
Change-Id: I31a695b0b321eff6e2aca80c3bc4aeb3e1cd9ac7
udioRecord.cpp
udioTrack.cpp
AudioFlinger.cpp
7b86b7519019ad27274a6069309db33ed05772fc 24-May-2016 Marco Nelissen <marcone@google.com> Merge "limit mediaserver memory" into mnc-dev
am: d64810330b

* commit 'd64810330ba81c6eb9a17e9fcc67b05ab4c29560':
limit mediaserver memory

Change-Id: I7a3e76e929fe6ddb1613b5956f218048cd9b707c
07b745e166ee62030960ccea37e117caadf71c32 24-May-2016 Andy Hung <hunga@google.com> Add memory heap checks for mediaserver and audioserver

Memory heap check updated and restored to mediaserver,
added as new option to audioserver.

Requires properties to be set (example for audioserver):

$ adb shell setprop libc.debug.malloc.program audioserver
$ adb shell setprop libc.debug.malloc.options backtrace=8
$ adb shell pkill audioserver

...

and to dump:

$ adb shell dumpsys media.audio_flinger -m

Bug: 28909124
Bug: 27500825
Change-Id: Ifa8c2c02b022daf1a799ee4a1d75282a3c921763
ndroid.mk
emoryLeakTrackUtil.cpp
6c1ad0dea93e4eb7c2a2ede1f3be9dcf07417455 13-May-2016 Marco Nelissen <marcone@google.com> limit mediaserver memory

Limit mediaserver using rlimit, to prevent it from bringing down the system
via the low memory killer.
Default max is 65% of total RAM, but can be customized via system property.

Bug: 28471206
Bug: 28615448
Change-Id: Ic84137435d1ef0a6883e9789a4b4f399e4283f05
ndroid.mk
ediaUtils.cpp
ediaUtils.h
4e61b921f04c068e88a7ab8561a6e054900f527e 24-May-2016 Marco Nelissen <marcone@google.com> Merge "limit mediaserver memory" into lmp-dev am: 41e0a503e6 am: 76f9ec33f0
am: 57dc6d9dce

* commit '57dc6d9dce0bbafa442fda41f98da858b89c5059':
limit mediaserver memory

Change-Id: Id57767343c25b32bf523ac1c5f421f2f38fb68ad
e816dcc0b3ea6d5cee3b0b4ff230a20ab85b5996 24-May-2016 Marco Nelissen <marcone@google.com> Merge "DO NOT MERGE limit mediaserver memory" into klp-dev am: f8429c0c14
am: 38ab87c3e3

* commit '38ab87c3e3cd4868958fcec4d1591ebc4a9e8d1a':
DO NOT MERGE limit mediaserver memory

Change-Id: I053031830618e20ff830ae3c097abba10ae73cfc
76f9ec33f0e0ac80904b1cebe50b5d2bb3ccaf07 24-May-2016 Marco Nelissen <marcone@google.com> Merge "limit mediaserver memory" into lmp-dev
am: 41e0a503e6

* commit '41e0a503e6f0c124208a7b9a8fa7321656359407':
limit mediaserver memory

Change-Id: I95f77a8d40bd8e7fcd5a0dfae71d29809a3e62cc
1438f0b215040eb92e2b1e799f757ad32d5f8f22 13-May-2016 Marco Nelissen <marcone@google.com> DO NOT MERGE limit mediaserver memory

Limit mediaserver using rlimit, to prevent it from bringing down the system
via the low memory killer.
Default max is 65% of total RAM, but can be customized via system property.

Bug: 28471206
Bug: 28615448
Change-Id: I14fac1e12b5f3983be08a21bfbfc54feedbf3f16
ndroid.mk
ediaUtils.cpp
ediaUtils.h
4183d539fd9528d79d2c740769d01233b19017a1 21-May-2016 Jeff Tinker <jtinker@google.com> Fix Security Vulnerability in mediaserver

Crash on new CryptoPlugin::SubSample[]. numSubSamples
wasn't sanity checked, a malicious caller could pass
a very large number of subsamples causing the new
operator to fail which would crash the server process.
Add a sanity check to numSubSamples, which is defined
by the ISO-BMFF spec to be represented as unsigned 16
bits.

bug: 23718580
Change-Id: I36e18e60f2515289d1873640a3408c01e40a1174
Crypto.cpp
d6baf6f91afc194669fbffda83117ac2059eb04c 18-May-2016 Chih-Hung Hsieh <chh@google.com> Fix misc-macro-parentheses warnings.

Bug: 28705665
Change-Id: I51f09c5d6537b864a53db891ba5f86cf6c195dac
udioTrack.cpp
83fbbb8f8705445a4d4a9532d17690098f36f50f 18-May-2016 Chih-Hung Hsieh <chh@google.com> Fix misc-macro-parentheses warnings.

Bug: 28705665
Change-Id: Ia4c2ab619f62648aa1f0c84b7264fee07ddbe9ac
OMX.cpp
12e975bffb4915d2829114874793b1f936dde0b1 13-May-2016 Marco Nelissen <marcone@google.com> limit mediaserver memory

Limit mediaserver using rlimit, to prevent it from bringing down the system
via the low memory killer.
Default max is 65% of total RAM, but can be customized via system property.

Bug: 28471206
Bug: 28615448
Change-Id: Ic84137435d1ef0a6883e9789a4b4f399e4283f05
ndroid.mk
ediaUtils.cpp
ediaUtils.h
c36c44171dcd984f42c2c38372555b8076126476 14-May-2016 Wei Jia <wjia@google.com> Merge "IMediaSource: add readMultiple API to speed up inter-process reading." into nyc-dev am: 51f03edcb3 am: f595b3b8ad
am: 32bc95dc8d

* commit '32bc95dc8dab7521cf845cf66caced729f0384e2':
IMediaSource: add readMultiple API to speed up inter-process reading.

Change-Id: Ib7bd9d10382487a3bfb63fdd1a78669219b17a37
32bc95dc8dab7521cf845cf66caced729f0384e2 14-May-2016 Wei Jia <wjia@google.com> Merge "IMediaSource: add readMultiple API to speed up inter-process reading." into nyc-dev am: 51f03edcb3
am: f595b3b8ad

* commit 'f595b3b8ad86be2858201e490c72f89040c1e750':
IMediaSource: add readMultiple API to speed up inter-process reading.

Change-Id: I47f2dc43519d6ae7f86bb27bb5c3c4685a9ca798
507c191a6d2e0f1590549d6db6294e380b44ef17 14-May-2016 Wei Jia <wjia@google.com> Merge "IMediaSource: add readMultiple API to speed up inter-process reading." into nyc-dev
am: 51f03edcb3

* commit '51f03edcb36dcca327e9d5aa2410654e8a1b2809':
IMediaSource: add readMultiple API to speed up inter-process reading.

Change-Id: I3882ea39ef22a8c2e9fafbf734854c6e3ca931b7
51f03edcb36dcca327e9d5aa2410654e8a1b2809 14-May-2016 Wei Jia <wjia@google.com> Merge "IMediaSource: add readMultiple API to speed up inter-process reading." into nyc-dev
1f1fc459ddb67d1162f2dbb10d14e57f42841da2 12-May-2016 Wei Jia <wjia@google.com> IMediaSource: add readMultiple API to speed up inter-process reading.

GenericSource: use readMultiple for audio track.
Bug: 28545177
Bug: 22775369
Change-Id: If26b80e75eba4212105d51140c4bfce85ec664f8
MediaSource.cpp
c5911aa82343907ad9c8254847673fa5c2101d62 10-May-2016 Lajos Molnar <lajos@google.com> Merge "stagefright: IOMX: pass native handle in sp<NativeHandle>" into nyc-dev am: 038ccfd6ff am: 10dac29441
am: 4c23141394

* commit '4c2314139420e78284d4a36674a903aa210c8657':
stagefright: IOMX: pass native handle in sp<NativeHandle>

Change-Id: Ida0bc478ea3cd02a978f4af1ac9c824f12c146c2
10dac29441a24144029e8a194d07eb17db40b7e5 10-May-2016 Lajos Molnar <lajos@google.com> Merge "stagefright: IOMX: pass native handle in sp<NativeHandle>" into nyc-dev
am: 038ccfd6ff

* commit '038ccfd6ff5a32d6f559e5b479d6f8e55d0b5133':
stagefright: IOMX: pass native handle in sp<NativeHandle>

Change-Id: I31d255bea906aca9ae23f5f4678d6557bc84052b
038ccfd6ff5a32d6f559e5b479d6f8e55d0b5133 10-May-2016 Lajos Molnar <lajos@google.com> Merge "stagefright: IOMX: pass native handle in sp<NativeHandle>" into nyc-dev
1b40f2804a27b695e9e53fb1699b64cb0dd387f9 10-May-2016 Lajos Molnar <lajos@google.com> stagefright: IOMX: pass native handle in sp<NativeHandle>

This clarifies ownership of the native handle

Bug: 28644266
Bug: 27856976
Change-Id: I7a617513d7ac93dd58d74af9469663418735aaf3
OMX.cpp
57c7f5a7cf8b52a3f14954071598179818a60b18 10-May-2016 Lajos Molnar <lajos@google.com> Merge changes I58b03acd,I7d7eb086 into nyc-dev am: 0d0a8b48d2 am: f1a0ec37b9
am: f2a4c632b2

* commit 'f2a4c632b254a176ddccb4d78af2d2a8c7231060':
stagefright: untangle metadata-mode handling
stagefright: add a way to update native handle in OMX buffers

Change-Id: I7953e6e5317121098e82f5cb9abfac4c4255d203
f2a4c632b254a176ddccb4d78af2d2a8c7231060 10-May-2016 Lajos Molnar <lajos@google.com> Merge changes I58b03acd,I7d7eb086 into nyc-dev am: 0d0a8b48d2
am: f1a0ec37b9

* commit 'f1a0ec37b9edd755ba95835acedd6673dfd947e2':
stagefright: untangle metadata-mode handling
stagefright: add a way to update native handle in OMX buffers

Change-Id: I9d1b51e1c6f486f1c8fe36383adcc4261b056256
b7e75437b160fd8fe239f62f690af6ff0c2a7df6 10-May-2016 Lajos Molnar <lajos@google.com> Merge changes I58b03acd,I7d7eb086 into nyc-dev
am: 0d0a8b48d2

* commit '0d0a8b48d267a1980cfd9507b51d173756835f34':
stagefright: untangle metadata-mode handling
stagefright: add a way to update native handle in OMX buffers

Change-Id: I857573724b0a4f7b38832777b12caa8666ac210b
0d0a8b48d267a1980cfd9507b51d173756835f34 10-May-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes I58b03acd,I7d7eb086 into nyc-dev

* changes:
stagefright: untangle metadata-mode handling
stagefright: add a way to update native handle in OMX buffers
c523447fac5c93306ad0be1b4ff40a476f7483b8 10-May-2016 Pawin Vongmasa <pawin@google.com> Merge "AMessage::FromParcel(): Limit recursion depth; report NULL on failure." into nyc-dev am: 6393ea6915 am: 38616ced5b
am: 68616ca46b

* commit '68616ca46bc838d0ebccb6d2a107aa6288b04a57':
AMessage::FromParcel(): Limit recursion depth; report NULL on failure.

Change-Id: I683de3cffeb77ae8cd496fdcd92482b5c416ca60
38616ced5b3d0e19389a20c7f7472d842bae1990 10-May-2016 Pawin Vongmasa <pawin@google.com> Merge "AMessage::FromParcel(): Limit recursion depth; report NULL on failure." into nyc-dev
am: 6393ea6915

* commit '6393ea6915e7e6fede4cee31bab0d373ce90211b':
AMessage::FromParcel(): Limit recursion depth; report NULL on failure.

Change-Id: I9cef657c3701d0443d21476c81c8cd1ed62b637b
6393ea6915e7e6fede4cee31bab0d373ce90211b 10-May-2016 Pawin Vongmasa <pawin@google.com> Merge "AMessage::FromParcel(): Limit recursion depth; report NULL on failure." into nyc-dev
c3afc78811e976a2aa8204a9b8147e9fee5868c7 10-May-2016 Andy Hung <hunga@google.com> Merge "Improve timestamp jitter fix" into nyc-dev am: 5adc73643f am: 2815769b9f
am: bd46093e09

* commit 'bd46093e09879ef207105d53d8221c24bfce5da0':
Improve timestamp jitter fix

Change-Id: I8672b654c0649429871aae697c168308a7fce0bc
bd46093e09879ef207105d53d8221c24bfce5da0 10-May-2016 Andy Hung <hunga@google.com> Merge "Improve timestamp jitter fix" into nyc-dev am: 5adc73643f
am: 2815769b9f

* commit '2815769b9fa899f76e608155d319a45d66816836':
Improve timestamp jitter fix

Change-Id: Iaae996e39e9daae1e48088915e436a20120448bb
3e328782f1e1061d08ea0c45b855cc418a2d9ea6 09-May-2016 Lajos Molnar <lajos@google.com> stagefright: untangle metadata-mode handling

- specify requested metadata mode from producers to OMX
- (pass requested metadata in IOMX::storeMetadataInBuffers)
- use correct logic for native handle source
- use native handle source for encoded meta buffers

Bug: 22775369
Change-Id: I58b03acd3e9a5367d5010d7f87b7af5cae23362c
OMX.cpp
7e0bef8aa6bf9db06079b743794ec2712ad84431 09-May-2016 Lajos Molnar <lajos@google.com> stagefright: add a way to update native handle in OMX buffers

Bug: 22775369
Change-Id: I7d7eb0868fef896d1cb0a45bec759a00f0783673
OMX.cpp
e2e3b6846d856da79ad067b3b7bf559cc69af5ab 10-May-2016 Andy Hung <hunga@google.com> Merge "Improve timestamp jitter fix" into nyc-dev
am: 5adc73643f

* commit '5adc73643fbccb4d7a768ab669e6c6eb434c4c98':
Improve timestamp jitter fix

Change-Id: Ia604305fa7208b938fa182cffb55f77be6c885a1
6d7b119a416c9f10288051e562f294365e5d954c 08-May-2016 Andy Hung <hunga@google.com> Improve timestamp jitter fix

Use last valid kernel timestamp on server side, not client side.

Bug: 28465713
Change-Id: I33590d6922980f288355f947bc56279245058429
udioTrack.cpp
8dab17305ff72298e2b4874592ac72c004c392d8 03-May-2016 Pawin Vongmasa <pawin@google.com> AMessage::FromParcel(): Limit recursion depth; report NULL on failure.

- FromParcel() now takes as an optional parameter the maximum recursion depth.
(The default value is currently set to 255.) On the event that the input
parcel has AMessage nested deeper than the maximum recursion depth,
FromParcel() will return NULL.
- Also, when the input parcel has items that are not recognized by FromParcel(),
NULL will be returned. (The old behavior was to invoke TRESPASS, which would
cause the process to stop.)

Bug: 28332724
Change-Id: I722097f7d1711668f197651d7e8135d703f6c91f
ediaCodecInfo.cpp
b687e3b96fcaa4774f76a4c78e0ef1a87549f552 06-May-2016 Marco Nelissen <marcone@google.com> Merge "Dump local source, not remote" into nyc-dev am: 0b667e2f6f am: 2a09d92718
am: db95fe5b0d

* commit 'db95fe5b0da0f2b714cdf9214bae59f25450f792':
Dump local source, not remote

Change-Id: I0ff6965763bbb5a6688563b3297ea35b4bac4215
db95fe5b0da0f2b714cdf9214bae59f25450f792 06-May-2016 Marco Nelissen <marcone@google.com> Merge "Dump local source, not remote" into nyc-dev am: 0b667e2f6f
am: 2a09d92718

* commit '2a09d9271894ef7d3e77b3fa43c86ce1b8529c88':
Dump local source, not remote

Change-Id: Ib38cb5a94c54ca22e5f3ea94b455a1208807cda3
1d6e10705362b9643aff0b6279a4e592c1856871 06-May-2016 Marco Nelissen <marcone@google.com> Merge "Dump local source, not remote" into nyc-dev
am: 0b667e2f6f

* commit '0b667e2f6f9e871e2fdc89100b8ef4cc623adec2':
Dump local source, not remote

Change-Id: I760f88f313abb9c17c858ef24c9bdc113fc2d548
a321469104536544d1cf0c0098d14bbf14186e88 06-May-2016 Marco Nelissen <marcone@google.com> Dump local source, not remote

dumpsys media.extractor was printing the remote source instead of starting at
the local source.

Bug: 22775369
Change-Id: I5026218515bf7ceb8485005ed7d89638a9c1963b
MediaExtractor.cpp
4346f25b0c5477b2839d64277aaf1546f8440cc6 05-May-2016 Chih-hung Hsieh <chh@google.com> Merge "Fix google-explicit-constructor warnings."
cf0c1b2356f59cfd6760513237812f8da55613fd 05-May-2016 Marco Nelissen <marcone@google.com> Merge "Prevent NULL pointer access via implicit conversion"
89b2a0ad367cdff5ff4e70036311ecf82921a829 03-May-2016 Marco Nelissen <marcone@google.com> Prevent NULL pointer access via implicit conversion

Prevent implicit conversion of a NULL char* to AString in MediaCodecInfo,
and make AString itself more robust.

Bug: 26385693
Change-Id: I4b6185bdf7c3390d571c71e94fd531bafc3f813e
ediaCodecInfo.cpp
95aa1eb5a09865a50d272bace5ced2a117e8828e 03-May-2016 Andy Hung <hunga@google.com> Merge "AudioTrack: Fix timestamp jitter" into nyc-dev
am: 7aa45dd7fc

* commit '7aa45dd7fc5c2bd959f1571231556ac06b7ec8ae':
AudioTrack: Fix timestamp jitter

Change-Id: I2f015ce48bc668bc06968f6b3d2087ee8ee047cf
7aa45dd7fc5c2bd959f1571231556ac06b7ec8ae 03-May-2016 Andy Hung <hunga@google.com> Merge "AudioTrack: Fix timestamp jitter" into nyc-dev
64a2870d8515fd914638c60803db86dbd92f5b06 03-May-2016 Chih-Hung Hsieh <chh@google.com> Fix google-explicit-constructor warnings.

Bug: 28341362
Change-Id: I11fe54e9e968d8a53a66d5b1cefca9026d5a9d7a
MediaCodecService.cpp
MediaDrmService.cpp
MediaExtractor.cpp
MediaExtractorService.cpp
MediaSource.cpp
d7290ab2c133e553cb3b0019cb2e970b0c73c211 03-May-2016 Glenn Kasten <gkasten@google.com> Merge "Normal tracks use triple buffering if resampling" into nyc-dev
am: 9b04a02250

* commit '9b04a0225085acdf6dd4944fb43695f246669014':
Normal tracks use triple buffering if resampling

Change-Id: Ib57f537dd43eeb58289d12b5d43e26a2503f2db1
aebe9dc29988c94a774208ba659c4f156d274d79 02-May-2016 Glenn Kasten <gkasten@google.com> Normal tracks use triple buffering if resampling

Bug: 26230944
Change-Id: I40f6cd7147db1be95f297af406c77c6404a76f37
udioTrack.cpp
47734c9509ecb472c2844cae46e2d916b9358321 02-May-2016 Chih-Hung Hsieh <chh@google.com> resolve merge conflicts of 98a9b2a to nyc-dev-plus-aosp

Change-Id: Iae0a5cb698807d74ba28878d7ce1f69b6ba5219a
b01faa31462e19957ae3c0c3ada07c9576a9494f 27-Apr-2016 Andy Hung <hunga@google.com> AudioTrack: Fix timestamp jitter

When HAL out_get_presentation_position returns error,
use server position adjusted for latency.

Bug: 28250436
Change-Id: I3dbcb9b7c4e56d34e7e161d1a02d8f64afd602b9
udioTrack.cpp
c03ab34de017c1330632f4d1c37983bb493bf93b 29-Apr-2016 Glenn Kasten <gkasten@google.com> Merge "Can now indicate the desired number of notifications (sub-buffers)" into nyc-dev
am: d0389b874d

* commit 'd0389b874d592b960bdc456c2514a36b082c2c94':
Can now indicate the desired number of notifications (sub-buffers)

Change-Id: I56e20dbd5f386b53af87acc9a5fe111f60147a5b
ea38ee7742e799b23bd8675f5801ef72f94de0f4 18-Apr-2016 Glenn Kasten <gkasten@google.com> Can now indicate the desired number of notifications (sub-buffers)

per fast track buffer when using the default buffer size.

There is no change for normal tracks, or fast tracks with a non-default buffer size.

Also fix related bugs:
Notification period was not set correctly when fast multiplier is not 1.
Incorrect warning when client adjusted notification frames.

Bug: 27819623
Bug: 28117362
Change-Id: Ifc2121e874f51718cd56ec04e4bd5f89f4963132
udioTrack.cpp
090ef604f81447eab4aa0a5b45d6307482573560 27-Apr-2016 Chih-Hung Hsieh <chh@google.com> Fix google-explicit-constructor warnings.

Bug: 28341362
Change-Id: I625fbab25f16282c2ea929cd16283d9d146fa17b
AudioFlinger.cpp
AudioFlingerClient.cpp
AudioPolicyService.cpp
AudioPolicyServiceClient.cpp
AudioRecord.cpp
AudioTrack.cpp
Crypto.cpp
DataSource.cpp
Drm.cpp
DrmClient.cpp
Effect.cpp
EffectClient.cpp
HDCP.cpp
MediaCodecList.cpp
MediaHTTPConnection.cpp
MediaHTTPService.cpp
MediaLogService.cpp
MediaMetadataRetriever.cpp
MediaPlayer.cpp
MediaPlayerClient.cpp
MediaPlayerService.cpp
MediaRecorder.cpp
MediaRecorderClient.cpp
OMX.cpp
RemoteDisplay.cpp
RemoteDisplayClient.cpp
ResourceManagerClient.cpp
ResourceManagerService.cpp
StreamSource.cpp
51ab9527d7427589e527d0dc8118d663926a8b68 27-Apr-2016 Jeff Tinker <jtinker@google.com> Merge "Remove MediaDrm stack from mediaserver" into nyc-dev
am: 4060196

* commit '40601964e1f8966d90c31b0c389dfab6a515bd50':
Remove MediaDrm stack from mediaserver

Change-Id: I8d9fca7ed5d7bc2d9338dd9919ceef6631abd781
3003807fcfa96c9cbfea18d643f47108aa116cd5 25-Apr-2016 Jeff Tinker <jtinker@google.com> Remove MediaDrm stack from mediaserver

Part of media security hardening

MediaDrm was temporarily allowed to
run in either mediaserver or mediadrmserver
while all nexus devices were implementing
support for the native_handle representation
of secure buffers. Now that all nexus
devices support native_handle, the MediaDrm
stack can be removed from mediaserver.

b/22990512

Change-Id: Ie5d83bfeb4c4a824e1d0edb4c9452c782d6fd386
MediaPlayerService.cpp
995d39cc23949569ea3a689985812ee923da5d4f 23-Apr-2016 Marco Nelissen <marcone@google.com> Merge "DO NOT MERGE Verify OMX buffer sizes prior to access" into lmp-mr1-dev am: 0822864
am: c90ba30

* commit 'c90ba3056712a9c0ef6383fb00dc3b9c9b0edbc7':
DO NOT MERGE Verify OMX buffer sizes prior to access

Change-Id: I42551c5f62380f422257f80a933ccd301674a041
67ef30185837950144d30e5a73d852eb9a7a0a89 29-Feb-2016 Marco Nelissen <marcone@google.com> DO NOT MERGE Verify OMX buffer sizes prior to access

Bug: 27207275
Change-Id: I4412825d1ee233d993af0a67708bea54304ff62d
OMX.cpp
a6849d01341f5eb84ff691a90458e67b5aee619e 20-Apr-2016 Hall Liu <hallliu@google.com> Merge "Add UK ringback tone" into nyc-dev
am: cc95bcf

* commit 'cc95bcf0fe6de6632fc38306efb0035d4e36423b':
Add UK ringback tone

Change-Id: Ia32c710b009a779bb3fa621e6a2ece151fd71f3b
cc95bcf0fe6de6632fc38306efb0035d4e36423b 20-Apr-2016 Hall Liu <hallliu@google.com> Merge "Add UK ringback tone" into nyc-dev
e7b4463fcd2597b8a17e776648396e85853c25d9 20-Apr-2016 Hall Liu <hallliu@google.com> Add UK ringback tone

Add the UK ringback tone for when the device is in
the UK and the network declines to play a ringback tone.

Change-Id: Iecbc420dd18b019e9201745a9ddc84b060dc9dba
Fix: 26583561
oneGenerator.cpp
5fb71f62474c92206dd068b725dab0572c9ede95 20-Apr-2016 Glenn Kasten <gkasten@google.com> Merge "Add AudioSystem::getFrameCountHAL()" into nyc-dev
am: eb7f394004

* commit 'eb7f3940044effc6a8b313a73134b5cc2156068c':
Add AudioSystem::getFrameCountHAL()

Change-Id: Ib82d6e8fb760a90e47a374cd1d10f5a956ea1a9c
4a8308b11b92e608cdaf29f73f7919e75706f9a2 18-Apr-2016 Glenn Kasten <gkasten@google.com> Add AudioSystem::getFrameCountHAL()

And add comments about declaring methods in binder opcode order.

Bug: 28117362
Change-Id: I3c4426fa4bb3ce9c4a207a44d3bb1103d7fef160
udioSystem.cpp
AudioFlinger.cpp
AudioFlingerClient.cpp
7e62a9ee00f48814beb6695b01d95993b0020825 15-Apr-2016 Marco Nelissen <marcone@google.com> Merge "IMediaExtractor: protect access to extractor info list" into nyc-dev
am: d298fb8

* commit 'd298fb880ba440793ce206e5f519d4f7c8c8bb54':
IMediaExtractor: protect access to extractor info list

Change-Id: I1577d84191262789051579c72fbcf2029b5ffa40
d298fb880ba440793ce206e5f519d4f7c8c8bb54 15-Apr-2016 Marco Nelissen <marcone@google.com> Merge "IMediaExtractor: protect access to extractor info list" into nyc-dev
8d27f5e1be1d301e0427f483493390419fe36acf 14-Apr-2016 Marco Nelissen <marcone@google.com> IMediaExtractor: protect access to extractor info list

Bug: 27970490
Bug: 27970718
Bug: 27970489

Change-Id: If896f6519986331702ffa41b1602e008b106f391
MediaExtractor.cpp
ad7710d5cdcf1283719186446cd818a5b5d3098a 13-Apr-2016 Andy Hung <hunga@google.com> Merge "NuPlayer: Reserve buffer for 8x max speed" into nyc-dev
am: 0c4a97e

* commit '0c4a97e6e1470b2d8b8810792af8d66689020c51':
NuPlayer: Reserve buffer for 8x max speed

Change-Id: Iddd485b080712f98ac9c670f9299da02e851a5b7
6f594d48bc0876313fceddc8a2a09054e44b5520 13-Apr-2016 Andy Hung <hunga@google.com> Merge "NuPlayer: Notify if drain message time is unexpectedly long" into nyc-dev
am: 24f66c6

* commit '24f66c69676dbb004565407215ce7185e00c5de2':
NuPlayer: Notify if drain message time is unexpectedly long

Change-Id: Idd303a62adfcfe7f2959d3c1ab062c4681e2bee0
0c4a97e6e1470b2d8b8810792af8d66689020c51 13-Apr-2016 Andy Hung <hunga@google.com> Merge "NuPlayer: Reserve buffer for 8x max speed" into nyc-dev
9794b936c62b48d502aeaa47ffd230fc828aab5a 13-Apr-2016 Treehugger Robot <treehugger-gerrit@google.com> Merge "Export headers from libbinder as part of libmedia" am: 9a7bca4
am: ecbb437

* commit 'ecbb4379f27d8f45bebc583e4731050d5a339c6d':
Export headers from libbinder as part of libmedia

Change-Id: I7ebeafbf7fdb77cb7b4feafc18bb927f5ddf27a3
f2c87b3f88d987d2af6322e9763eb8224a2bae48 08-Apr-2016 Andy Hung <hunga@google.com> NuPlayer: Notify if drain message time is unexpectedly long

Bug: 27940058
Change-Id: Id8897c30e21b6b9de545a710e7766ffceb491455
udioTrack.cpp
ff874dc957f9ea70d87f4d627bf903e1fc86d58b 12-Apr-2016 Andy Hung <hunga@google.com> NuPlayer: Reserve buffer for 8x max speed

Affects Photos with Bluetooth and 240x recording.

Bug: 26986060
Change-Id: I228223221f9811e05c274d64cd42ac104db04c36
udioTrack.cpp
9f0fdd1edd70ab31c3b7d9b687afb44e83b868b7 13-Apr-2016 Andy Hung <hunga@google.com> Merge "AudioTrack: Reset position on flush for extended timestamps." into nyc-dev
am: aff4e46

* commit 'aff4e460d4cf278909316412c17c042d7366178f':
AudioTrack: Reset position on flush for extended timestamps.

Change-Id: I3c913b1d59aa701cb9d1777f0b45595bd78beee3
e7b096afcea60f30402e4d7d993adf51294bcf31 12-Apr-2016 Christopher Wiley <wiley@google.com> Export headers from libbinder as part of libmedia

If you need to include files from libmedia, you'll also need to
include files from libbinder, since libbinder is referenced from
public libmedia headers.

Bug: 27804373
Test: Consumers of libmedia pick up libbinder's changed exported header
path.

Change-Id: I7402044a9cb9874637fb3066184c8bff85e5f791
ndroid.mk
e1e9846a786a0d77a13b44f8e798e03b4cba9d77 12-Apr-2016 Andy Hung <hunga@google.com> AudioTrack: Reset position on flush for extended timestamps.

Bug: 27940058
Change-Id: If91320669e2e84803e601137b1ce66b361b129f1
udioTrack.cpp
89a29193cbb89c2120b32bb79640befeaa92b8c2 07-Apr-2016 Marco Nelissen <marcone@google.com> Merge "Expand mediaextractor dumpsys" into nyc-dev
am: b7b06be

* commit 'b7b06be6ff2e6034a18986f94c76940b13ef4183':
Expand mediaextractor dumpsys

Change-Id: If6ecdcf4d51da03f7704f5fbe97c85154a18d35d
37c77e7dd6e286b53b5c04ea97a4f02bd84923f1 07-Apr-2016 Eric Laurent <elaurent@google.com> Merge "Add the conditions that determine the region for US, CA and JP" am: 9ca3b7a
am: 36b5314

* commit '36b5314935627ab94131e7112935222c208f523d':
Add the conditions that determine the region for US, CA and JP

Change-Id: I6b7f96a11e967ae461ad171f0db9ef3c32aef8a8
69d3d8a9540b0da787ea0beccad2517f057dd54d 07-Mar-2016 Marco Nelissen <marcone@google.com> Expand mediaextractor dumpsys

Bug: 22775369
Change-Id: I3366a52ba7a00d1685a2211465f2f18f143d0efc
DataSource.cpp
MediaExtractor.cpp
1d0afc454e795db1723f99d2f3329fe2a34a83c5 04-Apr-2016 Wei Jia <wjia@google.com> Merge "IMediaSource: release MediaBuffers when desired shared memory is not available." into nyc-dev
027b81154c4296f3d0caa861d43b19a5f57797cd 04-Apr-2016 Wei Jia <wjia@google.com> IMediaSource: release MediaBuffers when desired shared memory is not available.

Bug: 27970343
Change-Id: Ia86ecbffb3c3ebc2e8e0e10b951fa7b001bbdb5f
MediaSource.cpp
e13f8a603867280de9b02ce4839202a182556416 30-Mar-2016 Andy Hung <hunga@google.com> NuPlayer: Play out remaining audio data when recycling isn't possible

Don't flush it immediately.

Bug: 26530291
Change-Id: I0427633402fa251ec62e2b70e47a0a7b451d3ea2
udioTrack.cpp
ea2b9c07b34079f0dbd8610a511e006e69a15adc 13-Feb-2016 Andy Hung <hunga@google.com> Implement client playback timestamps with 64 bit accuracy

Provide server timestamps if the HAL doesn't provide it.
Provide monotonic - boottime translation.

Bug: 17472992
Bug: 26682703
Bug: 27749434
Change-Id: I6c9b213d9f9284092e34d57f52870e02c72df62a
udioTrack.cpp
udioTrackShared.cpp
f97b682f0e4a08bb6211f230a789a80981a7111c 31-Jul-2015 Krystian Turczyn <krystian.turczyn@sonymobile.com> Fix for tone glitch produced in ToneGenerator

Delay line samples of ToneGenerator::WaveGenerator are saved between
getSamples() calls. The value of such sample may overflow short integer
range due to amplitude fluctuation. Therefore long field must be used
to store those samples in order to prevent tone corruption.

Change-Id: I987058ca4615ea64deedcbd8167e75393ecaf2de
oneGenerator.cpp
1e98fbe5075571c1a02808002bb7b9af9fed1df5 20-Nov-2015 takafumi nakamura <takafumi.x.nakamura@sonymobile.com> Add the conditions that determine the region for US, CA and JP

Region is incorrect when dual SIM is inserted.
ToneGenerator class doesn't consider the dual SIM use case,
so region is always set to a default value(CEPT) even if
these country's dual SIMs are inserted.

Change-Id: Iad684856f550b50345b71d8c07e99e27f87407a7
oneGenerator.cpp
9887c3e252ec0571ee8637310ea9ec2eec118044 30-Mar-2016 Ian Ni-Lewis <ilewis@google.com> Merge "Remove integer sanitization from ringbuffer pointer arithmetic" into nyc-dev
54b48c31fba71534ea56e32609f7ea770519fb2e 30-Mar-2016 Glenn Kasten <gkasten@google.com> Merge "Use audio_module_handle_t and audio_patch_handle_t consistently" into nyc-dev
926b82fa9e22739686602f7ae8cf24105f14d82e 29-Mar-2016 ilewis <inl@google.com> Remove integer sanitization from ringbuffer pointer arithmetic

The AudioTrackShared ringbuffer uses int32 positions and allows overflow.
This confuses the integer sanitization code and makes it panic.
The simplest solution for now seems to be to remove sanitization
from the methods that touch the ringbuffer pointers.

Bug 27680456

Change-Id: Ie4d7daf0fb1e4e223ee97c412af7b1bd9c6916eb
udioTrackShared.cpp
a13cde98a880341f0a56d91da6364b093fb5d24e 29-Mar-2016 Glenn Kasten <gkasten@google.com> Use audio_module_handle_t and audio_patch_handle_t consistently

Bug: 27814144
Change-Id: I54b7a73ec318779fd3addb060998f4d94141152d
AudioFlinger.cpp
AudioPolicyService.cpp
5fe2151459fd6c88958c5ebd71f28004d49d8b65 29-Mar-2016 Andy Hung <hunga@google.com> Merge "Read from proxy for PCM direct and offloaded track position" into nyc-dev
7a490e7ab39ef0b22baf24b03f2463c46dc068ed 23-Mar-2016 Andy Hung <hunga@google.com> Read from proxy for PCM direct and offloaded track position

Bug: 27776737
Change-Id: I721bf2b4d46271bf84ad9fc29ff5c4ecd4759206
udioTrack.cpp
b06d2bd788a8858413875c39f25cbe778e90f8ad 28-Mar-2016 Wei Jia <wjia@google.com> MediaPlayer: use mLock to prevent racing condition.

Bug: 27823938
Change-Id: Iad156f3b35fdcccb13ad5c49921bbe3cc4fc0c47
(cherry picked from commit 1243869fb29ee580fa5c179443420c06a779dbfd)
ediaplayer.cpp
1243869fb29ee580fa5c179443420c06a779dbfd 28-Mar-2016 Wei Jia <wjia@google.com> MediaPlayer: use mLock to prevent racing condition.

Bug: 27823938
Change-Id: Iad156f3b35fdcccb13ad5c49921bbe3cc4fc0c47
ediaplayer.cpp
9b3359feabbf138bb965da5173434da78bfe0929 24-Mar-2016 Haynes Mathew George <hgeorge@codeaurora.org> libmedia: Initialize state vars to avoid possible crash

If playback or record track creation fails on server side,
some state is left initialized incorrectly.
This can cause a crash when the object is destroyed
because of a reference to a NULL object.

Initialize state vars properly in the initialization list
to avoid this behavior.

authored-by: Zhou Song <zhous@codeaurora.org>

CRs-Fixed: 992608
Change-Id: If8c3611e3229c0c1b14b81285e07b9357fec7658
udioRecord.cpp
udioTrack.cpp
681d56a8a3aa1394918e3283af2f99718daf2e3e 25-Mar-2016 Andy Hung <hunga@google.com> Merge "AudioTrack: Do not resume callback thread on start failure" into nyc-dev
79629f0716f04e79064256362be56730077b8c50 24-Mar-2016 Andy Hung <hunga@google.com> AudioTrack: Do not resume callback thread on start failure

Bug: 27673375
Change-Id: I1df1db51e75cee57f19824ac6506bf02000714fd
udioTrack.cpp
287b36cf4a2a045dda11ea803f3fa7cb1a435d51 24-Mar-2016 Andy Hung <hunga@google.com> Merge "Fix divide by zero exception with default sampleRate of 0" into nyc-dev
0b6bbcf0c2b2e249a4cbe5a5f40fcaab84431c1a 24-Mar-2016 Andy Hung <hunga@google.com> Fix divide by zero exception with default sampleRate of 0

Bug: 27827281
Change-Id: I6cd03712c64bee3582ba0c5be7d5d3035c4861c1
udioRecord.cpp
da626b0e985e9de1df5ad168f25f1273811ee940 23-Mar-2016 Wei Jia <wjia@google.com> Merge "mediaplayer: fix logging message." into nyc-dev
848ebc644a1a7ef93a051186fb5f0aef826ad67e 23-Mar-2016 Wei Jia <wjia@google.com> mediaplayer: fix logging message.

Change-Id: I99fb411632184e9f9180e7fd42eeaa614e87cf3b
ediaplayer.cpp
5a898236109c3cb705241e66583d80df413198d2 21-Mar-2016 Phil Burk <philburk@google.com> Merge "AudioTrackShared: fix min buffer size" into nyc-dev
7b5795dc605529246b861ff8d8be7c7a58c5bfe2 21-Mar-2016 Marco Nelissen <marcone@google.com> Fix OMX_IndexParamConsumerUsageBits size check am: 788b0b6 am: 63002af am: 8777bfb
am: b7bd841

* commit 'b7bd84103062ba66e19ce6ac540d97b9a927445f':
Fix OMX_IndexParamConsumerUsageBits size check
63002afe44fbbc7fd0aba77887596a5c3845d22c 21-Mar-2016 Marco Nelissen <marcone@google.com> Fix OMX_IndexParamConsumerUsageBits size check
am: 788b0b6

* commit '788b0b651b5b14f27b0aee050ffd2a32629c7cd3':
Fix OMX_IndexParamConsumerUsageBits size check
788b0b651b5b14f27b0aee050ffd2a32629c7cd3 21-Mar-2016 Marco Nelissen <marcone@google.com> Fix OMX_IndexParamConsumerUsageBits size check

Bug: 27207275
Change-Id: I9a7c9fb22a0e84a490ff09c151bd2f88141fdbc0
OMX.cpp
26760d1a1105b6b318c837a491cdb96f6901804e 21-Mar-2016 Phil Burk <philburk@google.com> AudioTrackShared: fix min buffer size

Fast Tracks can have very low buffer sizes.

Bug: 27765661
Bug: 27765632
Change-Id: I70262b2a0136aea3c0936aec85f15b0fc78d168f
Signed-off-by: Phil Burk <philburk@google.com>
udioTrackShared.cpp
26ae699068f614a70cba78cb900d44c82938d6ee 18-Mar-2016 Glenn Kasten <gkasten@google.com> Fix typo

Change-Id: I47b1bdf70848fdd158538d0c3d5a6cef41f43b91
ndroid.mk
fc1337d079ba7e6ffd7ce07706cfeeeb355c0200 18-Mar-2016 Phil Burk <philburk@google.com> Merge "AudioTrack: fix stall if setBufferSizeInFrames() called before play()" into nyc-dev
e8972b0a27fac327c997fceb20d9abae1dc1d899 04-Mar-2016 Phil Burk <philburk@google.com> AudioTrack: fix stall if setBufferSizeInFrames() called before play()

The server was waiting for a full buffer.
But the buffer was only getting partly filled.
So the stream was not starting.

The fix involves having the server look at the adjustable threshold.

Bug: 27505889
Change-Id: I5dbf686413e670dacbbecc9e0f838744e465f44f
Signed-off-by: Phil Burk <philburk@google.com>
udioTrack.cpp
udioTrackShared.cpp
9a57e34f476d5d2400e6e8ffac303c6190e641f0 17-Mar-2016 Glenn Kasten <gkasten@google.com> Merge "Use audio_session_t consistently" into nyc-dev
53ce1e03efa1a12b3acc7d76dd0c273487ca3746 16-Mar-2016 Jean-Michel Trivi <jmtrivi@google.com> Merge "Dynamic policies: support for device selection" into nyc-dev
7638ca29e8400a19524adb982e9d22c02786de82 05-Mar-2016 Jean-Michel Trivi <jmtrivi@google.com> Dynamic policies: support for device selection

Dynamic policy mix: rename "registration" field to device address
as this reflects the true use of the field.
AudioPolicyManager: dynamic policy registration differs depending
on policy routing flags.
When register a mix with the RENDER flag, iterate over all outputs'
patches to find a matching device and address.

Bug 25448664

Change-Id: I71584081e7f1b2b5252fb6c4659fdeb464f7d282
udioPolicy.cpp
d848eb48c121c119e8ba7583efc75415fe102570 08-Mar-2016 Glenn Kasten <gkasten@google.com> Use audio_session_t consistently

Bug: 27562099
Change-Id: I328d8226191386b163f2ace41233607294c50dcd
udioEffect.cpp
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
AudioPolicyService.cpp
AudioRecord.cpp
MediaPlayerService.cpp
isualizer.cpp
ediaplayer.cpp
50af72bcc5f5d84831d57333e64f439fcf125795 16-Mar-2016 Marco Nelissen <marcone@google.com> DO NOT MERGE Don\'t reject "thumbnail mode" setConfig
am: 09e024f

* commit '09e024fe9a8dd9646e053275dd636301a9d463f0':
DO NOT MERGE Don't reject "thumbnail mode" setConfig
38246e482ea3bd1e0f88f7133934ec4537b48bbd 16-Mar-2016 Glenn Kasten <gkasten@google.com> Merge "When fast flag is denied, retry with new I/O handle" into nyc-dev
2854e5182172de018a727db5862093a08628811c 12-Mar-2016 Glenn Kasten <gkasten@google.com> When fast flag is denied, retry with new I/O handle

Bug: 27587927
Change-Id: Icc8f25cd438211cc60cb8243e0e998825ac1427a
udioRecord.cpp
b53ab34b95b8633070cbef5d03162d182aac3a9a 15-Mar-2016 Marco Nelissen <marcone@google.com> resolve merge conflicts of edb14117b6 to nyc-dev

Change-Id: If4c4a68dff17a238673f5f11d790229e0459fda0
31e2a27f876edbe49988bd4307365d481c1de7e8 15-Mar-2016 Marco Nelissen <marcone@google.com> Fix size check for OMX_IndexParamConsumerUsageBits
am: c1c50e7b47

* commit 'c1c50e7b47784c5e6978eda67db68ef4951144c6':
Fix size check for OMX_IndexParamConsumerUsageBits
4d231dc0ee34380956c71cbe18a750e487a69601 12-Mar-2016 Eric Laurent <elaurent@google.com> audio: Fix race condition in AudioTrack underrun.

When audio flinger mixer removes an AudioTrack from the
active list in case of underrun, it is possible that the
client has written a full buffer just after the underrun detection and
is blocked waiting for more space to write. In this case, the client
will never detect the DISABLED flag and the track never be restarted.

Also implement missing DISABLE flag detection in server side audio tracks
(OutputTrack and PatchTrack).

bug: 27567768
Change-Id: I8d0753429d4113498258b1f61bd8ac5939a612f0
udioTrack.cpp
udioTrackShared.cpp
f56a02a5e7d1bfaeabf8b918e56bf49ea509bd42 14-Mar-2016 Marco Nelissen <marcone@google.com> Merge "Fix StagefrightMetadataRetriever calling MediaSource::start twice" into nyc-dev
e7d8e71e45028cbe51839c23f922ba8c506cba82 14-Mar-2016 Marco Nelissen <marcone@google.com> Fix StagefrightMetadataRetriever calling MediaSource::start twice

and revert the previously added debug logging.

Bug: 27324401
Change-Id: I6bd938c6667153022a971389023afbc731486ca0
MediaSource.cpp
c1c50e7b47784c5e6978eda67db68ef4951144c6 11-Mar-2016 Marco Nelissen <marcone@google.com> Fix size check for OMX_IndexParamConsumerUsageBits

since it doesn't follow the OMX convention. And remove support
for the kClientNeedsFrameBuffer flag.

Bug: 27207275
Change-Id: Ia2c119e2456ebf9e2f4e1de5104ef9032a212255
OMX.cpp
e0eb0ef6f7976f3c9bb940a33bdfe8e0a54a5928 11-Mar-2016 Marco Nelissen <marcone@google.com> DO NOT MERGE Don't reject "thumbnail mode" setConfig

Bug: 27207275
Change-Id: I35f6bf5b407869a9479feaf1b5beef7b68d04509
OMX.cpp
09e024fe9a8dd9646e053275dd636301a9d463f0 11-Mar-2016 Marco Nelissen <marcone@google.com> DO NOT MERGE Don't reject "thumbnail mode" setConfig

Bug: 27207275
Change-Id: I35f6bf5b407869a9479feaf1b5beef7b68d04509
OMX.cpp
b34bcea7945fb63af52c4b6e87757882b0df37eb 11-Mar-2016 Lajos Molnar <lajos@google.com> Merge "IOMX: add dataspace to createInputSurface" into nyc-dev
98783a370f3f35058b42534d7d1d05e0fb7e9f5a 10-Mar-2016 Ronghua Wu <ronghuawu@google.com> Merge "media: changed resource type from String8 to enum." into nyc-dev
ea15fd29af81490311af9e12949b43524c39400e 03-Mar-2016 Ronghua Wu <ronghuawu@google.com> media: changed resource type from String8 to enum.

Bug: 27338692
Change-Id: I0161de084682e2317cba81dc5f55c17d5d478570
ediaResource.cpp
ae34ed2bcc9fa49a22fe7497327adb689ef27e8d 28-Jan-2016 Haynes Mathew George <hgeorge@codeaurora.org> AudioTrack: Use original flags during track recreation

Also the OFFLOAD and DIRECT flags aren't denied by server.

authored-by: Pavan Chikkala<pavanc@codeaurora.org>
Bug: 27554925
Change-Id: I6fd6b129928af4513bb0cba271019288605310f8
udioTrack.cpp
57fad3c31f46ec98d15bc253c16f9d269aeb8ea7 08-Mar-2016 Lajos Molnar <lajos@google.com> IOMX: add dataspace to createInputSurface

Bug: 25684127
Change-Id: Ibe746d7d077f32b0f2ecfb8494f415a6bf0bd673
OMX.cpp
58883a0cbbde53579461ef7d9a639b4ac45cb55e 09-Mar-2016 Glenn Kasten <gkasten@google.com> AudioRecord: Use original flags during track recreation

Bug: 27554925
Change-Id: Idecbadcb114b9470e89dccf1c65b0f965cc2bf15
udioRecord.cpp
f0e76eb64b49f84a4b299ed0573144b9278bb92c 05-Mar-2016 Marco Nelissen <marcone@google.com> Merge "DO NOT MERGE Verify OMX buffer sizes prior to access" into klp-dev
am: d579ad0639

* commit 'd579ad0639c6df7f4648047992aaaf00f107799c':
DO NOT MERGE Verify OMX buffer sizes prior to access
9222aaf44d79e501c513887f74979f16226b2fc7 05-Mar-2016 Marco Nelissen <marcone@google.com> DO NOT MERGE Verify OMX buffer sizes prior to access
am: f1a2668f4f

* commit 'f1a2668f4f09e38722424a6a74f0ea26f49e4110':
DO NOT MERGE Verify OMX buffer sizes prior to access
d579ad0639c6df7f4648047992aaaf00f107799c 05-Mar-2016 Marco Nelissen <marcone@google.com> Merge "DO NOT MERGE Verify OMX buffer sizes prior to access" into klp-dev
423766ca07beb7e3e9cd301385708ca13fcce3e1 29-Feb-2016 Marco Nelissen <marcone@google.com> DO NOT MERGE Verify OMX buffer sizes prior to access

Bug: 27207275
Change-Id: I4412825d1ee233d993af0a67708bea54304ff62d
OMX.cpp
51f59b41eae9c4f493ebfd0972cee951895bdf19 29-Feb-2016 Marco Nelissen <marcone@google.com> DO NOT MERGE Verify OMX buffer sizes prior to access

Bug: 27207275
Change-Id: I4412825d1ee233d993af0a67708bea54304ff62d
OMX.cpp
f1a2668f4f09e38722424a6a74f0ea26f49e4110 29-Feb-2016 Marco Nelissen <marcone@google.com> DO NOT MERGE Verify OMX buffer sizes prior to access

Bug: 27207275
Change-Id: I4412825d1ee233d993af0a67708bea54304ff62d
OMX.cpp
f4cf8817de14d2a14dbef3e6f319d65dbfba6e47 03-Mar-2016 Marco Nelissen <marcone@google.com> Merge "Verify OMX buffer sizes prior to access" into nyc-dev
db52e5e3dc15f7233ccd9c128fe43f2b2f58b29b 02-Mar-2016 Eric Laurent <elaurent@google.com> Merge "Sample rate 0 means a route-dependent rate" into nyc-dev
6e0c00ba53d8e5ad14d9e447c3c040ce6fd81a47 02-Mar-2016 Eino-Ville Talvala <etalvala@google.com> Merge changes from topic 'camera-native-aidl' into nyc-dev

* changes:
Camera: Clean up warnings and set -Werror
Camera: Switch camera2 to auto-gen C++ binder interfaces
d56db1d2bee182d1851097a9c712712fc094d117 18-Dec-2015 Eino-Ville Talvala <etalvala@google.com> Camera: Switch camera2 to auto-gen C++ binder interfaces

- Move camera service AIDL files to frameworks/av
- Build C++ interface stubs with AIDL tools
- Add necessary native-side parcelables and update existing ones
- Remove manually-written stubs, rearrange remaining manual stubs
- Adjust implementations to work with auto-generated stubs
- Adjust method signatures for auto-gen differences
- Add rich error messages using binder::Status

Bug: 25091611
Change-Id: I6f69f34b9d1a3f8d1fb7db87357363f8fa8483ff
MediaRecorder.cpp
ediarecorder.cpp
2720c8b094cfa58de314daa8e5e4fb4fa81fe3b2 29-Feb-2016 Marco Nelissen <marcone@google.com> Verify OMX buffer sizes prior to access

Bug: 27207275
Change-Id: I4412825d1ee233d993af0a67708bea54304ff62d
OMX.cpp
7fd0422fbd17af3b24eb04421d37fce50f3826e2 02-Feb-2016 Glenn Kasten <gkasten@google.com> Sample rate 0 means a route-dependent rate

Remove check for primary _output_ [sic] sampling rate for fast capture.
Clean up AudioRecord handling of frame count and sample rate.
Clean up AudioTrack handling of notification period updates.
Make AudioRecord and AudioTrack more similar in order of operation, comments, and whitespace.

Bug: 25641253
Bug: 21019153
Change-Id: I24a6677945987fc39a9bf93f70357e4bc7410f98
udioRecord.cpp
udioTrack.cpp
2c073da0f02c3cf7cd4795af2d861222cbcab72a 26-Feb-2016 Glenn Kasten <gkasten@google.com> AudioSystem::getSamplingRate and getFrameCount now work for input

Also fix whitespace and comment in AudioIoDescriptor.

Bug: 25641253
Bug: 21019153
Change-Id: I6a1e2262f44f87ec3ebce6e5274f45ed0f47eb13
udioSystem.cpp
AudioFlinger.cpp
eeecb980ff4c202d0a3c4b0bfe040dce2f73336d 26-Feb-2016 Glenn Kasten <gkasten@google.com> Add use for audio_unique_id_t

Bug: 25641253
Bug: 21019153
Change-Id: I65dc128e760c245f3d90559635a8981b186c87d7
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
ediaplayer.cpp
91afc2297dd1c39302dba6ff68e9839aae27d39a 29-Feb-2016 Wei Jia <wjia@google.com> Merge "IMediaSource: release mediabuffer after content is copied into shared memory." into nyc-dev
1d5a306c0b1322168e8f9fcf81876118a355a400 29-Feb-2016 Wei Jia <wjia@google.com> IMediaSource: release mediabuffer after content is copied into shared memory.

Bug: 27362659
Bug: 26295488
Change-Id: I27a00440117f08acb0fb68347710c45927d4892a
MediaSource.cpp
27bfd4adafbc5f72e994acd70cc2c33e667c6a6c 26-Feb-2016 Marco Nelissen <marcone@google.com> Merge "Temporary debug to figure out who's calling start twice" into nyc-dev
0d035b6057cef680a3755c6a8fc914c483648903 26-Feb-2016 Jean-Michel Trivi <jmtrivi@google.com> Merge "Send audio patch in recording callback" into nyc-dev
afe2f276e28540d323fa83e44abdde2fb9d55e89 26-Feb-2016 Marco Nelissen <marcone@google.com> Temporary debug to figure out who's calling start twice

Bug: 27324401
Change-Id: Ie723ebc0554e0a563aa9e92113d67252bc6aca2f
MediaSource.cpp
8c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972 26-Feb-2016 Jean-Michel Trivi <jmtrivi@google.com> Send audio patch in recording callback

Remove direct access to patch handle in AudioInputDescriptor, replace with
set / get functions.
Add interface for AudioSession to query configuration from enclosing
input descriptor.
When input descriptor's patch handle changes during a recording, propagate
the change through the recording notification callback.

Bug 26798796

Change-Id: Ia1395d44da7ccfe69ca46877638d1eb49b3935ad
udioSystem.cpp
AudioPolicyServiceClient.cpp
7228d57873ebed45a2873bc0e4bc026c53fc979d 24-Feb-2016 Marco Nelissen <marcone@google.com> Get service by value instead of reference am: 61a6d26aab am: 93f5bcab20 am: d11972f8d4 am: c0cefa9f37 am: 73079eec40 am: 5984d6cbf9 am: 6bac803b15 am: 5259834834 am: 6d65ec1f72 am: fd517c3941
am: 2f72479402

* commit '2f72479402edae6b0d66449c402453fd6e3364c2':
Get service by value instead of reference
6d65ec1f7256a3de55ed79e97f6c21726ac2bd00 24-Feb-2016 Marco Nelissen <marcone@google.com> Get service by value instead of reference am: 61a6d26aab am: 93f5bcab20 am: d11972f8d4 am: c0cefa9f37 am: 73079eec40 am: 5984d6cbf9 am: 6bac803b15
am: 5259834834

* commit '52598348340ba20048a1d6304b39b548a95be18f':
Get service by value instead of reference
52598348340ba20048a1d6304b39b548a95be18f 24-Feb-2016 Marco Nelissen <marcone@google.com> Get service by value instead of reference am: 61a6d26aab am: 93f5bcab20 am: d11972f8d4 am: c0cefa9f37 am: 73079eec40 am: 5984d6cbf9
am: 6bac803b15

* commit '6bac803b1595a653180da15d409fe6167534334c':
Get service by value instead of reference
6bac803b1595a653180da15d409fe6167534334c 24-Feb-2016 Marco Nelissen <marcone@google.com> Get service by value instead of reference am: 61a6d26aab am: 93f5bcab20 am: d11972f8d4 am: c0cefa9f37 am: 73079eec40
am: 5984d6cbf9

* commit '5984d6cbf9c7eae7a0f46c948a9b35b56f0268a5':
Get service by value instead of reference
73079eec4013621ac516f22b0ec6d55203d1e245 24-Feb-2016 Marco Nelissen <marcone@google.com> Get service by value instead of reference am: 61a6d26aab am: 93f5bcab20 am: d11972f8d4
am: c0cefa9f37

* commit 'c0cefa9f37e296a7a60978e442b374b5c7f24d65':
Get service by value instead of reference
d11972f8d48d14a1a52e98e64b8216abfc7f00e0 24-Feb-2016 Marco Nelissen <marcone@google.com> Get service by value instead of reference am: 61a6d26aab
am: 93f5bcab20

* commit '93f5bcab205f8d7cd4557eacda513867e8b8ea65':
Get service by value instead of reference
93f5bcab205f8d7cd4557eacda513867e8b8ea65 24-Feb-2016 Marco Nelissen <marcone@google.com> Get service by value instead of reference
am: 61a6d26aab

* commit '61a6d26aab95870279b274e565c1495748befde0':
Get service by value instead of reference
61a6d26aab95870279b274e565c1495748befde0 18-Feb-2016 Marco Nelissen <marcone@google.com> Get service by value instead of reference

to prevent a cleared service binder from being used.

Bug: 26040840
Change-Id: Ifb5483c55b172d3553deb80dbe27f2204b86ecdb
ediametadataretriever.cpp
7281aa9810b33eff47b00104db26c97c77931611 18-Feb-2016 Jean-Michel Trivi <jmtrivi@google.com> Send client / device format in recording callback

Bug 26798796

Change-Id: Ib4f64159c8371d87da49a8f0cad9317a87d843c4
udioSystem.cpp
AudioPolicyServiceClient.cpp
af9c466b91eb43ffa4590b559fa8bb1003191ab5 23-Feb-2016 Marco Nelissen <marcone@google.com> Clear allocation to avoid info leak am: f7a388203a am: 33514675f6 am: 776aacce9e am: 9a7fc24946 am: d132bc5b0b am: 46b4f09573 am: 7786bd9376 am: 313d9f14e4 am: 1e780d3e34 am: 543df24fad
am: bb1f77e5dd

* commit 'bb1f77e5dd10b68a8169aa6372bfbd29b44509b0':
Clear allocation to avoid info leak
1c9ba65e447104bfcdbe0cb16a9f3cc5bad2da39 23-Feb-2016 Max Spector <mspector@google.com> Merge "Fixing safteynet logging bug introduced in ag/862848" into mnc-dev am: 93edd483f6 am: 032fcf3034 am: c802d2091a
am: 81b6cc61f0

* commit '81b6cc61f0bef255f725ec9e56659d1caba227c2':
Fixing safteynet logging bug introduced in ag/862848
1e780d3e34df347243fe28c3d2abe10d44e4e8e4 23-Feb-2016 Marco Nelissen <marcone@google.com> Clear allocation to avoid info leak am: f7a388203a am: 33514675f6 am: 776aacce9e am: 9a7fc24946 am: d132bc5b0b am: 46b4f09573 am: 7786bd9376
am: 313d9f14e4

* commit '313d9f14e4140bacc52b27972abc0c65d4e91fdc':
Clear allocation to avoid info leak
313d9f14e4140bacc52b27972abc0c65d4e91fdc 23-Feb-2016 Marco Nelissen <marcone@google.com> Clear allocation to avoid info leak am: f7a388203a am: 33514675f6 am: 776aacce9e am: 9a7fc24946 am: d132bc5b0b am: 46b4f09573
am: 7786bd9376

* commit '7786bd9376f34b23db9a67aae16368fb1851fe34':
Clear allocation to avoid info leak
7786bd9376f34b23db9a67aae16368fb1851fe34 23-Feb-2016 Marco Nelissen <marcone@google.com> Clear allocation to avoid info leak am: f7a388203a am: 33514675f6 am: 776aacce9e am: 9a7fc24946 am: d132bc5b0b
am: 46b4f09573

* commit '46b4f09573deb213b647023771ec1552733c223a':
Clear allocation to avoid info leak
d132bc5b0bc15152f7acf769408c55da7a5b31f7 23-Feb-2016 Marco Nelissen <marcone@google.com> Clear allocation to avoid info leak am: f7a388203a am: 33514675f6 am: 776aacce9e
am: 9a7fc24946

* commit '9a7fc2494687c026e592e5c88cc4f363f2186241':
Clear allocation to avoid info leak
776aacce9e5e2dfbc4e7a955916ea0d397af74bf 23-Feb-2016 Marco Nelissen <marcone@google.com> Clear allocation to avoid info leak am: f7a388203a
am: 33514675f6

* commit '33514675f6588d70a203b2c9200792bca18d425c':
Clear allocation to avoid info leak
33514675f6588d70a203b2c9200792bca18d425c 23-Feb-2016 Marco Nelissen <marcone@google.com> Clear allocation to avoid info leak
am: f7a388203a

* commit 'f7a388203a1632084dbe3307d7e3265f689bc11e':
Clear allocation to avoid info leak
032fcf3034b79ea2a221d73c9f01202a4a709273 23-Feb-2016 Max Spector <mspector@google.com> Merge "Fixing safteynet logging bug introduced in ag/862848" into mnc-dev
am: 93edd483f6

* commit '93edd483f645fe30cc508ade82ea1ffe60e74cbb':
Fixing safteynet logging bug introduced in ag/862848
93edd483f645fe30cc508ade82ea1ffe60e74cbb 23-Feb-2016 Max Spector <mspector@google.com> Merge "Fixing safteynet logging bug introduced in ag/862848" into mnc-dev
c085a757a28f36bdefeee1775fdbdce869c4c1f5 23-Feb-2016 Andy Hung <hunga@google.com> Merge "Implement server side playback timestamps with 64 bit accuracy" into nyc-dev
798cfff899ebf53d769cc2de1e650c5ba49821ae 23-Feb-2016 Jeff Tinker <jtinker@google.com> Merge "Fix info leak vulnerability of IDrm" into mnc-dev am: 56ffb6e7b1 am: 0708170e10 am: 96ddf53162
am: 58a982d1c7

* commit '58a982d1c7a316d1bb8fade837664a412241ba8a':
Fix info leak vulnerability of IDrm
012883fdf691b1e9dcaf769b8dfe948af1b12a38 23-Feb-2016 Marco Nelissen <marcone@google.com> Merge "Move (some) codecs into the codec process" into nyc-dev
0708170e10aa05f8ce590bb9daa23d770e57b130 23-Feb-2016 Jeff Tinker <jtinker@google.com> Merge "Fix info leak vulnerability of IDrm" into mnc-dev
am: 56ffb6e7b1

* commit '56ffb6e7b1e30dccf098a17843456870d4d48c86':
Fix info leak vulnerability of IDrm
56ffb6e7b1e30dccf098a17843456870d4d48c86 23-Feb-2016 Jeff Tinker <jtinker@google.com> Merge "Fix info leak vulnerability of IDrm" into mnc-dev
f7a388203a1632084dbe3307d7e3265f689bc11e 22-Feb-2016 Marco Nelissen <marcone@google.com> Clear allocation to avoid info leak

Bug: 26914474
Change-Id: Ie1a86e86d78058d041149fe599a4996e7f8185cf
OMX.cpp
fcf5720ddba1bb9468fc9e3af6ef31a34ed4bfa5 22-Feb-2016 mspector@google.com <mspector@google.com> IOMX.cpp uninitialized pointer in BnOMX::onTransact am: 9d72eb0682 am: bbcb1f0e2f am: 6dcf6ba111 am: 35501e45b2 am: 88b6660083 am: 22d12769b3 am: 7d4d66e605 am: 3c6a1fe754
am: aef546b8f7

* commit 'aef546b8f79e9a9252005b60122899cf5f8af67c':
IOMX.cpp uninitialized pointer in BnOMX::onTransact
7d4d66e605ba240068928d6618b20846d2d9618d 22-Feb-2016 mspector@google.com <mspector@google.com> IOMX.cpp uninitialized pointer in BnOMX::onTransact am: 9d72eb0682 am: bbcb1f0e2f am: 6dcf6ba111 am: 35501e45b2 am: 88b6660083
am: 22d12769b3

* commit '22d12769b3b1295f62d02086fc828b0a614b8da6':
IOMX.cpp uninitialized pointer in BnOMX::onTransact
22d12769b3b1295f62d02086fc828b0a614b8da6 22-Feb-2016 mspector@google.com <mspector@google.com> IOMX.cpp uninitialized pointer in BnOMX::onTransact am: 9d72eb0682 am: bbcb1f0e2f am: 6dcf6ba111 am: 35501e45b2
am: 88b6660083

* commit '88b6660083fb2d7c6d4a79668fbf2def625e1df6':
IOMX.cpp uninitialized pointer in BnOMX::onTransact
88b6660083fb2d7c6d4a79668fbf2def625e1df6 22-Feb-2016 mspector@google.com <mspector@google.com> IOMX.cpp uninitialized pointer in BnOMX::onTransact am: 9d72eb0682 am: bbcb1f0e2f am: 6dcf6ba111
am: 35501e45b2

* commit '35501e45b25020f4f79187125acec881a581520c':
IOMX.cpp uninitialized pointer in BnOMX::onTransact
6dcf6ba1111f43161a634cfa767a196f96ba9b7d 22-Feb-2016 mspector@google.com <mspector@google.com> IOMX.cpp uninitialized pointer in BnOMX::onTransact am: 9d72eb0682
am: bbcb1f0e2f

* commit 'bbcb1f0e2fdd8967b9f3d185fcd135028d032167':
IOMX.cpp uninitialized pointer in BnOMX::onTransact
1a19076c36cbe76a537b5742e96747135b4f0d46 19-Feb-2016 mspector@google.com <mspector@google.com> Fixing safteynet logging bug introduced in ag/862848

We moved the safteynet logging into storeMetaDataInBuffers_l
Bug: 26324358
Change-Id: I2171742b53192ebb71d546bcb8970bb3c68f366f
OMX.cpp
818e7a32ce3633980138aff2c2bfcc5158b3cfcc 17-Feb-2016 Andy Hung <hunga@google.com> Implement server side playback timestamps with 64 bit accuracy

Provide server timestamps if the HAL doesn't provide it.
Provide monotonic - boottime translation.
Integrate record timestamps and playback timestamps together.

Bug: 17472992
Bug: 22871200
Bug: 26400089
Bug: 26682703
Change-Id: If1974f94232fcce7ba0bbcdf63d9e54ed51918ff
udioTrack.cpp
cf1bbf3a12be653b825e230fd2785c14cd9b0192 19-Feb-2016 Andy Hung <hunga@google.com> Merge "Enable FastTrack timestamps" into nyc-dev
56d65dc0b4574b1d29132b25c90c83a8fb203c9e 19-Feb-2016 Wei Jia <wjia@google.com> Merge "IMediaSource: use shared memory to transfer large buffer." into nyc-dev
c3ed9d0c761344b89d2b347bf384239ef5237d29 19-Feb-2016 mspector@google.com <mspector@google.com> resolve merge conflicts of a913e76d37 to nyc-dev

Change-Id: I5612bdd49f175276aa8a44db8ba74e8452656e50
e9a5b96e7927fd4e38623e17ac73e8e4e25877ee 12-Feb-2016 Wei Jia <wjia@google.com> IMediaSource: use shared memory to transfer large buffer.

Also move MediaBufferGroup to libstagefright/foundation/.

Bug: 26295488
Change-Id: I88f4e6bf83ffb2b196628a2d4d83ea7b1f6ad9c2
MediaSource.cpp
cc2c4c128fdddcc693714e9fc41feddacc0fdcdc 19-Feb-2016 mspector@google.com <mspector@google.com> 3 uninitialized variables in IOMX.cpp
am: da9ca91ffd

* commit 'da9ca91ffd3727aca2ee8ae60cbe9fa3b0873cc5':
3 uninitialized variables in IOMX.cpp
6ae5843c281301a9ffd1059d185620a9337e15a2 17-Feb-2016 Andy Hung <hunga@google.com> Enable FastTrack timestamps

Bug: 26413951
Change-Id: Id54c32cb0f0be83d443f6cf1007181ebc461c586
udioTrack.cpp
udioTrackShared.cpp
da9ca91ffd3727aca2ee8ae60cbe9fa3b0873cc5 09-Feb-2016 mspector@google.com <mspector@google.com> 3 uninitialized variables in IOMX.cpp

Uninitialized MetadataBufferType pointer in case:
SET_INPUT_SURFACE
STORE_META_DATA_IN_BUFFERS
CREATE_INPUT_SURFACE

Fix: initialize them to kMetadataBufferTypeInvalid

Bug: 26324358
Change-Id: Ib3bcac9bedc98bc65efa39f67cdbffbd90b374c9
OMX.cpp
23858874bbce68fb5ac83250087fa7788c97dd12 17-Feb-2016 Marco Nelissen <marcone@google.com> Move (some) codecs into the codec process

Encoders and secure decoders still run in the mediaserver, while
all other codecs run in a separate codec process.

Bug: 22775369

Change-Id: Ie2ac87d53edbcf7c8f46a68a15857c9940f6d00d
OMX.cpp
55363176be0ad1fe75d97276547929b4ca971f56 17-Feb-2016 Bill Yi <byi@google.com> Merge commit '813ac23bee5b3519c2b7f410a2b24b3a94075b22' into HEAD
9ac86b3cae9a1e14b12bf97223ddde96142aae43 24-Jan-2016 Jeff Tinker <jtinker@google.com> stagefright: ICrypto: enable passing secure buffers in native_handle

Previously secure buffers were passed as opaque
void * values, which no longer works since
mediadrmserver is now a separate process from
mediaserver.

Bug: 22990512
Change-Id: I5c458ba19e78e20d1bd5a5899df0bce16f71bfd8
Crypto.cpp
a63141af8f036bda0b8f7800107ca8a0e0623135 12-Feb-2016 Lajos Molnar <lajos@google.com> stagefright: enable native handles for secure buffers

- rename IOMX::allocateBuffer to allocateSecureBuffer as ACodec
only uses allocateBuffer for secure compressed buffers.
- add argument to return native_handle if component supports it.
- rename IOMX::enableGraphicBuffers to enableNativeBuffers.
- add argument to select graphic vs. native handle mode
- request native handles for secure input buffers, but allow
fallback

Bug: 26782004
Change-Id: Ide9d07f54d2e7e3e6a82dbca011f4db9a5630950
OMX.cpp
8ce8e264d0bf09ec131e4a7701fe1ebc3a678f8b 16-Feb-2016 Eric Laurent <elaurent@google.com> Revert "Enable FastTrack timestamps"

This reverts commit b3a486fecddc9e9264fe63d356eca0812493db27.

Reverting while investigating the root cause.

Bug: 27186414
udioTrack.cpp
a69729dc76b97c44387088d351480d5d0701517e 12-Feb-2016 Jeff Tinker <jtinker@google.com> Add mediadrm service

Part of media security hardening

This is an intermediate step toward moving
mediadrm to a new service separate from mediaserver.
This first step allows mediadrmservice to run based
on the system property media.mediadrmservice.enable
so it can be selectively enabled on devices that
support using native_handles for secure buffers.

bug: 22990512
Change-Id: I70320f0c4b7861cdba26fbc24c20bce54e5749a4
ndroid.mk
MediaDrmService.cpp
ef2bdbc3ee1d7ccfdccdc2e58c1135d7b19660fd 12-Feb-2016 Lajos Molnar <lajos@google.com> stagefright: CodecCapabilities: fix missing capabilities

mCurrentCaps is a reference, so copy codec capabilities into it
vs. replacing it.

Bug: 27142863
Change-Id: I914bcc882d5f9049bc9eb8b31913b07ae572b441
ediaCodecInfo.cpp
b0a144d705a021994628d136a170a6d2bd4282e7 12-Feb-2016 Phil Burk <philburk@google.com> Merge "AudioTrack: support ENCODING_IEC61937" into nyc-dev
0a4427bb91e72a4dfece276521d7f21fbb6c7846 12-Feb-2016 Lajos Molnar <lajos@google.com> stagefright: use MediaCodec::QueryCapabilities

This reverts commit cfb71f189ca620b7b2caf213572849bf59b50231
and still fixes b/27142863.

Bug: 27142863
Change-Id: I914bcc882d5f9049bc9eb8b31913b07ae572b441
ediaCodecInfo.cpp
661c5953f54848a37a012d9106af00e61bb98e08 12-Feb-2016 Jean-Michel Trivi <jmtrivi@google.com> Merge "Dynamic audio policies on UID" into nyc-dev
fdb3c07db5d44535eb8c3ec46dc78ad8446c01eb 09-Feb-2016 Phil Burk <philburk@google.com> AudioTrack: support ENCODING_IEC61937

Set DIRECT flag.
Use audio_has_proportional_frames() instead of audio_is_linear_pcm()
where appropriate.

Bug: 24541671
Bug: 20891646
Bug: 26373761
Change-Id: Ia32036b18683b084d6c9887593df87397ea0afd9
Signed-off-by: Phil Burk <philburk@google.com>
udioTrack.cpp
b3a486fecddc9e9264fe63d356eca0812493db27 05-Aug-2015 Andy Hung <hunga@google.com> Enable FastTrack timestamps

Bug: 26413951
Change-Id: I99a69241a0bcd69f6bfebf785cac6d9ee1e2cd5f
udioTrack.cpp
7f2262fc7d038a0d42def7d769bb9e816e292785 11-Feb-2016 Lajos Molnar <lajos@google.com> stagefright: use OMXCodec's QueryCodec for capabilities

Bug: 27142863
Change-Id: Ica00f5395477a416e1ca4db2697310eef3d635a0
ediaCodecInfo.cpp
e8decedb429ed76dfa84cdb3e80ab3b969e77298 11-Feb-2016 Jean-Michel Trivi <jmtrivi@google.com> Dynamic audio policies on UID

When looking for an output, take attributes and UID into account.
To find the matching mix: for each mix
- inspect which rules are used
- find a candidate mix for usage
- check UID compatibility
Rename AttributeMatchCriterion to AudioMixMatchCriterion to be consistent
with the fact that now mixing rules are not always about audio attributes.

Bug 26798796

Change-Id: I1520b0df190a98f197ea8e0144b770e1e6d97888
udioPolicy.cpp
69bebe8d87e95a026d14f0a7cd68d8f954dc51c8 11-Feb-2016 Lajos Molnar <lajos@google.com> MediaCodecInfo: keep capabilities from XML when updating them from codec

Bug: 27115490
Change-Id: Ie15bf538a3026829ff8029fb8b96b8d254517d1c
ediaCodecInfo.cpp
3f0c902beb53a245c9db35e871607dba05b8d391 16-Jan-2016 Andy Hung <hunga@google.com> Add AudioRecord timestamps

Bug: 13569372
Bug: 22886739
Change-Id: Ibc81afefb733d23676a632a0f2da31163fdbe05f
udioRecord.cpp
udioTrackShared.cpp
6665703177d33f69007a0877de46431b90e8726b 10-Feb-2016 Lajos Molnar <lajos@google.com> Merge "stagefright: Move CodecCapabilities querying into MediaCodec" into nyc-dev
1900e77bac4276f247f80fd06d19316cac598f57 03-Feb-2016 Marco Nelissen <marcone@google.com> Run codecs in a separate process

Encoders and secure decoders still run in the mediaserver, while
all other codecs run in a separate codec process.

Bug: 22775369

Change-Id: Ifbcab8a8f2fe77d2567830ac88f0d982e77f7b00
ndroid.mk
MediaCodecService.cpp
65dd3eeef54cf1d1c4edf2f966d3dabb508d3cb9 05-Feb-2016 Lajos Molnar <lajos@google.com> stagefright: Move CodecCapabilities querying into MediaCodec

1. We cannot assume that codecs are OMX based
2. We still have a strange dependency where MediaCodec's
create methods depend on MediaCodecList, which depends on
MediaCodec's static method. This is to be untangled later.

Bug: 17108024
Change-Id: Idd619ee959627539a65f5f7da586108883dcb5f2
ediaCodecInfo.cpp
8aff7771bf6f4230a0bf9b548c874e139e133686 09-Feb-2016 Jeff Tinker <jtinker@google.com> Fix info leak vulnerability of IDrm

bug: 26323455
Change-Id: I25bb30d3666ab38d5150496375ed2f55ecb23ba8
Drm.cpp
5b05e49e6550cb2abf1a88272d6cd460b8957176 05-Feb-2016 Lajos Molnar <lajos@google.com> stagefright: Move CodecCapabilities querying into MediaCodec

1. We cannot assume that codecs are OMX based
2. We still have a strange dependency where MediaCodec's
create methods depend on MediaCodecList, which depends on
MediaCodec's static method. This is to be untangled later.

Bug: 17108024
Change-Id: Idd619ee959627539a65f5f7da586108883dcb5f2
ediaCodecInfo.cpp
9d72eb068206ecdd212679c9649e93309f1f76bc 08-Feb-2016 mspector@google.com <mspector@google.com> IOMX.cpp uninitialized pointer in BnOMX::onTransact

This can lead to local code execution in media server.
Fix initializes the pointer and checks the error conditions before
returning

Bug: 26403627
Change-Id: I7fa90682060148448dba01d6acbe3471d1ddb500
OMX.cpp
7ee3db58449dde22652be3c056f488b24b5fb14d 30-Jan-2016 Eric Laurent <elaurent@google.com> Merge "AudioTrack: fix ClientProxy::obtainBuffer() size clamping"
bdd8101cd487cdfe36726aa0d78c24008c35d605 30-Jan-2016 Eric Laurent <elaurent@google.com> AudioTrack: fix ClientProxy::obtainBuffer() size clamping

Fix data cast in comparison that can cause large unsigned values to
be considered small negative values, causing a wrong buffer size
calculation.

Change-Id: I3b7d4326659c38e744338b5d1ae456c859c89abf
udioTrackShared.cpp
b3e5bbedff47b33baab6389b173e854e36e82bdb 29-Jan-2016 Glenn Kasten <gkasten@google.com> Merge "Remove TimedAudioTrack and associated code"
254012a040733ec2476171d311005168810d1d01 28-Jan-2016 Marco Nelissen <marcone@google.com> Merge "Revert "Run codecs in a separate process""
260e56c9a17737bf280d776797d6dee411c9b4da 28-Jan-2016 Marco Nelissen <marcone@google.com> Revert "Run codecs in a separate process"

This reverts commit 4f12d94fc26df1d0c7a566792711b8863fd39fe9.

Change-Id: Ic850a950119a45efd3042f40147253b37c328853
ndroid.mk
MediaCodecService.cpp
MediaPlayerService.cpp
2b7893250228abb63dd7ca577d8c7769dcff2344 28-Jan-2016 Wei Jia <wjia@google.com> Merge "IDataSource: add getFlags() to expose DataSource::flags()."
10551fcd58b3807fc7351d88e6127ec227b993d1 27-Jan-2016 Wei Jia <wjia@google.com> IDataSource: add getFlags() to expose DataSource::flags().

This will let MPEG4Extractor cache stbl data. Therefore it can avoid data
flushing in data source (NuCachedSource2) due to reading stbl and access
unit data alternatively when the stream is larger than max cache size.

Bug: 26533748
Change-Id: Ia534755ab9130e4dcee94d53ca3c933d1b9eb566
DataSource.cpp
26736fd21faada79c4fb91cb6ef91582c113e9eb 27-Jan-2016 Marco Nelissen <marcone@google.com> Merge "Run codecs in a separate process"
d79072e9dff59f767cce2cda1caab80ce5a0815b 06-Jan-2016 Glenn Kasten <gkasten@google.com> Remove TimedAudioTrack and associated code

Bug: 8278435
Change-Id: I095c1a4888e645e14d93b0b15fbef4524a831ca1
udioTrack.cpp
AudioTrack.cpp
4f12d94fc26df1d0c7a566792711b8863fd39fe9 16-Dec-2015 Marco Nelissen <marcone@google.com> Run codecs in a separate process

For now this only runs decoders and Google encoders in the codec process.

Bug: 22775369
Change-Id: Iadd8b6bc2873ddcfaee3e68866642ba74c6949aa
ndroid.mk
MediaCodecService.cpp
MediaPlayerService.cpp
9aa87d4ef502c9700a31fe46dc6e1d6f99cf4e5e 07-Dec-2015 Wonsik Kim <wonsik@google.com> stagefright: add HEVC support to MediaRecorder

Bug: 22879917
Change-Id: I6c97b051467de44c506a8ff021321e5953a63fc3
ediaProfiles.cpp
bbe98f009fc2c3181a8d4ab71b3e145f76c01755 17-Jan-2016 Phil Burk <philburk@google.com> Merge "AudioTrack: Add getUnderrunCount()"
27e583ba1d0d4fdc11d6eeee0c416e727045cbbc 17-Jan-2016 Phil Burk <philburk@google.com> Merge "AudioTrack: add setBufferSizeInFrames()"
33ff89ba94a527e4293ee5349da01483252d5c83 30-Nov-2015 Phil Burk <philburk@google.com> AudioTrack: lower Java latency

Add AUDIO_FLAG_LOW_LATENCY to enable Fast track.

Change-Id: Ib1bff635afaa57af7754cb751b57c6afc4c2ab2b
Bug: 21019153
Signed-off-by: Phil Burk <philburk@google.com>
udioTrack.cpp
c0adecb800b197cb8c028513130ebabf2d0f37ba 08-Jan-2016 Phil Burk <philburk@google.com> AudioTrack: add setBufferSizeInFrames()

Also add getBufferCapacityInFrames().
These can be used to dynamically raise or lower latency.

Bug: 21019153
Signed-off-by: Phil Burk <philburk@google.com>
Change-Id: I02ca7f6f5cc4e089fcd81cc8a2b6ff234e0381a8
udioTrack.cpp
udioTrackShared.cpp
2812d9ea3a3a33142dd8e23c9d949c498d6f7a12 04-Jan-2016 Phil Burk <philburk@google.com> AudioTrack: Add getUnderrunCount()

This allows an app to detect application-level output glitches.
Underrun counts survive track recreation.

Change-Id: I8eb14e92f6fc1007718a29b0666ab51ace30cdb8
Bug: 25641253
Signed-off-by: Phil Burk <philburk@google.com>
udioTrack.cpp
udioTrackShared.cpp
0ca02a0c2c77bf88aa7d7b7c3ec04f9153ddce93 14-Jan-2016 Wei Jia <wjia@google.com> IMediaPlayer: NULL pointer is valid for httpService in some cases.

Bug: 26524606
Change-Id: Ib3323618f9bb8883e8a398c62975a0cc278c64a3
MediaPlayer.cpp
c16bf1d9e8ccdd27327e988d50f5b9640e5406f8 13-Jan-2016 Jean-Michel Trivi <jmtrivi@google.com> Merge "AudioPolicy: callback for recording configuration change"
31fc66042d4241f443ebbd2c7b37946edf35b8e9 12-Jan-2016 Jeff Tinker <jtinker@google.com> Merge "Support AES-CBC sample encryption in MediaDrm"
18cb1eca504817b5b144a023ae2792d90e74c9a5 18-Dec-2015 Jeff Tinker <jtinker@google.com> Support AES-CBC sample encryption in MediaDrm

bug:23719082
Change-Id: I3028452f315122b65296881aed1fbf66c3ceeebc
Crypto.cpp
2f4fe9f7df8f22c6bc8745407d19df73128810ec 05-Dec-2015 Jean-Michel Trivi <jmtrivi@google.com> AudioPolicy: callback for recording configuration change

Each AudioSession tracks start / end of recording, and sends
a callback to AudioSystem.
AudioSystem tracks a single recording callback tracking
input source and audio session number.

Change-Id: Ic065751d9ba013e03f2a6ad8dde02542e5465ec0
udioSystem.cpp
AudioPolicyServiceClient.cpp
59950b403076a94828668902d30215ac5a733902 20-Aug-2014 Glenn Kasten <gkasten@google.com> Remove unused ClientProxy::getFramesFilled()

Change-Id: Ib3cf5a6b61572a1bff89bdd62262fdcf9f09aedc
udioTrackShared.cpp
64f1901bdddf464c8f29bed34e3449762873b3e9 09-Jan-2016 Andy Hung <hunga@google.com> Merge "Add setMasterMono and getMasterMono"
2ddee19245641e86bca436dda23a0f5089bf2ab5 19-Dec-2015 Andy Hung <hunga@google.com> Add setMasterMono and getMasterMono

Bug: 15283594
Bug: 22700363
Change-Id: I32dc1fcecf285967a61bd508af3bb299595db57d
udioSystem.cpp
AudioPolicyService.cpp
53e142a0ee3cf18bcc4a88761bd771c5d4eff65f 08-Jan-2016 Wei Jia <wjia@google.com> Merge "libmedia: check NULL pointer at binder receiver side."
2afac0c7c42560ff5b8f133c6074b7e023279d6d 07-Jan-2016 Wei Jia <wjia@google.com> libmedia: check NULL pointer at binder receiver side.

Change-Id: I464da96f3d6081dd8c3cc2fd977e2b96f5d477bb
Crypto.cpp
MediaCodecList.cpp
MediaMetadataRetriever.cpp
MediaPlayer.cpp
MediaPlayerService.cpp
ResourceManagerService.cpp
StreamSource.cpp
56c95c9bee23aec674348e06c4385e63ac6123bc 06-Jan-2016 Wei Jia <wjia@google.com> IOMX: check parameters on binder receiver side.

Bug: 26392700
Change-Id: I92c93718bbc1bcb366a051af3bdfbbe06c8701e6
OMX.cpp
d958855ff2f7c05672b5278437ee0d177270d24d 19-Dec-2015 Glenn Kasten <gkasten@android.com> Merge "libmedia: Preserve futex return status in client obtainBuffer" am: 7253644736
am: 6dd49c56bf

* commit '6dd49c56bffc0de2c0e67f1e9b20304d8206afa0':
libmedia: Preserve futex return status in client obtainBuffer
6dd49c56bffc0de2c0e67f1e9b20304d8206afa0 19-Dec-2015 Glenn Kasten <gkasten@android.com> Merge "libmedia: Preserve futex return status in client obtainBuffer"
am: 7253644736

* commit '7253644736198864a1f2fe95788e7eb41ecc2428':
libmedia: Preserve futex return status in client obtainBuffer
b463da8e499149c7230b8dbd839bb7bc8ece602f 15-Dec-2015 Leena Winterrowd <lenhardw@codeaurora.org> libmedia: Preserve futex return status in client obtainBuffer

clock_gettime() can change errno if something goes wrong (most
commonly setting EBADF). This failure should not cause a failure
in ClientProxy::obtainBuffer() if the futex returned successfully
or with a known status. Preserve errno before calling clock_gettime
to prevent propagation of an invalid, unexpected error.

authored-by: Leena Winterrowd <lenhardw@codeaurora.org>

Change-Id: Ib69201031a81395ece47dd8ad7c4dcddd2b00153
udioTrackShared.cpp
44333e51c62643e7581022495a2a1f410dd62e27 15-Dec-2015 Marco Nelissen <marcone@google.com> Merge "MediaSource: use shared memory for transferring larger buffers"
e9d5ae1e105e46a4cad323f667a851e638294c32 10-Dec-2015 Jeff Tinker <jtinker@google.com> Merge "Fix security vulnerability in ICrypto DO NOT MERGE" into mnc-dev am: 89bec04cf8 am: f797a48b4c am: 3f05f30117
am: 007064a8ca

* commit '007064a8caae76cc17e883ece4c9f361cb6a7429':
Fix security vulnerability in ICrypto DO NOT MERGE
f797a48b4ceaef56402ecd942ccdebab394daad0 10-Dec-2015 Jeff Tinker <jtinker@google.com> Merge "Fix security vulnerability in ICrypto DO NOT MERGE" into mnc-dev
am: 89bec04cf8

* commit '89bec04cf83598b1868f3f969c220c3200028e03':
Fix security vulnerability in ICrypto DO NOT MERGE
6ca0256a1dcd85e1fa0a535347a9f0ecc57e284d 09-Dec-2015 Jeff Tinker <jtinker@google.com> Remove unused MediaDrm.unprovisionDevice

bug:25726218
Change-Id: I6eb0ceb488c66c191897b3c190f5da1d71880c77
Drm.cpp
4aeee811662bdb8f6f4b24884d62780deb7ca1c6 08-Dec-2015 Jeff Tinker <jtinker@google.com> Merge "Fix security vulnerability in ICrypto"
d00a17d24d888dd1f6d245fbe6425865e6f56894 07-Dec-2015 Andy Hung <hunga@google.com> Merge "Check for non-negative fd before close, dup, lseek, or read."
b20688e7e87e99ab1ee106af043ce0cbb40bde5d 05-Dec-2015 Andy Hung <hunga@google.com> Check for non-negative fd before close, dup, lseek, or read.

Bug: 24896328
Change-Id: Idd8da8cf202f51f42d0a81421a91768ec3d5f025
idiIoWrapper.cpp
22f824feac43d5758f9a70b77f2aca840ba62c3b 05-Dec-2015 Jeff Tinker <jtinker@google.com> Fix security vulnerability in ICrypto DO NOT MERGE

b/25800375

Change-Id: I03c9395f7c7de4ac5813a1207452aac57aa39484
Crypto.cpp
bb4877d143c6c7ec9b42e3c490fed58af4f39dea 05-Dec-2015 Jeff Tinker <jtinker@google.com> Fix security vulnerability in ICrypto

b/25800375

Change-Id: I03c9395f7c7de4ac5813a1207452aac57aa39484
Crypto.cpp
208bc477d92dbd2e5b4d1c0b2d000fa4c231e9d3 03-Dec-2015 Andy Hung <hunga@google.com> DO NOT MERGE SoundPool: add lock for findSample access from SoundPoolThread
am: 3d6a714980

* commit '3d6a7149802928ecf3f58b7218b0e82699b492df':
DO NOT MERGE SoundPool: add lock for findSample access from SoundPoolThread
469826c69810c24f2e90291182c8501e76be31f0 03-Dec-2015 Andy Hung <hunga@google.com> Merge "Use modulo position variables in AudioTrack and AudioRecord"
3d6a7149802928ecf3f58b7218b0e82699b492df 03-Dec-2015 Andy Hung <hunga@google.com> DO NOT MERGE SoundPool: add lock for findSample access from SoundPoolThread

Sample decoding still occurs in SoundPoolThread
without holding the SoundPool lock.

Bug: 25781119
Change-Id: I11fde005aa9cf5438e0390a0d2dfe0ec1dd282e8
oundPool.cpp
19c47afbc402542720ddd280e1bbde3b2277b586 03-Dec-2015 Andy Hung <hunga@google.com> DO NOT MERGE SoundPool: add lock for findSample access from SoundPoolThread

Sample decoding still occurs in SoundPoolThread
without holding the SoundPool lock.

Bug: 25781119
Change-Id: I11fde005aa9cf5438e0390a0d2dfe0ec1dd282e8
oundPool.cpp
90e8a97dd5c9d391d7a2ea6a2290ed976f928379 10-Nov-2015 Andy Hung <hunga@google.com> Use modulo position variables in AudioTrack and AudioRecord

More type safety, plus correct treatment for sanitization.

Bug: 25569906
Bug: 25232421
Change-Id: Id852277b81a1792c5e67392cd74bc39cba7ed1ad
udioRecord.cpp
udioTrack.cpp
b65990f4a0cf01db0b9f21c68fcf8824ae03a178 10-Nov-2015 Marco Nelissen <marcone@google.com> MediaSource: use shared memory for transferring larger buffers

For small buffers we still copy the data as part of the binder transaction,
since that saves one extra binder call, but for buffers > 64KB we now use
shared memory.

Change-Id: I19aad7ea7f6104991b9b6b4f24ea880b54f739be
MediaExtractor.cpp
MediaSource.cpp
c22c00c82fa37e2c567c1d4976c133bbd46831a0 12-Nov-2015 Marco Nelissen <marcone@google.com> Fix possible media extractor service crash

Change-Id: I7501eee0d375745243a9e9acceacd526b6f322b7
MediaExtractorService.cpp
8c6161382fc602322f5eefe8c88f50f79b612b85 09-Nov-2015 Chad Brubaker <cbrubaker@google.com> Merge "Whitelist getTimestamp from integer sanitization" am: 51cd9a441e am: 7095f87656
am: bf24de292a

* commit 'bf24de292afd24c288e5522f1d0082c9fb7ec268':
Whitelist getTimestamp from integer sanitization
7095f876565f8c52bafe02e7c6ba04aa0c274dfa 09-Nov-2015 Chad Brubaker <cbrubaker@google.com> Merge "Whitelist getTimestamp from integer sanitization"
am: 51cd9a441e

* commit '51cd9a441ed0acf6e3b9c221e9b7f9424073191f':
Whitelist getTimestamp from integer sanitization
ec3806a8be1a014631b39df59edd596f8eb5be01 09-Nov-2015 Chad Brubaker <cbrubaker@google.com> Whitelist getTimestamp from integer sanitization

The timestamp math relies on modulo 32 bit math, whitelist this function
for now until we can find a better way to tackle this.

Bug: 25490803
Change-Id: I3e2b19db023b4622f5884933feab96363756e8c6
udioTrack.cpp
fbf3beaf09c2f3ceff2c3fb34197cb05daededa6 28-Oct-2015 Dan Austin <danielaustin@google.com> Merge "Refactor setPlaybackRate to avoid benign unsigned integer overflow." am: a38594e92f am: 9b698dcfb4
am: 3845ba35a0

* commit '3845ba35a0bf364f30bd46029b89e7b5fff28793':
Refactor setPlaybackRate to avoid benign unsigned integer overflow.
3845ba35a0bf364f30bd46029b89e7b5fff28793 28-Oct-2015 Dan Austin <danielaustin@google.com> Merge "Refactor setPlaybackRate to avoid benign unsigned integer overflow." am: a38594e92f
am: 9b698dcfb4

* commit '9b698dcfb41cbadd4a21d09eede0de672912959d':
Refactor setPlaybackRate to avoid benign unsigned integer overflow.
9b698dcfb41cbadd4a21d09eede0de672912959d 28-Oct-2015 Dan Austin <danielaustin@google.com> Merge "Refactor setPlaybackRate to avoid benign unsigned integer overflow."
am: a38594e92f

* commit 'a38594e92fea7f88c5edad98a4992b5f1b688436':
Refactor setPlaybackRate to avoid benign unsigned integer overflow.
e34eae2de7bd6dcba5dea132dabb09f63ac46adc 28-Oct-2015 Dan Austin <danielaustin@google.com> Refactor setPlaybackRate to avoid benign unsigned integer overflow.

There is a check that results in a benign unsigned integer overflow.
This has been refactored to avoid the unsigned integer overflow.

Bug: 25327431
Change-Id: Ib112a7cd585c680f13e4bee3d7e9f45da7d66f1d
udioTrack.cpp
b2487f03f12dcafdb801fc0007c8df8412397f44 01-Sep-2015 Marco Nelissen <marcone@google.com> Extractor service

Run extractors in a separate process. Currently all data is copied through a
binder transaction, and WVMExtractor is still run in the mediaserver process.

Change-Id: Ic5dbce87126dd321ad792f4dd540c2ff6b068d13
ndroid.mk
MediaExtractor.cpp
MediaExtractorService.cpp
MediaSource.cpp
3da23b29af4b920d1bd99c097195409f0fabb83b 24-Oct-2015 Andy Hung <hunga@google.com> AudioRecord: Treat marker position similar to AudioTrack

A similar change to AudioTrack fixed a race condition.

Bug: 24744966
Change-Id: I1f05cb7c27b499a58663002a885628df149d7a80
udioRecord.cpp
3806ff2f2021074e7c1fe3784ee8a12e0d042a82 23-Oct-2015 Glenn Kasten <gkasten@google.com> Merge "Workaround for busy wait bug" into mnc-dr-dev am: d34cf6d95c am: 6a92190261
am: 2eb225313d

* commit '2eb225313de241d02979c66e2730983901ad05ea':
Workaround for busy wait bug
2eb225313de241d02979c66e2730983901ad05ea 23-Oct-2015 Glenn Kasten <gkasten@google.com> Merge "Workaround for busy wait bug" into mnc-dr-dev am: d34cf6d95c
am: 6a92190261

* commit '6a9219026124f9075c03a861101cea985f01cdce':
Workaround for busy wait bug
606fbc1030d686bf1f8dc03d14a79342aca2ca41 23-Oct-2015 Glenn Kasten <gkasten@google.com> Workaround for busy wait bug

Underlying bug 25195759 is not yet fixed.

Bug: 24263351
Change-Id: I04b644246640054d38c8de79e0eb80fcbfef0e48
udioTrack.cpp
f1d250c4f18c48773cecde827b79bfb1b2c597d5 14-Oct-2015 Chad Brubaker <cbrubaker@google.com> am 6de80056: am f73c329e: am 5e925e02: Merge "Enable integer overflow sanitization in libmedia"

* commit '6de80056ea916624a7b3e264749249ed1ab82725':
Enable integer overflow sanitization in libmedia
6de80056ea916624a7b3e264749249ed1ab82725 14-Oct-2015 Chad Brubaker <cbrubaker@google.com> am f73c329e: am 5e925e02: Merge "Enable integer overflow sanitization in libmedia"

* commit 'f73c329e5e0b8b8e260ed59c6a50860f543189e4':
Enable integer overflow sanitization in libmedia
f73c329e5e0b8b8e260ed59c6a50860f543189e4 14-Oct-2015 Chad Brubaker <cbrubaker@google.com> am 5e925e02: Merge "Enable integer overflow sanitization in libmedia"

* commit '5e925e02093bdf5ed07655acaa0456082dba3638':
Enable integer overflow sanitization in libmedia
77cce44fd360e4bd47ad3427ea14beb15b515d24 14-Oct-2015 Glenn Kasten <gkasten@google.com> am 0aa9146d: am 8fa0848c: Merge "For static obtainBuffer(), do not set mUnreleased if acknowledging flush." into mnc-dr-dev

* commit '0aa9146d7cf84e00958f8758564b161395d44bfe':
For static obtainBuffer(), do not set mUnreleased if acknowledging flush.
c67c65882f7cf1d3ae617bff41ff9c7ec8a0fd27 14-Oct-2015 Glenn Kasten <gkasten@google.com> am 5116febf: am cfda8c43: Merge "AudioTrack: Skip callback EVENT_STREAM_END on DEAD_OBJECT." into mnc-dr-dev

* commit '5116febf966875c19a0b137a3deef0ba0ebe42df':
AudioTrack: Skip callback EVENT_STREAM_END on DEAD_OBJECT.
8fa0848cd47882d6df0c584b276515f98b768eca 14-Oct-2015 Glenn Kasten <gkasten@google.com> Merge "For static obtainBuffer(), do not set mUnreleased if acknowledging flush." into mnc-dr-dev
954ca45ac30539a49f179580b667b0ab1056d113 09-Sep-2015 Andy Hung <hunga@google.com> For static obtainBuffer(), do not set mUnreleased if acknowledging flush.

static audio tracks use obtainBuffer() to update position in start().

Bug: 22938515
Change-Id: I8ae32f6cce4d122386d2cf8982e158049b04ba9a
udioTrackShared.cpp
39609a0a6d95d003b0f237e6c139b070b4df7071 04-Sep-2015 Andy Hung <hunga@google.com> AudioTrack: Skip callback EVENT_STREAM_END on DEAD_OBJECT.

Send only EVENT_NEW_IAUDIOTRACK to initiate teardown.

Bug: 23750452
Change-Id: Ib5dcd578b5b6a6a1d91a03e58ef8da0acd994243
udioTrack.cpp
42fcb7c53027ed6b0375b5e2a7b937b53d87034d 13-Oct-2015 Chad Brubaker <cbrubaker@google.com> am 6b1e35e7: am 1982dfdc: am 0afb8309: Merge "Fix benign unsigned overflow in AuidoTrackShared"

* commit '6b1e35e73fe4f9538ec0acaf4847f8b68a58bbc5':
Fix benign unsigned overflow in AuidoTrackShared
1982dfdc2a9e99331d02a6591b2cbe2f65ae1103 13-Oct-2015 Chad Brubaker <cbrubaker@google.com> am 0afb8309: Merge "Fix benign unsigned overflow in AuidoTrackShared"

* commit '0afb83093a16cd27912788ce154c43a485a5b1dc':
Fix benign unsigned overflow in AuidoTrackShared
59b94200f6e012667eb35e055ead714dfd060ff1 07-Oct-2015 Chad Brubaker <cbrubaker@google.com> Enable integer overflow sanitization in libmedia

Change-Id: I138a02abca792af35001058ce17412bdf69fec92
ndroid.mk
cb50c54b31a83ac598530780fa8c145a3cb4a2de 07-Oct-2015 Chad Brubaker <cbrubaker@google.com> Fix benign unsigned overflow in AuidoTrackShared

fsanitize=integer adds unsigned checks to int32_t - uint32_t, force both
operands to int32_t to avoid such checks being added.

Change-Id: I76fce38f9636f5322ad95fdb81abb690503f4d08
udioTrackShared.cpp
3b938b6c70dd5e38733171cb8c6706f10ae50901 09-Oct-2015 Chad Brubaker <cbrubaker@google.com> am 49bf1193: Merge "Fix benign overflow in AudioTrackShared"

* commit '49bf11936cadb96a65a81e71515b1246f55e689a':
Fix benign overflow in AudioTrackShared
91aa4a0aefa43ad53a20b3d4538a6a986c902818 08-Oct-2015 Wei Jia <wjia@google.com> am f106f9e4: am 15e991bd: resolved conflicts for 0b09da7a to lmp-mr1-dev

* commit 'f106f9e4eacc1cb10ccc851a37619ed4b37bbb1b':
DO NOT MERGE - OMX: allow only secure codec to remotely call allocateBuffer.
15e991bdf8870c2c9820c2d98e0d30dae2e05a25 08-Oct-2015 Wei Jia <wjia@google.com> resolved conflicts for 0b09da7a to lmp-mr1-dev

Change-Id: Ib6a1aa4cee00e0449da30ae158d71403d6236487
dd184a4824acc31160895e2c6f8d93a7facfc2c8 08-Oct-2015 Wei Jia <wjia@google.com> am 3b4a72ac: Merge "DO NOT MERGE - OMX: allow only secure codec to remotely call allocateBuffer." into klp-dev

* commit '3b4a72acf039c58c33807b6d6fcdd5e09eafb1df':
DO NOT MERGE - OMX: allow only secure codec to remotely call allocateBuffer.
d008275796ac4cccf85fefce53cef733a49bc1fa 31-Aug-2015 Wonsik Kim <wonsik@google.com> Implement pause/resume functionality to MediaRecorder

Bug: 20092236
Change-Id: Ia0e92ff246302fd5fdef53c4f961d6645cc26a86
MediaRecorder.cpp
ediarecorder.cpp
d9459157206859d44d68ce908bff359b0d01f51f 24-Sep-2015 Chad Brubaker <cbrubaker@google.com> Fix benign overflow in AudioTrackShared

Bug: 24340611
Change-Id: Idc1e6ae09839475379bf0ab27943ae2de6f80bfa
(cherry picked from commit 0c27d279a1a99d175b84cc530ce2bfb0665b308b)
udioTrackShared.cpp
2482595baadd16f20d3992c8c9d6a14061836872 28-Sep-2015 Wei Jia <wjia@google.com> DO NOT MERGE - OMX: allow only secure codec to remotely call allocateBuffer.

Bug: 24310423
Change-Id: Iebcfc58b447f925ec2134898060af2ef227266a3
(cherry picked from commit 8dde7269a5356503d2b283234b6cb46d0c3f214e)
OMX.cpp
4a03d784f7c0e3a9685d182eee92ba6580eaf5a1 28-Sep-2015 Wei Jia <wjia@google.com> DO NOT MERGE - OMX: allow only secure codec to remotely call allocateBuffer.

Bug: 24310423
Change-Id: Iebcfc58b447f925ec2134898060af2ef227266a3
(cherry picked from commit 8dde7269a5356503d2b283234b6cb46d0c3f214e)
OMX.cpp
7d7a11ca73c9684b63275e82b327f6f90fcc114e 07-Oct-2015 Glenn Kasten <gkasten@google.com> am 9ea0680e: am b177e8a7: Merge "AudioTrack: Prevent stop() from reissuing last marker event" into mnc-dr-dev

* commit '9ea0680e4d77d21fb0698fec3ccd7779213eca62':
AudioTrack: Prevent stop() from reissuing last marker event
b177e8a7559f61154a0560f7396ba9eeede80579 07-Oct-2015 Glenn Kasten <gkasten@google.com> Merge "AudioTrack: Prevent stop() from reissuing last marker event" into mnc-dr-dev
cc8bbc3ffed9fdd3f3d92973474c498e51035ccd 06-Oct-2015 Andy Hung <hunga@google.com> AudioTrack: Prevent stop() from reissuing last marker event

Avoid a duplicate marker event race condition (1 in 30 or less)
by clearing marker reached in start() not stop().

Bug: 24497521
Change-Id: I9520d063c7d173d2e642174bf60a2bfe75edf085
udioTrack.cpp
61be84167c1a11c8a030e00a2b79b2bc4fdf617f 06-Oct-2015 Andy Hung <hunga@google.com> AudioTrack: Prevent stop() from reissuing last marker event

Avoid a duplicate marker event race condition (1 in 30 or less)
by clearing marker reached in start() not stop().

Bug: 24497521
Change-Id: I9520d063c7d173d2e642174bf60a2bfe75edf085
udioTrack.cpp
f470bf3f3788062f77a0614ec693583fd85716c6 06-Oct-2015 Wei Jia <wjia@google.com> am 031e841e: am 8656914f: am b90b8291: am cb70fdbe: Merge "OMX: allow only secure codec to remotely call allocateBuffer." into mnc-dev

* commit '031e841e34f2358a71cc63ad8192e0f48a9f63a7':
OMX: allow only secure codec to remotely call allocateBuffer.
031e841e34f2358a71cc63ad8192e0f48a9f63a7 06-Oct-2015 Wei Jia <wjia@google.com> am 8656914f: am b90b8291: am cb70fdbe: Merge "OMX: allow only secure codec to remotely call allocateBuffer." into mnc-dev

* commit '8656914fa29bbd72512752e221837333c672a188':
OMX: allow only secure codec to remotely call allocateBuffer.
b90b8291e36ae079ac0ccd029bb6e6a987036f7c 06-Oct-2015 Wei Jia <wjia@google.com> am cb70fdbe: Merge "OMX: allow only secure codec to remotely call allocateBuffer." into mnc-dev

* commit 'cb70fdbe9be14002a4303a93f07a13c508c00d89':
OMX: allow only secure codec to remotely call allocateBuffer.
7c176696c3274d0c79d34290e9cee595b945ef3c 05-Oct-2015 Praveen Chavan <pchavan@codeaurora.org> am 39824526: am 4802c0c5: AudioSystem: Fix race condition in accessing ioDescriptors

* commit '398245263197fce2c475f65d41966307062e9f7d':
AudioSystem: Fix race condition in accessing ioDescriptors
4802c0c507681634aee38518581a080bfa443ae2 29-Sep-2015 Praveen Chavan <pchavan@codeaurora.org> AudioSystem: Fix race condition in accessing ioDescriptors

The vector mIoDescriptors can be simultaneouly modified
and accessed by 2 threads. Acquire a lock while wrapping
the ioDescriptor in a sp<>

Bug: 24576810

Author: Haynes Mathew George <hgeorge@codeaurora.org>

Change-Id: I73c79ef8eca092b500a7ead3a5ebd0bcf75f9920
udioSystem.cpp
8dde7269a5356503d2b283234b6cb46d0c3f214e 28-Sep-2015 Wei Jia <wjia@google.com> OMX: allow only secure codec to remotely call allocateBuffer.

Bug: 24310423
Change-Id: Iebcfc58b447f925ec2134898060af2ef227266a3
OMX.cpp
49fdeaff2f4c1405738320b7c3a540b528457e1b 29-Sep-2015 Praveen Chavan <pchavan@codeaurora.org> AudioSystem: Fix race condition in accessing ioDescriptors

The vector mIoDescriptors can be simultaneouly modified
and accessed by 2 threads. Acquire a lock while wrapping
the ioDescriptor in a sp<>

Bug: 24576810

Author: Haynes Mathew George <hgeorge@codeaurora.org>

Change-Id: I73c79ef8eca092b500a7ead3a5ebd0bcf75f9920
udioSystem.cpp
c9cac3d2859a19e241575abfb6386cd8bd9f2c97 29-Sep-2015 Dan Austin <danielaustin@google.com> am bb9a36c2: am 54b3c3c7: am 6c4cf7fb: Merge "Fix benign overflow in AudioTrack"

* commit 'bb9a36c24160e131db786d69dc4a794706708209':
Fix benign overflow in AudioTrack
bb9a36c24160e131db786d69dc4a794706708209 29-Sep-2015 Dan Austin <danielaustin@google.com> am 54b3c3c7: am 6c4cf7fb: Merge "Fix benign overflow in AudioTrack"

* commit '54b3c3c7acf18226f6abf788a220837bc5737677':
Fix benign overflow in AudioTrack
f2e4565c5f216d38bca20fcd3323deda3f6d3ac6 29-Sep-2015 Dan Austin <danielaustin@google.com> am 9977b476: am b7132738: am 7f4d4fc8: Merge "Fix benign overflow in ToneGenerator.cpp"

* commit '9977b476093bdfe4fdd2e11855ebf1079af12bea':
Fix benign overflow in ToneGenerator.cpp
54b3c3c7acf18226f6abf788a220837bc5737677 29-Sep-2015 Dan Austin <danielaustin@google.com> am 6c4cf7fb: Merge "Fix benign overflow in AudioTrack"

* commit '6c4cf7fb4c8a48450f8290380710ddeb6a8cc625':
Fix benign overflow in AudioTrack
9977b476093bdfe4fdd2e11855ebf1079af12bea 29-Sep-2015 Dan Austin <danielaustin@google.com> am b7132738: am 7f4d4fc8: Merge "Fix benign overflow in ToneGenerator.cpp"

* commit 'b7132738e2e980f29fe67e863ac6b5488c0922b3':
Fix benign overflow in ToneGenerator.cpp
b7132738e2e980f29fe67e863ac6b5488c0922b3 29-Sep-2015 Dan Austin <danielaustin@google.com> am 7f4d4fc8: Merge "Fix benign overflow in ToneGenerator.cpp"

* commit '7f4d4fc853f03a8d2265d2b851736eb917e82730':
Fix benign overflow in ToneGenerator.cpp
039c27aeaee809182fc1491311ca6dcbc1ec441b 24-Sep-2015 Chad Brubaker <cbrubaker@google.com> Fix benign overflow in AudioTrack

two uint32_t's were being used in a computation that could be negative,
cast to int32_t before the subtraction to prevent incorrect overflow
detection.

Change-Id: I33c5ef79a0ebbba055daa0ea041b42229d0c3152
udioTrack.cpp
6f5a43f495b7d633c21ca4eb74956b71658c0c5d 24-Sep-2015 Chad Brubaker <cbrubaker@google.com> Fix benign overflow in ToneGenerator.cpp

while (count--) causes an unsigned overflow when count = 0, refactor the
condition to avoid this.

Change-Id: I91a8c93e6be715d80070a4c94c1de712cb659265
oneGenerator.cpp
3c98fa4ff6e05cf69a150d4f5378ce7a9c922894 24-Sep-2015 Chad Brubaker <cbrubaker@google.com> am 45fc581c: am 9664e182: resolved conflicts for a17b1999 to stage-aosp-master

* commit '45fc581c209b93362805eb89a5f2b7935c21f167':
Revert "Enable integer overflow detection in libmedia"
45fc581c209b93362805eb89a5f2b7935c21f167 24-Sep-2015 Chad Brubaker <cbrubaker@google.com> am 9664e182: resolved conflicts for a17b1999 to stage-aosp-master

* commit '9664e182e53669406960f9101972b4a85acd7e8f':
Revert "Enable integer overflow detection in libmedia"
9664e182e53669406960f9101972b4a85acd7e8f 24-Sep-2015 Chad Brubaker <cbrubaker@google.com> resolved conflicts for a17b1999 to stage-aosp-master

Change-Id: I7b2077a36e76592dbd96c6a944b518ee64428b7d
0c27d279a1a99d175b84cc530ce2bfb0665b308b 24-Sep-2015 Chad Brubaker <cbrubaker@google.com> Fix benign overflow in AudioTrackShared

Bug: 24340611
Change-Id: Idc1e6ae09839475379bf0ab27943ae2de6f80bfa
udioTrackShared.cpp
82352e71ffd48c7c06e9f9753faa71773f766f54 24-Sep-2015 Chad Brubaker <cbrubaker@google.com> Revert "Enable integer overflow detection in libmedia"

This reverts commit 0d9f5a1243616da9d2de49753b37957920a50812.

Change-Id: Icb109278a3dee37f66f1e022082a037c7d0a3b08
ndroid.mk
90d3badac2c0ee560ec09b363b2ce7f67f543de5 23-Sep-2015 Chad Brubaker <cbrubaker@google.com> am f00666b9: am e9fa23fe: resolved conflicts for 1f8749f2 to stage-aosp-master

* commit 'f00666b9a52f0bd18b2a2cae006cb4fb91b2103d':
Enable integer overflow detection in libmedia
Fix benign overflow in ClientProxy::getMisalignment
Fix benign unsigned overflow in AudioTrack
f00666b9a52f0bd18b2a2cae006cb4fb91b2103d 23-Sep-2015 Chad Brubaker <cbrubaker@google.com> am e9fa23fe: resolved conflicts for 1f8749f2 to stage-aosp-master

* commit 'e9fa23fe940c287bf2f6e8b28f4cf9161818cb80':
Enable integer overflow detection in libmedia
Fix benign overflow in ClientProxy::getMisalignment
Fix benign unsigned overflow in AudioTrack
e9fa23fe940c287bf2f6e8b28f4cf9161818cb80 23-Sep-2015 Chad Brubaker <cbrubaker@google.com> resolved conflicts for 1f8749f2 to stage-aosp-master

Change-Id: Idda60a9d39f9be81e0c314f06fc080ad7fa35c7b
0d9f5a1243616da9d2de49753b37957920a50812 22-Sep-2015 Chad Brubaker <cbrubaker@google.com> Enable integer overflow detection in libmedia

Change-Id: I6b9963d0f1716282c91c95756d4f5c0b54d2cec5
ndroid.mk
65dda4f09425ad027e27a51a3108472448d3ab8b 23-Sep-2015 Chad Brubaker <cbrubaker@google.com> Fix benign overflow in ClientProxy::getMisalignment

Change-Id: Ia4537f5b7a8c21178368fa2303602399a3f8fc36
udioTrackShared.cpp
20b82e0cb5c615a4f88f245c12fec9ee0ec49894 22-Sep-2015 Chad Brubaker <cbrubaker@google.com> Fix benign unsigned overflow in AudioTrack

An unsigned overflow could occur in timestamp computation when
mTimestamp < mServer.

Change-Id: I9e01897478a6d481dd6fb7303d325617466497cf
udioTrack.cpp
4487514203235b7def755fdefde7c9c8d4b89006 21-Sep-2015 Wei Jia <wjia@google.com> am 9b9612fb: am 92504274: am 7e1d645f: am a8f90d57: Merge "IAudioFlinger: fix the missing initialization of variable to ensure no info leak when writing them to Parcel." into lmp-dev

* commit '9b9612fbea5b73779d128cef45b4c08446bf6341':
IAudioFlinger: fix the missing initialization of variable to ensure no info leak when writing them to Parcel.
c4f7e92b19375fc53cfe24efb5e4127aca45f895 21-Sep-2015 Jeff Tinker <jtinker@google.com> am 69c8327b: am 9dcb4c63: am 4ae700d2: am 160ed868: Merge "DO NOT MERGE Fix vulnerability in mediaserver" into lmp-dev

* commit '69c8327b741844072948831162e94a52a34152f1':
DO NOT MERGE Fix vulnerability in mediaserver
faced8cd5f11954bf564ee19503bfbdced415a77 21-Sep-2015 Jeff Tinker <jtinker@google.com> am 813c5022: am 1ac11129: am d83f2255: am 99e63e75: Merge "Fix for security vulnerability in media server DO NOT MERGE" into lmp-dev

* commit '813c50220fe45665cd5ec91e33e229b02d61674f':
Fix for security vulnerability in media server DO NOT MERGE
81851d191256b76441d94a23f765326906e691ad 21-Sep-2015 Wei Jia <wjia@google.com> am fe096002: am dae1d8dd: am 5d76aca5: am 21fda3ed: Merge "DO NOT MERGE - IAudioFlinger: always initialize variables to ensure no info leak when writing them to Parcel." into lmp-dev

* commit 'fe0960023b5e24cfe233420eb78be20969a782f1':
DO NOT MERGE - IAudioFlinger: always initialize variables to ensure no info leak when writing them to Parcel.
925042742d4ebc69fa2bd7829e80e2ec306b87f3 21-Sep-2015 Wei Jia <wjia@google.com> am 7e1d645f: am a8f90d57: Merge "IAudioFlinger: fix the missing initialization of variable to ensure no info leak when writing them to Parcel." into lmp-dev

* commit '7e1d645f6822dc015bd828c12db63359517cc362':
IAudioFlinger: fix the missing initialization of variable to ensure no info leak when writing them to Parcel.
9dcb4c63c6b8876a28eab3774ac92cc5e3af13c7 21-Sep-2015 Jeff Tinker <jtinker@google.com> am 4ae700d2: am 160ed868: Merge "DO NOT MERGE Fix vulnerability in mediaserver" into lmp-dev

* commit '4ae700d2bd467f18e5de8b5d1579d7e20da88e36':
DO NOT MERGE Fix vulnerability in mediaserver
1ac11129220c71a208da4b4339ac6131132a7bd8 21-Sep-2015 Jeff Tinker <jtinker@google.com> am d83f2255: am 99e63e75: Merge "Fix for security vulnerability in media server DO NOT MERGE" into lmp-dev

* commit 'd83f22552372edfe67473c29a370e0a025a91f21':
Fix for security vulnerability in media server DO NOT MERGE
dae1d8ddfca7ca8cb3134116280c3a0c0dc1b2bf 21-Sep-2015 Wei Jia <wjia@google.com> am 5d76aca5: am 21fda3ed: Merge "DO NOT MERGE - IAudioFlinger: always initialize variables to ensure no info leak when writing them to Parcel." into lmp-dev

* commit '5d76aca578a0af0aaebb8eb8ce7cbf2bae4600e6':
DO NOT MERGE - IAudioFlinger: always initialize variables to ensure no info leak when writing them to Parcel.
a8f90d57f5b3ad4ef7194501aa20f0a0bd903e8f 17-Sep-2015 Wei Jia <wjia@google.com> Merge "IAudioFlinger: fix the missing initialization of variable to ensure no info leak when writing them to Parcel." into lmp-dev
bc2777d5bed4f0034c9b1c7e08504f38621a976f 17-Sep-2015 Wei Jia <wjia@google.com> am 4fd09901: am 345a74e2: am e10a198a: am 190eca5a: Merge "IAudioFlinger: fix the missing initialization of variable to ensure no info leak when writing them to Parcel." into mnc-dev

* commit '4fd099019b45f34db3be9f2ee71bd1f7c337a1dc':
IAudioFlinger: fix the missing initialization of variable to ensure no info leak when writing them to Parcel.
0b073e9c7ad3f5aa160f41d329325a8c747cf0a2 17-Sep-2015 Jeff Tinker <jtinker@google.com> am 18bc51f7: am 75f0b792: am dffe5cdb: Merge "DO NOT MERGE Fix vulnerability in mediaserver" into mnc-dev

* commit '18bc51f7a9694f91fa8030a76ce4345357406b07':
DO NOT MERGE Fix vulnerability in mediaserver
4554ffd7a1c4bc6973c11c00f5a19aa260e18100 17-Sep-2015 Jeff Tinker <jtinker@google.com> am 6272fa1b: Merge "DO NOT MERGE Fix vulnerability in mediaserver" into klp-dev

* commit '6272fa1baf361a6a89607243638cc592047947b3':
DO NOT MERGE Fix vulnerability in mediaserver
52b829cbc2cb947733f312211a007ecd2f9fe96b 17-Sep-2015 Jeff Tinker <jtinker@google.com> am f43125ed: Merge "Fix for security vulnerability in media server DO NOT MERGE" into klp-dev

* commit 'f43125ed08a408b02613b99f058564d97ce690cc':
Fix for security vulnerability in media server DO NOT MERGE
dffe5cdb436987a65a9010460979507c06b5c904 17-Sep-2015 Jeff Tinker <jtinker@google.com> Merge "DO NOT MERGE Fix vulnerability in mediaserver" into mnc-dev
160ed868d6beb0d55dc2194564d2f08cc9d6fbc2 17-Sep-2015 Jeff Tinker <jtinker@google.com> Merge "DO NOT MERGE Fix vulnerability in mediaserver" into lmp-dev
6272fa1baf361a6a89607243638cc592047947b3 17-Sep-2015 Jeff Tinker <jtinker@google.com> Merge "DO NOT MERGE Fix vulnerability in mediaserver" into klp-dev
99e63e75b670aeca1b4af401cb9582ba9fddf64d 17-Sep-2015 Jeff Tinker <jtinker@google.com> Merge "Fix for security vulnerability in media server DO NOT MERGE" into lmp-dev
f43125ed08a408b02613b99f058564d97ce690cc 17-Sep-2015 Jeff Tinker <jtinker@google.com> Merge "Fix for security vulnerability in media server DO NOT MERGE" into klp-dev
40715a2ee896edd2df4023d9f6f586977887d34c 17-Sep-2015 Wei Jia <wjia@google.com> IAudioFlinger: fix the missing initialization of variable to ensure no info leak when writing them to Parcel.

Bug: 23953967
Change-Id: I3a1d0144ba3832649e322c197ff0f03305ee7829
(cherry picked from commit 4cac44b53cc9f965cc2c9706b1d7ee2cd79f4066)
AudioFlinger.cpp
4fd099019b45f34db3be9f2ee71bd1f7c337a1dc 17-Sep-2015 Wei Jia <wjia@google.com> am 345a74e2: am e10a198a: am 190eca5a: Merge "IAudioFlinger: fix the missing initialization of variable to ensure no info leak when writing them to Parcel." into mnc-dev

* commit '345a74e25aa618d2aec6f839e2a03b566d086c4a':
IAudioFlinger: fix the missing initialization of variable to ensure no info leak when writing them to Parcel.
190786d3590c6b064a7d32eaa92f4a7b11cf16d5 17-Sep-2015 Wei Jia <wjia@google.com> am ae922517: Merge "DO NOT MERGE - IAudioFlinger: always initialize variables to ensure no info leak when writing them to Parcel." into klp-dev

* commit 'ae92251730865e0c4bc59ef2a8fe9dacb6de41b9':
DO NOT MERGE - IAudioFlinger: always initialize variables to ensure no info leak when writing them to Parcel.
095641dfa56913a6c28b2ca414315b094a254b1c 17-Sep-2015 Wei Jia <wjia@google.com> am 0518125e: am e1289226: am dc81adaa: am c191482e: Merge "DO NOT MERGE - IAudioFlinger: clear config before reading it from parcel." into lmp-dev

* commit '0518125e9cb6aed25258fff1aafa156ed90d0826':
DO NOT MERGE - IAudioFlinger: clear config before reading it from parcel.
e1289226b73f4d4e209dbdb092261cc1f11167d0 17-Sep-2015 Wei Jia <wjia@google.com> am dc81adaa: am c191482e: Merge "DO NOT MERGE - IAudioFlinger: clear config before reading it from parcel." into lmp-dev

* commit 'dc81adaa803a0691e65d7fef2c629236e08b9959':
DO NOT MERGE - IAudioFlinger: clear config before reading it from parcel.
3fd87605288d6d8e5abebadbddfa6071387fecdd 16-Sep-2015 Jeff Tinker <jtinker@google.com> DO NOT MERGE Fix vulnerability in mediaserver

ICrypto.cpp: ASLR bypass using DECRYPT IPC

bug: 24074485
Change-Id: I61cd77f0894140547f666a80526ebfe1ec3d2db6
Crypto.cpp
4cac44b53cc9f965cc2c9706b1d7ee2cd79f4066 17-Sep-2015 Wei Jia <wjia@google.com> IAudioFlinger: fix the missing initialization of variable to ensure no info leak when writing them to Parcel.

Bug: 23953967
Change-Id: I3a1d0144ba3832649e322c197ff0f03305ee7829
AudioFlinger.cpp
e6fb82a207f5256933e2d83e77262331af50a27f 09-Sep-2015 Andy Hung <hunga@google.com> For static obtainBuffer(), do not set mUnreleased if acknowledging flush.

static audio tracks use obtainBuffer() to update position in start().

Bug: 22938515
Change-Id: I8ae32f6cce4d122386d2cf8982e158049b04ba9a
udioTrackShared.cpp
5e7e87a383fdb1fece977097a7e3cc51b296f3a0 16-Sep-2015 Jeff Tinker <jtinker@google.com> DO NOT MERGE Fix vulnerability in mediaserver

ICrypto.cpp: ASLR bypass using DECRYPT IPC

bug: 24074485
Change-Id: Ia12942d6b86adde28745908d36a728ab5d69a037
Crypto.cpp
636539eb1a0d407d7f82b7c9a6d9833f7715e287 16-Sep-2015 Jeff Tinker <jtinker@google.com> DO NOT MERGE Fix vulnerability in mediaserver

ICrypto.cpp: ASLR bypass using DECRYPT IPC

bug: 24074485
Change-Id: I40dd0e92083c7093030393b16dbab59323306a4e
Crypto.cpp
3b76870d146b1350db8a2f7797e06897c8c92dc2 10-Sep-2015 Wei Jia <wjia@google.com> DO NOT MERGE - IAudioFlinger: always initialize variables to ensure no info leak when writing them to Parcel.

Bug: 23953967
Change-Id: Ibbe841da149038675e9e8daea76c77558bc8564b
(cherry picked from commit 983dca391a76fb45df999fc40e8766b9ddb63511)
AudioFlinger.cpp
AudioPolicyService.cpp
8336fc433eee213e201c8a65bf2a65b65bc67c44 10-Sep-2015 Wei Jia <wjia@google.com> DO NOT MERGE - IAudioFlinger: always initialize variables to ensure no info leak when writing them to Parcel.

Bug: 23953967
Change-Id: Ibbe841da149038675e9e8daea76c77558bc8564b
(cherry picked from commit 983dca391a76fb45df999fc40e8766b9ddb63511)
AudioFlinger.cpp
d09f3e3fe886e0a5babc75f50212a4eb5d3b9594 16-Sep-2015 Wei Jia <wjia@google.com> am 40d6fb64: am 69c19abd: am da56cd3d: am bc0daa97: Merge "IAudioFlinger: always initialize variables to ensure no info leak when writing them to Parcel." into mnc-dev

* commit '40d6fb647647c29dfd12a5c78611eb22129490c3':
IAudioFlinger: always initialize variables to ensure no info leak when writing them to Parcel.
40d6fb647647c29dfd12a5c78611eb22129490c3 16-Sep-2015 Wei Jia <wjia@google.com> am 69c19abd: am da56cd3d: am bc0daa97: Merge "IAudioFlinger: always initialize variables to ensure no info leak when writing them to Parcel." into mnc-dev

* commit '69c19abd9a000f7b6ff87ad5c9d10651e071ed4d':
IAudioFlinger: always initialize variables to ensure no info leak when writing them to Parcel.
4b219e9e5ab237eec9931497cf10db4d78982d84 14-Sep-2015 Jeff Tinker <jtinker@google.com> Fix for security vulnerability in media server DO NOT MERGE

bug: 23540426
Change-Id: I7ca419e4008967a0387649e5293ac9d4be71d3c4
Crypto.cpp
9adc7283c84cea1be81d5bd55ce50aefa6328c6e 14-Sep-2015 Jeff Tinker <jtinker@google.com> Fix for security vulnerability in media server DO NOT MERGE

bug: 23540426
Change-Id: I5d602f99fd82e50d0136d47ce20cfa1ac9fd7ae2
Crypto.cpp
8cfd0ac4b05f3151f1083564f46f05b5f525af8a 11-Sep-2015 Wei Jia <wjia@google.com> am 741a3351: Merge "DO NOT MERGE - IAudioFlinger: clear config before reading it from parcel." into klp-dev

* commit '741a335126a562ae8f5883cc0b02ba72f40e56f3':
DO NOT MERGE - IAudioFlinger: clear config before reading it from parcel.
1c7719820359f4190cd4bfd1a24d521face7b4f8 09-Sep-2015 Wei Jia <wjia@google.com> DO NOT MERGE - IAudioFlinger: clear config before reading it from parcel.

Bug: 23905951
Bug: 23912202
Change-Id: Id13a9d3cae2c09e7381b841e67ddfb188274d74c
(cherry picked from commit e995e477ad59b79145200c8f1e9e13c16c682d59)
AudioFlinger.cpp
AudioPolicyService.cpp
5f2a76f02f6d88825f8c164b4d9f7f310583eee1 09-Sep-2015 Wei Jia <wjia@google.com> DO NOT MERGE - IAudioFlinger: clear config before reading it from parcel.

Bug: 23905951
Bug: 23912202
Change-Id: Id13a9d3cae2c09e7381b841e67ddfb188274d74c
(cherry picked from commit e995e477ad59b79145200c8f1e9e13c16c682d59)
AudioFlinger.cpp
983dca391a76fb45df999fc40e8766b9ddb63511 10-Sep-2015 Wei Jia <wjia@google.com> IAudioFlinger: always initialize variables to ensure no info leak when writing them to Parcel.

Bug: 23953967
Change-Id: Ibbe841da149038675e9e8daea76c77558bc8564b
AudioFlinger.cpp
AudioPolicyService.cpp
9d10e9de2ce3861a2517334ab9420a5e37f1c29e 10-Sep-2015 Wei Jia <wjia@google.com> am cadcb20d: am 776f0a22: am 0f050315: am 7a2ffb90: Merge "IAudioFlinger: clear config before reading it from parcel." into mnc-dev

* commit 'cadcb20d2d4040d46463d02131534502807b5b2a':
IAudioFlinger: clear config before reading it from parcel.
cadcb20d2d4040d46463d02131534502807b5b2a 10-Sep-2015 Wei Jia <wjia@google.com> am 776f0a22: am 0f050315: am 7a2ffb90: Merge "IAudioFlinger: clear config before reading it from parcel." into mnc-dev

* commit '776f0a224deecc8e5aa9f9a9955a965cec231778':
IAudioFlinger: clear config before reading it from parcel.
e995e477ad59b79145200c8f1e9e13c16c682d59 09-Sep-2015 Wei Jia <wjia@google.com> IAudioFlinger: clear config before reading it from parcel.

Bug: 23905951
Bug: 23912202
Change-Id: Id13a9d3cae2c09e7381b841e67ddfb188274d74c
AudioFlinger.cpp
AudioPolicyService.cpp
8585cd530259cadfaee5190cb02adca90ca4f568 07-Sep-2015 Robert Shih <robertshih@google.com> am 492b5831: am 8f1ee70c: am 35e03636: am becceb11: am b57ffbb5: am d021f7e5: am b18c0276: am 2b63b91b: am c1e989e7: am 13ff64c2: Merge "Zero out return values in media binder calls" into klp-dev

* commit '492b58312862e3663a1adbf4e91e40d0ae8d8d63':
Zero out return values in media binder calls
ecf9c9224cf4d9ea7fb285f7c9fd8eef7a96b34e 04-Sep-2015 Andy Hung <hunga@google.com> AudioTrack: Skip callback EVENT_STREAM_END on DEAD_OBJECT.

Send only EVENT_NEW_IAUDIOTRACK to initiate teardown.

Bug: 23750452
Change-Id: Ib5dcd578b5b6a6a1d91a03e58ef8da0acd994243
udioTrack.cpp
492b58312862e3663a1adbf4e91e40d0ae8d8d63 04-Sep-2015 Robert Shih <robertshih@google.com> am 8f1ee70c: am 35e03636: am becceb11: am b57ffbb5: am d021f7e5: am b18c0276: am 2b63b91b: am c1e989e7: am 13ff64c2: Merge "Zero out return values in media binder calls" into klp-dev

* commit '8f1ee70c56aad841e4b9b569243d830ece04fdfe':
Zero out return values in media binder calls
f0a1b7f0a5b293cbe1326bdfc29d0f778a5e4b9e 04-Sep-2015 Andy Hung <hunga@google.com> am 264663c4: am 7ecf6369: am 7734e37e: am a1179678: am be695f0a: am 5e193041: am 52a4fc09: am 3732a3ac: am ab203130: Merge "Make IEffect command more robust (second try)" into klp-dev

* commit '264663c4ea0467acc0192997bceb83efd5526756':
Make IEffect command more robust (second try)
35e03636d6fa0c7c33c67e10686657849a61aff8 04-Sep-2015 Robert Shih <robertshih@google.com> am becceb11: am b57ffbb5: am d021f7e5: am b18c0276: am 2b63b91b: am c1e989e7: am 13ff64c2: Merge "Zero out return values in media binder calls" into klp-dev

* commit 'becceb1136e7eb01db7dd865cb98a57117212879':
Zero out return values in media binder calls
7ecf636997b812ff5ae87ea9e146707d37d1b78a 04-Sep-2015 Andy Hung <hunga@google.com> am 7734e37e: am a1179678: am be695f0a: am 5e193041: am 52a4fc09: am 3732a3ac: am ab203130: Merge "Make IEffect command more robust (second try)" into klp-dev

* commit '7734e37efe4ad47d91cdc5cfa6703d77a7a2ac0c':
Make IEffect command more robust (second try)
becceb1136e7eb01db7dd865cb98a57117212879 04-Sep-2015 Robert Shih <robertshih@google.com> am b57ffbb5: am d021f7e5: am b18c0276: am 2b63b91b: am c1e989e7: am 13ff64c2: Merge "Zero out return values in media binder calls" into klp-dev

* commit 'b57ffbb5486a58e0dbb03466e9f3a5e51d6cf0f3':
Zero out return values in media binder calls
7734e37efe4ad47d91cdc5cfa6703d77a7a2ac0c 04-Sep-2015 Andy Hung <hunga@google.com> am a1179678: am be695f0a: am 5e193041: am 52a4fc09: am 3732a3ac: am ab203130: Merge "Make IEffect command more robust (second try)" into klp-dev

* commit 'a1179678752e5755297a2bb66c730f4fd22856e3':
Make IEffect command more robust (second try)
d021f7e5686074771981a6386b59e803160a1073 04-Sep-2015 Robert Shih <robertshih@google.com> am b18c0276: am 2b63b91b: am c1e989e7: am 13ff64c2: Merge "Zero out return values in media binder calls" into klp-dev

* commit 'b18c02761fe357599f9dad17355e38ec1d3226f2':
Zero out return values in media binder calls
be695f0aa9b8fb3a2dc7983db71a1a78b1268b4b 04-Sep-2015 Andy Hung <hunga@google.com> am 5e193041: am 52a4fc09: am 3732a3ac: am ab203130: Merge "Make IEffect command more robust (second try)" into klp-dev

* commit '5e193041ab8a541b478dd1b61c8c8cd24bca2ab5':
Make IEffect command more robust (second try)
737b13bb86e45ada47140ae56aa8c804ea6a0bcc 03-Sep-2015 Robert Shih <robertshih@google.com> am abd74de6: am 3ca51aa9: am e6eeff25: am 4abb48c3: am 898e8575: am 72b0abdf: Merge "Zero out return values in audio binder calls" into lmp-mr1-dev

* commit 'abd74de663a9d211e94a426a9f3e40cdac39fb74':
Zero out return values in audio binder calls
abd74de663a9d211e94a426a9f3e40cdac39fb74 03-Sep-2015 Robert Shih <robertshih@google.com> am 3ca51aa9: am e6eeff25: am 4abb48c3: am 898e8575: am 72b0abdf: Merge "Zero out return values in audio binder calls" into lmp-mr1-dev

* commit '3ca51aa9c8eb670b3b93ab37350fa4e0a0397bd6':
Zero out return values in audio binder calls
2b63b91b84c75afdef4213aa11b0dcc8e7d735a3 03-Sep-2015 Robert Shih <robertshih@google.com> am c1e989e7: am 13ff64c2: Merge "Zero out return values in media binder calls" into klp-dev

* commit 'c1e989e76a461ea69e293839b3c29b634a462bd5':
Zero out return values in media binder calls
52a4fc09b483a20ee7d5970be01598ee262f7088 03-Sep-2015 Andy Hung <hunga@google.com> am 3732a3ac: am ab203130: Merge "Make IEffect command more robust (second try)" into klp-dev

* commit '3732a3acafa7eb621bc26cca3eb00150ea12d2e2':
Make IEffect command more robust (second try)
e6eeff25562cecb668110b446d6114098e27370d 03-Sep-2015 Robert Shih <robertshih@google.com> am 4abb48c3: am 898e8575: am 72b0abdf: Merge "Zero out return values in audio binder calls" into lmp-mr1-dev

* commit '4abb48c30cd7821f3397ccd7de8deb3eb645b385':
Zero out return values in audio binder calls
c1e989e76a461ea69e293839b3c29b634a462bd5 03-Sep-2015 Robert Shih <robertshih@google.com> am 13ff64c2: Merge "Zero out return values in media binder calls" into klp-dev

* commit '13ff64c2db84f4e7cac3396700e333b48c42c7ee':
Zero out return values in media binder calls
3732a3acafa7eb621bc26cca3eb00150ea12d2e2 03-Sep-2015 Andy Hung <hunga@google.com> am ab203130: Merge "Make IEffect command more robust (second try)" into klp-dev

* commit 'ab20313074bb109f29f677c3f09d5da1a48c94e7':
Make IEffect command more robust (second try)
4abb48c30cd7821f3397ccd7de8deb3eb645b385 03-Sep-2015 Robert Shih <robertshih@google.com> am 898e8575: am 72b0abdf: Merge "Zero out return values in audio binder calls" into lmp-mr1-dev

* commit '898e857594b738f88be4de5addc8ca296dfabd74':
Zero out return values in audio binder calls
13ff64c2db84f4e7cac3396700e333b48c42c7ee 03-Sep-2015 Robert Shih <robertshih@google.com> Merge "Zero out return values in media binder calls" into klp-dev
a946d844a77906072f5eb7093d41db465d6514bb 03-Sep-2015 Robert Shih <robertshih@google.com> Zero out return values in audio binder calls

More specifically when handling GET_OUTPUT_FOR_ATTR in IAudioPolicyService.
This prevents leaking a uninitialized `output` across binder if
getOutputForAttr were to encounter errors.

Bug: 23756261
Change-Id: Ibff8a1249a4e8a3c89a33a540dda428b10d6ca82
AudioPolicyService.cpp
892354335d49f0b9fcd10e20e0c13e3cd0f1f1cb 03-Sep-2015 Robert Shih <robertshih@google.com> Zero out return values in media binder calls

More specifically when handling:
* GET_STREAM_VOLUME in IAudioPolicyService, and
* GET_CURRENT_POSITION and GET_DURATION in IMediaPlayer

This prevents leaking uninitialized values across binder in error cases.

Bug: 23756261
Change-Id: I0ffd900ab12b685b0611259ade4a3efb1ec5defe
AudioPolicyService.cpp
MediaPlayer.cpp
9f43984d7519be4efd80c6d72bab366aa7272547 03-Sep-2015 Marco Nelissen <marcone@google.com> Merge "Remove unused code"
e096621f94f708b8634ad76333e6ac1882b46328 02-Sep-2015 Marco Nelissen <marcone@google.com> Remove unused code

Change-Id: Ib4f194a1180b832ad39d9ded0962184e6daf5e29
ediaplayer.cpp
25a634427dec455b79d73562131985ae85b98c43 01-Sep-2015 Andy Hung <hunga@google.com> Make IEffect command more robust (second try)

Bug: 23540907
Change-Id: If30cfa535ad51521053706fc40fc98d893db5bc7
(cherry picked from commit 10e6660cc5da65b027c90489ba7ac55d1504e012)
Effect.cpp
10e6660cc5da65b027c90489ba7ac55d1504e012 01-Sep-2015 Andy Hung <hunga@google.com> Make IEffect command more robust (second try)

See reverted commit 320bd569a2fdccdd3b345b7b937277ff3a34b048.

Change-Id: If30cfa535ad51521053706fc40fc98d893db5bc7
Effect.cpp
3f335768b0c353c8c665e1250a4707974a666f97 01-Sep-2015 Andy Hung <hunga@google.com> Merge "Revert "Make IEffect command more robust""
320bd569a2fdccdd3b345b7b937277ff3a34b048 01-Sep-2015 Andy Hung <hunga@google.com> Revert "Make IEffect command more robust"

This reverts commit 38b211b610d9099c8b36464e794992cd3dd39230.

Change-Id: I5ba4d78ef761d708c8050b95974ddb77b201bb2e
Effect.cpp
66918da927b5905e35d3c717a4f60058e79bbea2 01-Sep-2015 Andy Hung <hunga@google.com> Merge "Make IEffect command more robust"
480990699cd571e475788bfba8ef86bd0bfb96ad 29-Aug-2015 Jeff Tinker <jtinker@google.com> am 3b863069: am 389e7653: Merge "Fix for security vulnerability in media server" into mnc-dev

* commit '3b86306943e199e000302eec1902fc51be2e0637':
Fix for security vulnerability in media server
389e765394a950b9697bba49c1998f2029bd58b4 29-Aug-2015 Jeff Tinker <jtinker@google.com> Merge "Fix for security vulnerability in media server" into mnc-dev
dbf995cecdbfcb74437cf2b6b123b10821371f82 28-Aug-2015 Andy Hung <hunga@google.com> am 6b203f06: am 66b24004: am 0ea9e276: am 184ad88d: am fba72ab0: am f394f121: Merge "libmedia: clear reply data for IEffect command" into klp-dev

* commit '6b203f06b969ba92181dbf781544b40cc2c41b7c':
libmedia: clear reply data for IEffect command
66b24004345ff8a688e8548409b0b7d5a8902232 28-Aug-2015 Andy Hung <hunga@google.com> am 0ea9e276: am 184ad88d: am fba72ab0: am f394f121: Merge "libmedia: clear reply data for IEffect command" into klp-dev

* commit '0ea9e2761a04c4f592d854dbde2749395735fe56':
libmedia: clear reply data for IEffect command
184ad88ddd6bbdf01e131e8e5b75bef5be67b29b 28-Aug-2015 Andy Hung <hunga@google.com> am fba72ab0: am f394f121: Merge "libmedia: clear reply data for IEffect command" into klp-dev

* commit 'fba72ab0fcf7298492dcd9e3045913435d30d3a9':
libmedia: clear reply data for IEffect command
fba72ab0fcf7298492dcd9e3045913435d30d3a9 28-Aug-2015 Andy Hung <hunga@google.com> am f394f121: Merge "libmedia: clear reply data for IEffect command" into klp-dev

* commit 'f394f12167fddbc755855d06b615509517c99f14':
libmedia: clear reply data for IEffect command
f394f12167fddbc755855d06b615509517c99f14 28-Aug-2015 Andy Hung <hunga@google.com> Merge "libmedia: clear reply data for IEffect command" into klp-dev
38b211b610d9099c8b36464e794992cd3dd39230 27-Aug-2015 Andy Hung <hunga@google.com> Make IEffect command more robust

Bug: 23540907
Change-Id: Icee277e56b54ce0eb7ecb0a0bdb203f59b363dd5
Effect.cpp
57061f04534c5653195a76068f00fa5bc32f1bd5 28-Aug-2015 Nick Kralevich <nnk@google.com> am ec58b2fd: am 03dee050: am 608c349d: am 4e861bf5: am e1dc15ec: am 762c7139: am b04cfdf5: am d437c777: am 0981df6e: IMediaPlayer.cpp: make sure structures are initialized to 0

* commit 'ec58b2fdbbcaaf2494bcde990cee81f9de8e24bb':
IMediaPlayer.cpp: make sure structures are initialized to 0
83581c86941bc4b71d25b3a7f81f263571284a0d 28-Aug-2015 Andy Hung <hunga@google.com> am 4a3426f9: am 8a596555: am d0b5910f: libmedia: clear reply data for IEffect command

* commit '4a3426f9a57cba7ef064e6657a5e9133fe9cf511':
libmedia: clear reply data for IEffect command
4a3426f9a57cba7ef064e6657a5e9133fe9cf511 28-Aug-2015 Andy Hung <hunga@google.com> am 8a596555: am d0b5910f: libmedia: clear reply data for IEffect command

* commit '8a596555249b1513852478bdc9bfabea1e696ade':
libmedia: clear reply data for IEffect command
03dee05039103fbc983ddc9f728f1fa974d0a5a5 28-Aug-2015 Nick Kralevich <nnk@google.com> am 608c349d: am 4e861bf5: am e1dc15ec: am 762c7139: am b04cfdf5: am d437c777: am 0981df6e: IMediaPlayer.cpp: make sure structures are initialized to 0

* commit '608c349d611e03e0143c23c3f77ddc62b137e354':
IMediaPlayer.cpp: make sure structures are initialized to 0
c6fc6a3ca618b0e72ee565ded2e4960797f53fa6 27-Aug-2015 Jeff Tinker <jtinker@google.com> Fix for security vulnerability in media server

bug: 23540426
Change-Id: Ifb12ac3350410a49ba7d81d1bde12822c3008cd5
Crypto.cpp
608c349d611e03e0143c23c3f77ddc62b137e354 28-Aug-2015 Nick Kralevich <nnk@google.com> am 4e861bf5: am e1dc15ec: am 762c7139: am b04cfdf5: am d437c777: am 0981df6e: IMediaPlayer.cpp: make sure structures are initialized to 0

* commit '4e861bf5d43eae00ae4cb8727c5a408c3728288b':
IMediaPlayer.cpp: make sure structures are initialized to 0
e1dc15ecfaa5bbbda28647749bad51e6d18d0c79 28-Aug-2015 Nick Kralevich <nnk@google.com> am 762c7139: am b04cfdf5: am d437c777: am 0981df6e: IMediaPlayer.cpp: make sure structures are initialized to 0

* commit '762c713900bd764570c8fda4e238497200da66d6':
IMediaPlayer.cpp: make sure structures are initialized to 0
b04cfdf51746dea51d2bb2f56fe9ef789fd30bd9 27-Aug-2015 Nick Kralevich <nnk@google.com> am d437c777: am 0981df6e: IMediaPlayer.cpp: make sure structures are initialized to 0

* commit 'd437c77716fcf454d99b8424bb01f37643b970cc':
IMediaPlayer.cpp: make sure structures are initialized to 0
d437c77716fcf454d99b8424bb01f37643b970cc 27-Aug-2015 Nick Kralevich <nnk@google.com> am 0981df6e: IMediaPlayer.cpp: make sure structures are initialized to 0

* commit '0981df6e3db106bfb7a56a2b668c012fcc34dd2c':
IMediaPlayer.cpp: make sure structures are initialized to 0
0981df6e3db106bfb7a56a2b668c012fcc34dd2c 20-Aug-2015 Nick Kralevich <nnk@google.com> IMediaPlayer.cpp: make sure structures are initialized to 0

Credit https://code.google.com/p/android/issues/detail?id=183310

Bug: 23515142
Change-Id: Idbd66fb148bd0ac1dd78f8651d0164f2a41e2427
(cherry picked from commit b73b826cc16291b33649402497efbe0f946413bd)
MediaPlayer.cpp
57bed83a539535bb64a33722fb67231119cb0618 27-Aug-2015 Andy Hung <hunga@google.com> libmedia: clear reply data for IEffect command

Bug: 23540907
Change-Id: Ib89afc6b273b0eb310bbc5a1bd92b1e3d407c249
Effect.cpp
d0b5910f78b45ce98511d31ec327ccaafe127f3f 27-Aug-2015 Andy Hung <hunga@google.com> libmedia: clear reply data for IEffect command

Bug: 23540907
Change-Id: Ib89afc6b273b0eb310bbc5a1bd92b1e3d407c249
Effect.cpp
ca095ac251ad02ad745d763f37ec3fcc5a8aa2ea 21-Aug-2015 Jeff Tinker <jtinker@google.com> am 8de6d690: Fix build break DO NOT MERGE

* commit '8de6d690ae5843bd8e005deedea571596f79bbd3':
Fix build break DO NOT MERGE
8de6d690ae5843bd8e005deedea571596f79bbd3 21-Aug-2015 Jeff Tinker <jtinker@google.com> Fix build break DO NOT MERGE

related-to-bug: 23223325

Change-Id: I7b09712b5f18912abddd50b75f6edaf860e894c1
Crypto.cpp
ff8a70733fdf9311bfdc3ef78e8455ced74d685f 21-Aug-2015 Nick Kralevich <nnk@google.com> Merge "IMediaPlayer.cpp: make sure structures are initialized to 0"
b512e0a3697ccaaf4687867fe0aee8d3dbb7003c 21-Aug-2015 Abhishek Arya <aarya@google.com> am 0ea1da27: am 5f126c0d: am e93a33a8: am 8cc71bc8: Merge "DO NOT MERGE Part of fix for libmedia OOB write anywhere" into lmp-dev

* commit '0ea1da27437575f6b075860fa858a257c806d5ef':
DO NOT MERGE Part of fix for libmedia OOB write anywhere
fd1d6df52f4c33f59d44abdbcdd0ec5b9a20f059 21-Aug-2015 Jeff Tinker <jtinker@google.com> am c2153d0d: DO NOT MERGE Part of fix for libmedia OOB write anywhere

* commit 'c2153d0dc800d0718788dccd0f2a2d29f4647c03':
DO NOT MERGE Part of fix for libmedia OOB write anywhere
5f126c0d09b55817d1f94b3845a3c220981a622d 21-Aug-2015 Abhishek Arya <aarya@google.com> am e93a33a8: am 8cc71bc8: Merge "DO NOT MERGE Part of fix for libmedia OOB write anywhere" into lmp-dev

* commit 'e93a33a8f2706d3918634d17c33491f69060a62c':
DO NOT MERGE Part of fix for libmedia OOB write anywhere
c2153d0dc800d0718788dccd0f2a2d29f4647c03 18-Aug-2015 Jeff Tinker <jtinker@google.com> DO NOT MERGE Part of fix for libmedia OOB write anywhere

Clarify that decrypt destination is not a pointer for
secure case.

b/23223325

Change-Id: I642dcf790a9eb9e32175f3e0d8f040c82228e3ac
(cherry picked from commit ed555d70d80964f40563d89a4e6d6a80f83f4b89)
Crypto.cpp
aa4da6fa7ca2454f0713de0a5a583b5b8160166b 18-Aug-2015 Jeff Tinker <jtinker@google.com> DO NOT MERGE Part of fix for libmedia OOB write anywhere

Clarify that decrypt destination is not a pointer for
secure case.

b/23223325

Change-Id: I642dcf790a9eb9e32175f3e0d8f040c82228e3ac
(cherry picked from commit ed555d70d80964f40563d89a4e6d6a80f83f4b89)
Crypto.cpp
b73b826cc16291b33649402497efbe0f946413bd 20-Aug-2015 Nick Kralevich <nnk@google.com> IMediaPlayer.cpp: make sure structures are initialized to 0

Credit https://code.google.com/p/android/issues/detail?id=183310

Change-Id: Idbd66fb148bd0ac1dd78f8651d0164f2a41e2427
MediaPlayer.cpp
6e85923d212cacf8a3616164ab6f32f8da26b5ce 20-Aug-2015 Jeff Tinker <jtinker@google.com> am e2abaffe: am 3cef9257: Merge "Part of fix for libmedia OOB write anywhere" into mnc-dev

* commit 'e2abaffefc0170f36d27b171fa8af0fd290fb794':
Part of fix for libmedia OOB write anywhere
7af849763a65f5e9a9adac767328d20811163cd0 20-Aug-2015 Jeff Tinker <jtinker@google.com> am 3cef9257: Merge "Part of fix for libmedia OOB write anywhere" into mnc-dev

* commit '3cef9257c9ed5ffaa507f8c27bfcae19cc6b96bd':
Part of fix for libmedia OOB write anywhere
3cef9257c9ed5ffaa507f8c27bfcae19cc6b96bd 20-Aug-2015 Jeff Tinker <jtinker@google.com> Merge "Part of fix for libmedia OOB write anywhere" into mnc-dev
6ee9b57b06a40e2490911cd390e8528eda0b21c5 18-Aug-2015 Eric Laurent <elaurent@google.com> am dd6a1764: am c08872f9: Merge "NuPlayerRenderer: handle error when resuming an offloaded track" into mnc-dev

* commit 'dd6a17649106fd48b0e69703d339bbc5a1ae9a0b':
NuPlayerRenderer: handle error when resuming an offloaded track
7a64655ba604993a6724b4a8ab09ed743bc40ec8 18-Aug-2015 Eric Laurent <elaurent@google.com> am c08872f9: Merge "NuPlayerRenderer: handle error when resuming an offloaded track" into mnc-dev

* commit 'c08872f977fc52c015cc17438dd3bd7981dfc0dc':
NuPlayerRenderer: handle error when resuming an offloaded track
ed555d70d80964f40563d89a4e6d6a80f83f4b89 18-Aug-2015 Jeff Tinker <jtinker@google.com> Part of fix for libmedia OOB write anywhere

Clarify that decrypt destination is not a pointer for
secure case.

b/23223325

Change-Id: I642dcf790a9eb9e32175f3e0d8f040c82228e3ac
Crypto.cpp
b9b2eee2e2457d57d97a74bf34285842477382f5 14-Aug-2015 Eric Laurent <elaurent@google.com> am f311db04: am 2517d62a: Merge "DO NOT MERGE - IAudioFlinger: add checks on binder calls" into lmp-mr1-dev

* commit 'f311db04e72f66cb5b31d44e8780a1fcb88b3cdd':
DO NOT MERGE - IAudioFlinger: add checks on binder calls
2517d62a1c888332e7407295f935c4a55361db3a 14-Aug-2015 Eric Laurent <elaurent@google.com> Merge "DO NOT MERGE - IAudioFlinger: add checks on binder calls" into lmp-mr1-dev
e4ac35fa524b011f272d396b2c12515382bddb94 02-Apr-2015 Eric Laurent <elaurent@google.com> DO NOT MERGE - IAudioFlinger: add checks on binder calls

Limit number of ports and patches listed by
LIST_AUDIO_PATCHES and LIST_AUDIO_PORTS.

Also fix typo causing wrong pointer to be used when writing to Parcel.

Bug: 19573085.
Change-Id: I41a9c710e45738a4f11990160587856c429a4646
(cherry picked from commit f75c2fef14354024ec27bff1444f9e50b5ef55a9)
AudioFlinger.cpp
97c9f4fd7bc31e2968d816402659ba1c64f10b42 12-Aug-2015 Eric Laurent <elaurent@google.com> NuPlayerRenderer: handle error when resuming an offloaded track

Make sure that an offloaded audio track is torn down if
start() returns an error in onResume().
This makes sure that a track invalidated due to a potential
audio path change while paused is re created on the correct
output.

Bug: 22256441.
Change-Id: I6c7bfec6e7322415daffc0451bab46d0c558522a
udioTrack.cpp
1b1928715253e74a5a782463907f93bdf7de52c4 25-Jul-2015 Robert Shih <robertshih@google.com> am b45cb776: Merge "Explicitly disconnect in MediaPlayer::reset" into mnc-dev

* commit 'b45cb776b7ae43f763200040d6358657ab80f855':
Explicitly disconnect in MediaPlayer::reset
7011a2eae4ee4fea95b53c309dd1a4d83a07d881 25-Jul-2015 Robert Shih <robertshih@google.com> am b45cb776: Merge "Explicitly disconnect in MediaPlayer::reset" into mnc-dev

* commit 'b45cb776b7ae43f763200040d6358657ab80f855':
Explicitly disconnect in MediaPlayer::reset
b45cb776b7ae43f763200040d6358657ab80f855 25-Jul-2015 Robert Shih <robertshih@google.com> Merge "Explicitly disconnect in MediaPlayer::reset" into mnc-dev
0c4249ae67222d09c1a0a8149672e4f1d9f3789f 25-Jul-2015 Andy Hung <hunga@google.com> am 2c7d0f20: Merge "Fix restore position warning and static track adjustment" into mnc-dev

* commit '2c7d0f2013203588f9307166cad42902eb5a676f':
Fix restore position warning and static track adjustment
50bd7422c37b682202124f3d7e4cdc502dbca728 24-Jul-2015 Andy Hung <hunga@google.com> am 2c7d0f20: Merge "Fix restore position warning and static track adjustment" into mnc-dev

* commit '2c7d0f2013203588f9307166cad42902eb5a676f':
Fix restore position warning and static track adjustment
2c7d0f2013203588f9307166cad42902eb5a676f 24-Jul-2015 Andy Hung <hunga@google.com> Merge "Fix restore position warning and static track adjustment" into mnc-dev
be6cbce6652cbc533f57f3e514b585e67f99d2dd 24-Jul-2015 Andy Hung <hunga@google.com> am 9f00e69c: Merge "Fix race condition in AudioTrackThread::wake" into mnc-dev

* commit '9f00e69c5f2702b66e9bdf8f4f75f99a338738d7':
Fix race condition in AudioTrackThread::wake
fca9868cc99fb5fd432526aca234054112a20045 24-Jul-2015 Andy Hung <hunga@google.com> am 63310b10: Merge "Fix race condition in AudioRecordThread::wake" into mnc-dev

* commit '63310b10c5834f92164a96ea2ad4ad8ab1e309ec':
Fix race condition in AudioRecordThread::wake
d7bd69e4d1e74f25413721804d5290c53ea87f2b 24-Jul-2015 Andy Hung <hunga@google.com> Fix restore position warning and static track adjustment

Remove unnecessary restoreTrack_l() position warning when
AudioTrack output device changes.

Also, fix rare getPosition() offset error if a static track is
continuously playing a long time (> 24 hours at 48khz sampling)
and its output device changes.

Bug: 22524122
Bug: 21699132
Change-Id: I5a35c13d62ff9f0702b09d5cd9362c730364b18c
udioTrack.cpp
491fb4ea563e118dc73e45b31c21457f8b21df53 24-Jul-2015 Andy Hung <hunga@google.com> am 9f00e69c: Merge "Fix race condition in AudioTrackThread::wake" into mnc-dev

* commit '9f00e69c5f2702b66e9bdf8f4f75f99a338738d7':
Fix race condition in AudioTrackThread::wake
d53dc28047cdf3f40f1d86e9e80096ff621d95f3 24-Jul-2015 Andy Hung <hunga@google.com> am 63310b10: Merge "Fix race condition in AudioRecordThread::wake" into mnc-dev

* commit '63310b10c5834f92164a96ea2ad4ad8ab1e309ec':
Fix race condition in AudioRecordThread::wake
2b95bda111444f2834e64221e3a3eb1a87d43c38 22-Jul-2015 Robert Shih <robertshih@google.com> Explicitly disconnect in MediaPlayer::reset

Even without calling disconnect in MediaPlayer::reset,
MediaPlayerService::Client (which lives on the other side of a
binder with MediaPlayer) would still perform a disconnect in its
destructor. Object destruction across binder is not synchronous, but
method calls are. This commit merely makes sure that the disconnect
happens deterministically before reset returns.

Bug: 22451733
Change-Id: Id9146a63a1872d68087a252aa614248b16d2556d
ediaplayer.cpp
a8d0890ca969ec40fdcf1cfcbeef85c0c379cfaf 22-Jul-2015 Andy Hung <hunga@google.com> Fix race condition in AudioTrackThread::wake

Bug: 22533684
Change-Id: I2f46770dca44fc9dae41e067d3bec893c42a826e
udioTrack.cpp
805a0c70574676d0fb29aa5e1f23417786b42259 22-Jul-2015 Andy Hung <hunga@google.com> Fix race condition in AudioRecordThread::wake

Bug: 22533684
Change-Id: Iba73d633b088dbc84159ed692019da39cc8e2233
udioRecord.cpp
f42d2eecfaf17367e094040906dad44f1e6b464d 18-Jul-2015 Ronghua Wu <ronghuawu@google.com> am 51390b48: Merge "mediaresourcemanager: add pid to removeResource method" into mnc-dev

* commit '51390b48d311d1164a6638d3fe0b4a48aaa9028f':
mediaresourcemanager: add pid to removeResource method
e4b62f7c0766f799b41e4ce9ad98735156ac64ac 18-Jul-2015 Ronghua Wu <ronghuawu@google.com> am 51390b48: Merge "mediaresourcemanager: add pid to removeResource method" into mnc-dev

* commit '51390b48d311d1164a6638d3fe0b4a48aaa9028f':
mediaresourcemanager: add pid to removeResource method
51390b48d311d1164a6638d3fe0b4a48aaa9028f 18-Jul-2015 Ronghua Wu <ronghuawu@google.com> Merge "mediaresourcemanager: add pid to removeResource method" into mnc-dev
28fa88f2f81260361944b81fbdb9bb40b795f8e9 17-Jul-2015 Glenn Kasten <gkasten@google.com> am dbd0f3c5: Fix build

* commit 'dbd0f3c5e15e56c2d91ae1405fecf2279785ef00':
Fix build
6d6f3c6dbc6eed1bf405c6bd34506ef3e6100cd6 17-Jul-2015 Glenn Kasten <gkasten@google.com> am dbd0f3c5: Fix build

* commit 'dbd0f3c5e15e56c2d91ae1405fecf2279785ef00':
Fix build
6ed5361d4f1fb9b83c9f73e7fcb9ff4e60b73a7c 17-Jul-2015 Andy Hung <hunga@google.com> am 3bf99265: Merge "Fix AudioTrack flush pointer wrap" into mnc-dev

* commit '3bf9926510aaec6d70a171b1ccf405abbd74c700':
Fix AudioTrack flush pointer wrap
dbd0f3c5e15e56c2d91ae1405fecf2279785ef00 17-Jul-2015 Glenn Kasten <gkasten@google.com> Fix build

Change-Id: I18b63d68d452c4ee7544ff1614f4e3f57f5a9e73
udioTrackShared.cpp
ef031187432128d47d1663468c2494f88f4abcd3 17-Jul-2015 Andy Hung <hunga@google.com> am 3bf99265: Merge "Fix AudioTrack flush pointer wrap" into mnc-dev

* commit '3bf9926510aaec6d70a171b1ccf405abbd74c700':
Fix AudioTrack flush pointer wrap
37c8924c508a7c9b8bd3c8ce80fc005070531902 15-Jul-2015 Ronghua Wu <ronghuawu@google.com> mediaresourcemanager: add pid to removeResource method

Bug: 22496209
Change-Id: I73311573e8d1ac15fec668a9ef6e6af7a07a1d30
ResourceManagerService.cpp
3bf9926510aaec6d70a171b1ccf405abbd74c700 17-Jul-2015 Andy Hung <hunga@google.com> Merge "Fix AudioTrack flush pointer wrap" into mnc-dev
a2d75cdb1e389f2b4ce5992fb6652399b4d30966 16-Jul-2015 Andy Hung <hunga@google.com> Fix AudioTrack flush pointer wrap

Occurs when read offset / write offset span the power of 2
mask boundary.

Bug: 22513776
Change-Id: If863577dac6666e8b2083d78f78fe9b9490fcf76
udioTrackShared.cpp
83582fafce2122286124710c3a9c749b4825a033 16-Jul-2015 Eric Laurent <elaurent@google.com> am a8dc93ef: Merge "mediaplayer: fix audio attributes override by stream type" into mnc-dev

* commit 'a8dc93efc9be8d5e37c7473601fb8654804188c1':
mediaplayer: fix audio attributes override by stream type
6c848ad95214545dd76c7f4c894bce89449bbfbd 16-Jul-2015 Eric Laurent <elaurent@google.com> am a8dc93ef: Merge "mediaplayer: fix audio attributes override by stream type" into mnc-dev

* commit 'a8dc93efc9be8d5e37c7473601fb8654804188c1':
mediaplayer: fix audio attributes override by stream type
4356269be6d2b62bbb945364e8fc4beb99e1aada 16-Jul-2015 Eric Laurent <elaurent@google.com> mediaplayer: fix audio attributes override by stream type

Make sure that when audio attributes are set, the stream type
is always derived from them.

Bug: 22481669.
Change-Id: Ia10c7017eb27e7753faf97a42dd4f44e15f2c986
ediaplayer.cpp
0d0da9b40469b847f9913dd97805b7bd99b1aeb9 11-Jul-2015 Elliott Hughes <enh@google.com> resolved conflicts for merge of 6052c89f to mnc-dr-dev-plus-aosp

Change-Id: If44e52b1dad6e5210931452fb160e64c7becbfc7
9bd9ed11ed5b3aa00aaaf32bae708158fd2f33ca 11-Jul-2015 Elliott Hughes <enh@google.com> resolved conflicts for merge of 6052c89f to mnc-dev-plus-aosp

Change-Id: I54bfc78454ff0ecba68f08879cab7097b9d7a7f6
2d908114b0ce5ba0d34aab5a721f9772340f936a 10-Jul-2015 Eric Laurent <elaurent@google.com> am a56d1303: Merge "audio: several fixes in audio routing callbacks" into mnc-dev

* commit 'a56d1303bc7505ca7ea17251218185557528d6bb':
audio: several fixes in audio routing callbacks
621b4199dd11ab4627e2ac874a157965c5071c53 10-Jul-2015 Eric Laurent <elaurent@google.com> am a56d1303: Merge "audio: several fixes in audio routing callbacks" into mnc-dev

* commit 'a56d1303bc7505ca7ea17251218185557528d6bb':
audio: several fixes in audio routing callbacks
242b400fc6e360d9444335a3fab296d96db024d8 10-Jul-2015 Elliott Hughes <enh@google.com> frameworks/av: libexpat now exports its includes.

Change-Id: I89412ddbe855af1b39636afbe98408321bb4a8be
ediaProfiles.cpp
7c1ec5f038e63a5eb8b04434577c25bc23f5f410 09-Jul-2015 Eric Laurent <elaurent@google.com> audio: several fixes in audio routing callbacks

- audio policy:
Force device change to ensure new audio patch creation
upon first track activity on a given output.
Fix function device_distinguishes_on_address() which could mistake
some output device with remote submix input device.

- audio flinger:
Reduce number of binder calls upon new client registration by only
sending ioConfigChanged() callbacks to newly registered client.
Fix first patch after output thread creation not triggering an
ioConfigChanged() callback.

-audio system:
Force client registration upon routing callback installation to force
new ioConfigChanged() callback from audio flinger.

Bug: 22381136.

Change-Id: Ieb0d9f92f563a40552eb31bc0499c8ac65f78ce4
udioSystem.cpp
5060960bfcbc7ecf54b4ccc29e4f74e590e8e3f8 27-Jun-2015 Eric Laurent <elaurent@google.com> am 6705edd4: Merge "reduce number of binder calls from mediaserver" into mnc-dev

* commit '6705edd4e58c4fcff0cbbff30bacffa561759ba8':
reduce number of binder calls from mediaserver
e8726fea8a53bf3474aa3c6deaf2f6c1f565e694 26-Jun-2015 Eric Laurent <elaurent@google.com> reduce number of binder calls from mediaserver

Reduce the number of audio port, audio patch and
IO config changed binder calls from mediaserver to
client processes:
- Do not call IO config changed callback if selected
device is the same as previously selected one on a given
audio flinger playback or capture thread.
- Do not call the audio port or audo patch list update
callback on a client if this client as no listener registered.

Bug: 22045560.

Change-Id: If780e105404de79b7cb5c80c27b793ceb6b1c423
udioSystem.cpp
AudioPolicyService.cpp
fdb9404f0ced6ecdd3b33e2074dfa274162dcd80 23-Jun-2015 Ricardo Garcia <rago@google.com> am 55a2dcce: Merge "Using centralized isAudioPlaybackRateValid to validate parameters" into mnc-dev

* commit '55a2dcce3a409393dc51ab2eb433914331f2df51':
Using centralized isAudioPlaybackRateValid to validate parameters
55a2dcce3a409393dc51ab2eb433914331f2df51 23-Jun-2015 Ricardo Garcia <rago@google.com> Merge "Using centralized isAudioPlaybackRateValid to validate parameters" into mnc-dev
6c7f062d3149d6890daaee64828959ad6f61ea54 01-May-2015 Ricardo Garcia <rago@google.com> Using centralized isAudioPlaybackRateValid to validate parameters

Centralized validation code
bug: 20701446

Change-Id: I9d9941c7639c05b2afe069ff4f858c693c910bfe
udioTrack.cpp
678afec35fe8c52cde2cb2f57639393e54fe93e1 22-Jun-2015 Ricardo Garcia <rago@google.com> am 99b38856: Merge "Fix for Visualizer release bug" into mnc-dev

* commit '99b38856e91a55bb67085dbabffac9739998fe8b':
Fix for Visualizer release bug
99b38856e91a55bb67085dbabffac9739998fe8b 22-Jun-2015 Ricardo Garcia <rago@google.com> Merge "Fix for Visualizer release bug" into mnc-dev
9b030df5ead9c039e4ebb16c745e2cc40e953d48 19-Jun-2015 Ricardo Garcia <rago@google.com> Fix for Visualizer release bug

Setting callback reference to NULL before requesting exit.

bug: 21804802
Change-Id: I54323959686880f4e7a10b766850f8c86c06edb6
isualizer.cpp
a548d0e8c675c7cd97d111b7f4b50f05473bbcec 19-Jun-2015 Jeff Tinker <jtinker@google.com> am 47b1ca9c: Merge "Check binder transact status" into mnc-dev

* commit '47b1ca9cf7c45564887832bfdec21ccc18eb448e':
Check binder transact status
d40f5f01d983b6d7fe0abb00ab0573bf737a17d7 19-Jun-2015 Andy Hung <hunga@google.com> am f86e831e: Merge "Return DEAD_OBJECT if getTimestamp cannot restore track" into mnc-dev

* commit 'f86e831ec0cbdce2d34c48fc567ad91a47099b70':
Return DEAD_OBJECT if getTimestamp cannot restore track
47b1ca9cf7c45564887832bfdec21ccc18eb448e 19-Jun-2015 Jeff Tinker <jtinker@google.com> Merge "Check binder transact status" into mnc-dev
f86e831ec0cbdce2d34c48fc567ad91a47099b70 19-Jun-2015 Andy Hung <hunga@google.com> Merge "Return DEAD_OBJECT if getTimestamp cannot restore track" into mnc-dev
8541205f3518fdb0b6711ad0ba713946fb27d752 19-Jun-2015 Andy Hung <hunga@google.com> am c675cf0f: Merge "Fix AudioTrack comments relating to use of restoreTrack_l()" into mnc-dev

* commit 'c675cf0fff3da75a92bc157e3bf698cc5a1f6eb3':
Fix AudioTrack comments relating to use of restoreTrack_l()
c675cf0fff3da75a92bc157e3bf698cc5a1f6eb3 19-Jun-2015 Andy Hung <hunga@google.com> Merge "Fix AudioTrack comments relating to use of restoreTrack_l()" into mnc-dev
6653c935d2518a713587b3887ca09aa09ebfa7fd 08-Jun-2015 Andy Hung <hunga@google.com> Return DEAD_OBJECT if getTimestamp cannot restore track

Bug: 21699132
Change-Id: I90443f8674ed949e2546048b231be75cd6fe6615
udioTrack.cpp
1f1db8356b599bc40703c907fb69e6e539343532 08-Jun-2015 Andy Hung <hunga@google.com> Fix AudioTrack comments relating to use of restoreTrack_l()

Bug: 21699132
Change-Id: Ib0d029a5e28676aeffbbbafc88c52a17367a413c
udioTrack.cpp
98895b31022a3b3229474701155eacdbc2636ee1 18-Jun-2015 Alex Klyubin <klyubin@google.com> am 808fa88b: Merge "readAt can return negative values (error codes)." into mnc-dev

* commit '808fa88be82c1646dc472ccd459d6498748e940a':
readAt can return negative values (error codes).
61c83317f1c8f18fd86afe0c776d16933816a83a 18-Jun-2015 Alex Klyubin <klyubin@google.com> readAt can return negative values (error codes).

This fixes the regression introduced in
59cea2616269f34b1f3d046995efd8da42cd5549 due to which MediaPlayer
treated all error codes returned by MediaHTTPConnection as
ERROR_OUT_OF_RANGE.

The regression was caused by accidentally converting negative values
(which represent error codes) returned by MediaHTTPConnection to very
large positive ones (which represent length of data received).

Bug: 21922241
Change-Id: I1b4592b5fec724aac1ba6c1ff8fdabcba56bcd2d
MediaHTTPConnection.cpp
3b5401ad38b4346920f9aff0440606b8b565ce90 16-Jun-2015 Jeff Tinker <jtinker@google.com> Check binder transact status

If mediaserver restarts, the binder transact
methods return DEAD_OBJECT. This status wasn't
being checked, so calls would proceed with
unpredictable results.

bug: 20614102
Change-Id: I11271974ef2ccf0129529d1f67204dff1f1d03b0
Drm.cpp
d81625a68eed25366bfc55e73f094cd640f672a0 12-Jun-2015 Marco Nelissen <marcone@google.com> am bd95df5d: Merge "Return correct error code from IMediaHttpConnection" into mnc-dev

* commit 'bd95df5def15fc8167f17846e7d1a4cc7440d06a':
Return correct error code from IMediaHttpConnection
8cecf014ad5c62b072fad8fc24a140e8ee294f62 11-Jun-2015 Marco Nelissen <marcone@google.com> Return correct error code from IMediaHttpConnection

It returns a boolean, not a status_t

Bug: 21654826
Change-Id: Id364a90598c5cf0bb567b5b25bbc9b7c73412760
MediaHTTPConnection.cpp
dd6b599598b5062da7e82fbb3cdf34cd147057d9 09-Jun-2015 Eric Laurent <elaurent@google.com> am c75a989a: Merge "Use only strong references to AudioEffect" into mnc-dev

* commit 'c75a989a38a157d48ca34bf127d5b4533e9356a7':
Use only strong references to AudioEffect
eecd7659823504c6c65a2b0f4267515a8e3f24cb 05-Jun-2015 Eric Laurent <elaurent@google.com> Use only strong references to AudioEffect

Do not refer to an AudioEffect instance by a raw pointer from the
child AudioEffectClient.

Also align destructor cleanup sequence on those of AudioTrack
and AudioRecord.

Bug: 21629892.

Change-Id: I970307aedbc38db2e41a2cc652fd6df9112f712c
udioEffect.cpp
cb39c917ead7f7e2ad8e9113a9936a16f501a5ca 06-Jun-2015 Lajos Molnar <lajos@google.com> am 26a48f30: stagefright: add support for batching OMX events

* commit '26a48f304a8754d655e554178ffb6d7ba4c5aac3':
stagefright: add support for batching OMX events
26a48f304a8754d655e554178ffb6d7ba4c5aac3 04-Jun-2015 Lajos Molnar <lajos@google.com> stagefright: add support for batching OMX events

Bug: 20503131
Change-Id: I762c419ed1245f8b83fb1f6bf61e5557213ca07b
OMX.cpp
6ec2fa6d3822adc3f73264e6c9fc7f340b581fb5 05-Jun-2015 Andy Hung <hunga@google.com> am 81c4d806: Merge "Improve AudioTrack offload timestamp startup glitch detector" into mnc-dev

* commit '81c4d806c574271e6e4e49a795bcbe809af4eff0':
Improve AudioTrack offload timestamp startup glitch detector
fffb53cfdfaaa090dec16429d62de9ccc79db053 05-Jun-2015 Andy Hung <hunga@google.com> am 1830513e: Merge "Compute sleep time when AudioTrack client callback returns no PCM data" into mnc-dev

* commit '1830513e7a2638e627a7991bc0c786451eadfc0b':
Compute sleep time when AudioTrack client callback returns no PCM data
c8e09c610fabc7390297ecb48e939acbdfe27325 04-Jun-2015 Andy Hung <hunga@google.com> Improve AudioTrack offload timestamp startup glitch detector

New or existing glitch behavior for Nexus 5 offload audio:
we receive several 0 timestamps,
then we get a stale timestamp (very large),
then a few ms later we get a correct nonzero timestamp.

We attempt to hide the glitch because the retrograde timestamp
correction makes the glitch "sticky".

Bug: 21633313
Change-Id: I39153af718c151f9435e7d315651a811f72743da
udioTrack.cpp
a7f03353d5f172016f324e2a01f301cca6794152 01-Jun-2015 Andy Hung <hunga@google.com> Compute sleep time when AudioTrack client callback returns no PCM data

Callbacks can go into a sleep-wait cycle if the client/app is unable to
deliver data. This can happen if the buffer is large, or if
the client/app cannot keep the buffer filled, or upon a stream end condition.
We improve the sleep time computation for AudioTrack PCM callbacks.

This minimizes the number of callbacks to NuPlayerRenderer.

Bug: 21198655
Change-Id: I4247798a6638def2f0d8f1b46f60323482065cb2
udioTrack.cpp
f4bc7dac039cb3b762f23dc758172597f51c3d82 03-Jun-2015 Lajos Molnar <lajos@google.com> am 15ab4996: stagefright: add support for fences in OMX

* commit '15ab4996019387f27a48b81cb4774c21502bc0e5':
stagefright: add support for fences in OMX
15ab4996019387f27a48b81cb4774c21502bc0e5 01-Jun-2015 Lajos Molnar <lajos@google.com> stagefright: add support for fences in OMX

Pass Fence between Surface and ACodec, and between ACodec and IOMX.

Bug: 12386081
Change-Id: Ifdc566979dec0d91ed8b07c3b69d2cf092accc73
OMX.cpp
46f7ee06c45732705f742fadb6140a236362c019 02-Jun-2015 Andy Hung <hunga@google.com> am 0eafa9d8: Merge "Store server latency, sample rate, framecount information in AudioTrack" into mnc-dev

* commit '0eafa9d8ee4069aa709ff85ceffe94d12995956d':
Store server latency, sample rate, framecount information in AudioTrack
0eafa9d8ee4069aa709ff85ceffe94d12995956d 02-Jun-2015 Andy Hung <hunga@google.com> Merge "Store server latency, sample rate, framecount information in AudioTrack" into mnc-dev
bf39c11f89aeb008b4edfce93218aead5048dd1f 02-Jun-2015 Lajos Molnar <lajos@google.com> am 05421987: stagefright: rework metadata buffer support

* commit '054219874873b41f1c815552987c10465c34ba2b':
stagefright: rework metadata buffer support
7fcc4ef203515737cd9a8f85277aaeee6123591e 02-Jun-2015 Lajos Molnar <lajos@google.com> am cc7cc673: stagefright: allow to overallocate OMX codec buffers

* commit 'cc7cc67349b7a3f498882087aa42ffc05a2daf11':
stagefright: allow to overallocate OMX codec buffers
054219874873b41f1c815552987c10465c34ba2b 16-May-2015 Lajos Molnar <lajos@google.com> stagefright: rework metadata buffer support

- Add fence to new metadata buffer mode structure, but don't use it
yet, so that we don't have to add another mode soon.
- Change GraphicBuffers to ANativeWindowBuffer in new metadata mode.
This removes internal depencency from vendor codecs.
- Extend new metadata mode from SW encoders to all codecs.
- Fallback from new metadata mode to old mode (so Camera can always
use the new mode even with legacy codecs)

Related-bug: 19614055
Bug: 13222807
Change-Id: I405a21dd6ce8e99808f633bfeab8f14278eb7079
OMX.cpp
9f9e21ed9a342e0ca945818bdc6c0c4fb3bfb9bd 01-Jun-2015 Andy Hung <hunga@google.com> Store server latency, sample rate, framecount information in AudioTrack

Bug: 21198655
Change-Id: I24590196642a97ea5d61bc6356f0aff782bd37d3
udioTrack.cpp
cc7cc67349b7a3f498882087aa42ffc05a2daf11 01-Jun-2015 Lajos Molnar <lajos@google.com> stagefright: allow to overallocate OMX codec buffers

Specify allottedSize for useBuffer and allocateBufferWithBackup,
where OMX will see only the allottedSize, even though framework may
allocate and use a bigger buffer.

Bug: 13222807
Change-Id: Ibfa93f6c7b7c8ca0853ef17d4a0758e496eaf921
OMX.cpp
1f776a6d02ae592c6db1005dcb332f886dfe8f96 01-Jun-2015 Chong Zhang <chz@google.com> am 187b78c3: Merge "remove video editor from MediaProfile" into mnc-dev

* commit '187b78c384ddc0119da9909e89884ed5511a01e9':
remove video editor from MediaProfile
279795ceacea01dd05cd7c19783f3f68cb7a8e9f 01-Jun-2015 Glenn Kasten <gkasten@google.com> am db431db5: Merge "Deprecations are warnings not errors" into mnc-dev

* commit 'db431db53fbbb9024b6e72c528e2d195d63ad544':
Deprecations are warnings not errors
187b78c384ddc0119da9909e89884ed5511a01e9 30-May-2015 Chong Zhang <chz@google.com> Merge "remove video editor from MediaProfile" into mnc-dev
db431db53fbbb9024b6e72c528e2d195d63ad544 29-May-2015 Glenn Kasten <gkasten@google.com> Merge "Deprecations are warnings not errors" into mnc-dev
f6b3e7db0b18a7d187d026dd729ae12fd521005e 18-May-2015 Glenn Kasten <gkasten@google.com> Deprecations are warnings not errors

Change-Id: Ib77f45fdc27ea53f1dd181f48c76810d03f8dcdb
ndroid.mk
ba3e7f5b31b8110ee93b69d28002a1827fd1346b 28-May-2015 Chong Zhang <chz@google.com> remove video editor from MediaProfile

bug: 17112465
Change-Id: Id59ba13e9c796298ad7dbaf03a595cc1fa62c169
ediaProfiles.cpp
dfbd894b8c91a340d7aaf7b836e01504114e4016 27-May-2015 Ronghua Wu <ronghuawu@google.com> am 5eabb019: Merge "libmedia: read from parcel only when there\'s a data available." into mnc-dev

* commit '5eabb0191ab25a45ae19575a7a443ba12bd1800a':
libmedia: read from parcel only when there's a data available.
d66ef45e09272b85a79c8d3c87666f26269bfa68 27-May-2015 Ronghua Wu <ronghuawu@google.com> libmedia: read from parcel only when there's a data available.

Bug: 21374704
Change-Id: I87dc2ee36fe8db99cceeb25ec6657feb423de133
ResourceManagerService.cpp
8830b4c8b2566486d68c067c3bfad5dad5bf94c1 22-May-2015 Ronghua Wu <ronghuawu@google.com> am 3a9a6ea4: Merge "libmedia: fix unmatch Parcel read in BnResourceManagerService::onTransact." into mnc-dev

* commit '3a9a6ea4e9f67c6a43f00ae3d980eb475e49deaf':
libmedia: fix unmatch Parcel read in BnResourceManagerService::onTransact.
475ed1d6c842abdb773fa8e39290375ceda39b62 22-May-2015 Ronghua Wu <ronghuawu@google.com> am 0a7989f5: Merge "libmediaplayerservice: try to open audio sink in offload mode in error." into mnc-dev

* commit '0a7989f5691f161fff97dd550eb602e44a6e6185':
libmediaplayerservice: try to open audio sink in offload mode in error.
3a9a6ea4e9f67c6a43f00ae3d980eb475e49deaf 22-May-2015 Ronghua Wu <ronghuawu@google.com> Merge "libmedia: fix unmatch Parcel read in BnResourceManagerService::onTransact." into mnc-dev
0a7989f5691f161fff97dd550eb602e44a6e6185 22-May-2015 Ronghua Wu <ronghuawu@google.com> Merge "libmediaplayerservice: try to open audio sink in offload mode in error." into mnc-dev
faeb0f291330134dc4468359a36e099aae508449 21-May-2015 Ronghua Wu <ronghuawu@google.com> libmediaplayerservice: try to open audio sink in offload mode in error.

Bug: 19061432
Bug: 21370108
Change-Id: Iaa757555ef37fd1ac87b6e2d5a9969bb58cc5ebc
udioTrack.cpp
2d32dcde5ba90063a269b2117dee810037eede33 22-May-2015 Ronghua Wu <ronghuawu@google.com> libmedia: fix unmatch Parcel read in BnResourceManagerService::onTransact.

Bug: 21374704
Change-Id: Ibe8823a55b597fe5a70d6b4c5214695263712204
ResourceManagerService.cpp
9d774ecdb266c42c440f68404ebcbea3541d3370 21-May-2015 Eric Laurent <elaurent@google.com> am 748a792b: Merge "audio flinger: do not call JAVA services until system is ready" into mnc-dev

* commit '748a792be85838c429ebf46acf7d6eb02e79f00b':
audio flinger: do not call JAVA services until system is ready
748a792be85838c429ebf46acf7d6eb02e79f00b 21-May-2015 Eric Laurent <elaurent@google.com> Merge "audio flinger: do not call JAVA services until system is ready" into mnc-dev
72e3f39146fce4686bd96f11057c051bea376dfb 20-May-2015 Eric Laurent <elaurent@google.com> audio flinger: do not call JAVA services until system is ready

Wait for system ready indication form AudioService before enabling
calls to scheduling service or power manager.

Bug: 11520969.
Change-Id: I221927394f4a08fd86c9d457e55dd0e07949f0cf
udioSystem.cpp
AudioFlinger.cpp
3d4d897cf6a933dd02e8d83e674a4ecfe2ea578b 19-May-2015 Glenn Kasten <gkasten@google.com> am d45d75d7: Merge "Clear mAudioRecord and mAudioTrack on set() failure" into mnc-dev

* commit 'd45d75d7c19811c5afe9b115c7282f9aa4e1ee4d':
Clear mAudioRecord and mAudioTrack on set() failure
3e98ecd18c906dc3ac2ff1a890f0b3163447272d 18-May-2015 Glenn Kasten <gkasten@google.com> Clear mAudioRecord and mAudioTrack on set() failure

Bug: 20818955
Bug: 20890069
Change-Id: I243205b99b198eb1b5a1a027b27cbb7d5aaaa8db
etPlayer.cpp
1181db0dc7207c18b11fb41d5d985999617a23e0 15-May-2015 Chong Zhang <chz@google.com> am a6e9dd94: am 270caf9a: am 23d41fb1: am 2a9ccb66: am fd3a6e71: HDCP: buffer over flow check -- DO NOT MERGE

* commit 'a6e9dd941a3055526f6e967017e91a76c153087a':
HDCP: buffer over flow check -- DO NOT MERGE
96a41a2ba5985aeb9163923f54d84cdaa3d0363d 15-May-2015 Chong Zhang <chz@google.com> am dbe6c320: HDCP: buffer over flow check -- DO NOT MERGE

* commit 'dbe6c320b414d8139c46aaf880d5f154ef4f9af8':
HDCP: buffer over flow check -- DO NOT MERGE
23d41fb11de0a5acb12733f7cd8875ea06d99eb5 15-May-2015 Chong Zhang <chz@google.com> am 2a9ccb66: am fd3a6e71: HDCP: buffer over flow check -- DO NOT MERGE

* commit '2a9ccb66c052d16e870d2db1fa6edb9a39f6526b':
HDCP: buffer over flow check -- DO NOT MERGE
fd3a6e7126023e01da119a2587cdf8505c4d1809 28-Apr-2015 Chong Zhang <chz@google.com> HDCP: buffer over flow check -- DO NOT MERGE

bug: 20222489
Change-Id: I3a64a5999d68ea243d187f12ec7717b7f26d93a3
(cherry picked from commit 532cd7b86a5fdc7b9a30a45d8ae2d16ef7660a72)
HDCP.cpp
dbe6c320b414d8139c46aaf880d5f154ef4f9af8 28-Apr-2015 Chong Zhang <chz@google.com> HDCP: buffer over flow check -- DO NOT MERGE

bug: 20222489
Change-Id: I3a64a5999d68ea243d187f12ec7717b7f26d93a3
(cherry picked from commit 532cd7b86a5fdc7b9a30a45d8ae2d16ef7660a72)
HDCP.cpp
f2b90f170a3afad1ab5f8fbdf20c23284189c213 13-May-2015 Chong Zhang <chz@google.com> am 55c3bd0c: Merge "stagefright: rename usePersistentInputSurface to setInputSurface" into mnc-dev

* commit '55c3bd0cacfb6e1601cd03fdba814be544a34326':
stagefright: rename usePersistentInputSurface to setInputSurface
8f469e18c307cb9dc0d16ed9225972aa8be4516f 13-May-2015 Chong Zhang <chz@google.com> stagefright: rename usePersistentInputSurface to setInputSurface

and clear persistent surface pointer when MediaRecorder is reset

bug: 21045118
bug: 21045402
Change-Id: Ifd0d6deeb969f2252123929541b30b518cecbf9a
MediaRecorder.cpp
OMX.cpp
ediarecorder.cpp
d82d34c319e89cd043af5ca2f3ffd4ebf2da8228 08-May-2015 Ronghua Wu <ronghuawu@google.com> am 9ba21b94: libstagefright: config resource manager with secure codec co-existing policy.

* commit '9ba21b9418d10ddcc39f08901e24fbf43d82b2bc':
libstagefright: config resource manager with secure codec co-existing policy.
9ba21b9418d10ddcc39f08901e24fbf43d82b2bc 21-Apr-2015 Ronghua Wu <ronghuawu@google.com> libstagefright: config resource manager with secure codec co-existing policy.

Bug: 19620911
Change-Id: I0d729782c1622f23e9c37b7a9231e58e3f807470
ediaResourcePolicy.cpp
0460d51dd85680b2335d670f9197848cf7ac6866 07-May-2015 Chong Zhang <chz@google.com> am d975e98a: Merge "MediaHTTP: add more null ptr and init checks" into mnc-dev

* commit 'd975e98aac096b8b0ed600f39c18630ba234ef7d':
MediaHTTP: add more null ptr and init checks
d975e98aac096b8b0ed600f39c18630ba234ef7d 07-May-2015 Chong Zhang <chz@google.com> Merge "MediaHTTP: add more null ptr and init checks" into mnc-dev
37d8b27e5470d8243288a87e90871efd43f29606 07-May-2015 Chong Zhang <chz@google.com> MediaHTTP: add more null ptr and init checks

bug: 20912192
Change-Id: I83cf59ff85fd8aa3a19a696ceb97cd8aa922b8ba
MediaHTTPService.cpp
2806bf0307c622b3633caff7742a5553086b4c01 07-May-2015 Marco Nelissen <marcone@google.com> am 831352e9: am d7446564: am 1e5670ab: am 296dc670: am d8e41553: am bd28ac74: am 59cea261: Add some sanity checks

* commit '831352e926c2896996df285b343cc06f39053499':
Add some sanity checks
831352e926c2896996df285b343cc06f39053499 07-May-2015 Marco Nelissen <marcone@google.com> am d7446564: am 1e5670ab: am 296dc670: am d8e41553: am bd28ac74: am 59cea261: Add some sanity checks

* commit 'd7446564c3e469aea1bba5460ff1fb9441f9fc09':
Add some sanity checks
d7446564c3e469aea1bba5460ff1fb9441f9fc09 07-May-2015 Marco Nelissen <marcone@google.com> am 1e5670ab: am 296dc670: am d8e41553: am bd28ac74: am 59cea261: Add some sanity checks

* commit '1e5670abf9c1b714819ab6ec529a6bc19cbdacf4':
Add some sanity checks
d8e41553b96432c4d4dae80fcc042b95fd9d27d9 07-May-2015 Marco Nelissen <marcone@google.com> am bd28ac74: am 59cea261: Add some sanity checks

* commit 'bd28ac7471e2c7cab0ce9df4c2d5a295adc163a1':
Add some sanity checks
c28f8372a37664191168372c4d77c2a2adf86d0b 06-May-2015 Eric Laurent <elaurent@google.com> am d7ab7afa: Merge "Implement audio device callback" into mnc-dev

* commit 'd7ab7afa57ed1fa6fb9c4ce18ea0df3ec939c067':
Implement audio device callback
d7ab7afa57ed1fa6fb9c4ce18ea0df3ec939c067 06-May-2015 Eric Laurent <elaurent@google.com> Merge "Implement audio device callback" into mnc-dev
c14649e2e7313bb63301b577b562e60c4df64188 06-May-2015 Jeff Tinker <jtinker@google.com> am eb58c6d9: Merge "Pass all DRM errors through ICrypto" into mnc-dev

* commit 'eb58c6d9ee8eac81864aaecb38a1831014ebf152':
Pass all DRM errors through ICrypto
eb58c6d9ee8eac81864aaecb38a1831014ebf152 06-May-2015 Jeff Tinker <jtinker@google.com> Merge "Pass all DRM errors through ICrypto" into mnc-dev
296fb13dd9b5e90d6a05cce897c3b1e7914a478a 01-May-2015 Eric Laurent <elaurent@google.com> Implement audio device callback

Add class AudioSystem::AudioDeviceCallback notifying
AudioSystem clients upon device selection change on a given
input or output thread.
Maintain a list of installed callback per I/O handle in AudioSystem
and call registered callbacks when an OPEN of CONFIG_CHANGED event
is received on IAudioFlingerClient::ioConfigChanged().
Add methods to AudioTrack and AudioRecord to add and remove device
change callbacks.
Add methods to AudioTrack and AudioRecord to query currently selected
device.
ioConfigChanged() events now convey the audio patch describing
the input or output thread routing.

Fix AudioRecord failure to start when invalidation is
handled by start().

Change-Id: I9e938adf025fa712337c63b1e02a8c18f2a20d39
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlingerClient.cpp
ceffd8cc911bd2e685b525f838cd3d8198ab35cf 06-May-2015 Jeff Tinker <jtinker@google.com> Pass all DRM errors through ICrypto

Previously only the detailed messages for vendor-defined DRM
errors were being passed. This change allows detailed messages
to be passed for any DRM error, including the ones defined in
the framework.

bug: 20857014
Change-Id: I72aa85b31ac852fb1fb6ad0a93f3309100b52c9d
Crypto.cpp
f7118daa00bb7bc2c54c384159a72c4910f10e01 05-May-2015 Jean-Michel Trivi <jmtrivi@google.com> am 9f578d32: Merge "AudioRecord keeps track of UID" into mnc-dev

* commit '9f578d3297782be6de5373e171f3b4af49726709':
AudioRecord keeps track of UID
9f578d3297782be6de5373e171f3b4af49726709 05-May-2015 Jean-Michel Trivi <jmtrivi@google.com> Merge "AudioRecord keeps track of UID" into mnc-dev
4cb668392ee0433462251afbee109405c6efacc8 02-May-2015 Jean-Michel Trivi <jmtrivi@google.com> AudioRecord keeps track of UID

Bug 20832981

Change-Id: If5f3c61fae02d86b9d6fdf411711f854fd56c77d
udioRecord.cpp
AudioFlinger.cpp
b7e16c36e19859e1f702581f30c42e85e52010fa 02-May-2015 Chong Zhang <chz@google.com> am e2a2dfcb: MediaRecorder: implement persistent input surface APIs

* commit 'e2a2dfcbf0c9d6bb7139263ecf0d8e53b4ca1049':
MediaRecorder: implement persistent input surface APIs
a4ea4775492cd94fafb38f69dfb8f3591e8bbc50 02-May-2015 Chong Zhang <chz@google.com> am d291c222: MediaCodec: implement persistent input surface APIs

* commit 'd291c222357303b9611cab89d0c3b047584ef377':
MediaCodec: implement persistent input surface APIs
e2a2dfcbf0c9d6bb7139263ecf0d8e53b4ca1049 01-May-2015 Chong Zhang <chz@google.com> MediaRecorder: implement persistent input surface APIs

Bug: 19127604
Bug: 19489395

Change-Id: I7dd8015a8fe029f9867fcdb52322629c77eff50b
MediaRecorder.cpp
ediarecorder.cpp
d291c222357303b9611cab89d0c3b047584ef377 01-May-2015 Chong Zhang <chz@google.com> MediaCodec: implement persistent input surface APIs

Bug: 19127604
Bug: 19489395

Change-Id: Idaf1cc9008016f66903e93907a676f54e342e1a3
OMX.cpp
cbe655e7b7039fe9e2347c9e9a0736ff43f06056 02-May-2015 Phil Burk <philburk@google.com> am 93927035: Merge "AudioTrack: reduce retrograde motion spew" into mnc-dev

* commit '939270353bff5bc7497b0c77e203520b997268c9':
AudioTrack: reduce retrograde motion spew
939270353bff5bc7497b0c77e203520b997268c9 01-May-2015 Phil Burk <philburk@google.com> Merge "AudioTrack: reduce retrograde motion spew" into mnc-dev
d3c388fd4b2c4739bbc3200463d127d4926f4e23 01-May-2015 Eric Laurent <elaurent@google.com> am cc85abcf: Merge "AudioSystem: refactor audio config cache and callbacks" into mnc-dev

* commit 'cc85abcf4ac398dca240db356b8b4db052b415a4':
AudioSystem: refactor audio config cache and callbacks
cc85abcf4ac398dca240db356b8b4db052b415a4 01-May-2015 Eric Laurent <elaurent@google.com> Merge "AudioSystem: refactor audio config cache and callbacks" into mnc-dev
73e26b661af50be2c0a4ff6c9ac85f7347a8b235 28-Apr-2015 Eric Laurent <elaurent@google.com> AudioSystem: refactor audio config cache and callbacks

Clean up implementation of audio configuration cache and
callback events from AudioFlinger:

- Define class AudioIoDescriptor for audio input and output
configurations outside of AudioSystem class.
- Do not use void * but an AudioIoDescriptor as argument to
audio config callbacks from AudioFlinger.
- Remove unused configuration events.
- Move AudioSystem audio input and output cache from static singletons to
members of AudioFlingerClient subclass.

Change-Id: I67c196c32c09ce2756af0755ee1fe631040c3270
udioSystem.cpp
AudioFlingerClient.cpp
4c5a3675ed6b429dfaa2707acf2b3faf2808baf2 01-May-2015 Phil Burk <philburk@google.com> AudioTrack: reduce retrograde motion spew

Change-Id: I96aced52b136ceea924aa3d9ef56374dd4c49784
Signed-off-by: Phil Burk <philburk@google.com>
udioTrack.cpp
0ab2c4ce6f669722c055f1f4d35d6a79d21ba7c7 01-May-2015 Lajos Molnar <lajos@google.com> am 3a474aa6: stagefright: support setting/getting playback/sync config in MediaSync

* commit '3a474aa67fc31505740526dd249d96204c08bf79':
stagefright: support setting/getting playback/sync config in MediaSync
3a474aa67fc31505740526dd249d96204c08bf79 25-Apr-2015 Lajos Molnar <lajos@google.com> stagefright: support setting/getting playback/sync config in MediaSync

Bug: 18249558
Bug: 19666434
Bug: 20057497
Change-Id: I5868b17423d7c20cfaf4a399f3eb67bfba440605
udioTrack.cpp
MediaPlayer.cpp
ediaplayer.cpp
b61645e06c829d9775b4cbc933eec6f0e7cb3713 01-May-2015 Phil Burk <philburk@google.com> am 5aab9254: AudioTrack: fix build

* commit '5aab9254a5c4f1951c12216a71550ab95b4adeaa':
AudioTrack: fix build
5aab9254a5c4f1951c12216a71550ab95b4adeaa 30-Apr-2015 Phil Burk <philburk@google.com> AudioTrack: fix build

Using format %llu did not work for uint64_t on 64-bit systems!

Change-Id: I727094e460141b9da3e433ceaa95e069dad948bc
Signed-off-by: Phil Burk <philburk@google.com>
udioTrack.cpp
42d9c221bb06c481406fb282265bde4f30e40aef 30-Apr-2015 Phil Burk <philburk@google.com> am dc0ac804: Merge "AudioTrack: fix spurious retrograde messages" into mnc-dev

* commit 'dc0ac804721efff054ec9720d53e93ecca86cf5e':
AudioTrack: fix spurious retrograde messages
dc0ac804721efff054ec9720d53e93ecca86cf5e 30-Apr-2015 Phil Burk <philburk@google.com> Merge "AudioTrack: fix spurious retrograde messages" into mnc-dev
18e28f0d24e704a8d147e34005a38837758988a9 30-Apr-2015 Eric Laurent <elaurent@google.com> am 5f9bf493: Merge "audio policy: session routes continued." into mnc-dev

* commit '5f9bf49397b36ad4ebd838aef66b83e9e9fa42bc':
audio policy: session routes continued.
5f9bf49397b36ad4ebd838aef66b83e9e9fa42bc 30-Apr-2015 Eric Laurent <elaurent@google.com> Merge "audio policy: session routes continued." into mnc-dev
8c7e6dac6f5eb38cef627dab92eac8b38513450c 22-Apr-2015 Eric Laurent <elaurent@google.com> audio policy: session routes continued.

- Clear session routes when client process dies.
- Enforce the route only when the requesting session is active.
- Fix requested route not working if an output mix change is required
(e.g forcing to SPEAKER when the default route is USB or A2DP).
- Make sure all sessions sharing the strategy with a rerouted session
have the same route (needed for volume control consistency)

Change-Id: I0ab347a8fb97e73e2c5965374544c5f4fe509ef1
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioPolicyService.cpp
0b60193059dac3f409640b9a7ae44e99761923a0 30-Apr-2015 Jean-Michel Trivi <jmtrivi@google.com> am d641af3e: Merge "AudioSystem callback for dynamic policy mix activity" into mnc-dev

* commit 'd641af3e9faf6c053ccbeea1bc20790021e57a11':
AudioSystem callback for dynamic policy mix activity
d641af3e9faf6c053ccbeea1bc20790021e57a11 30-Apr-2015 Jean-Michel Trivi <jmtrivi@google.com> Merge "AudioSystem callback for dynamic policy mix activity" into mnc-dev
f613d42b12389335b2ecf06df18d0d095d6bfd44 24-Apr-2015 Jean-Michel Trivi <jmtrivi@google.com> AudioSystem callback for dynamic policy mix activity

Add method to AudioPolicyServiceClient for dynamic policy mix
activity notification.
Propagate notification to a dedicated callback.

Bug 20226914

Change-Id: I37928ed38e15ea2b8fed022cccadeca8c4d6c876
udioPolicy.cpp
udioSystem.cpp
1b42097f38e72574ed853a35f4e8a66e4739c421 22-Apr-2015 Phil Burk <philburk@google.com> AudioTrack: fix spurious retrograde messages

The retrograde motion was confused by some positions coming from
the DSP on offloaded tracks. So the retrograde check was moved up
into AudioTrack.cpp. This allows us to take advantage of the checks
for invalid positions based on timing.

Bug: 2047891
Change-Id: Ifcad2349201443a7f1711347c203297100449536
Signed-off-by: Phil Burk <philburk@google.com>
udioTrack.cpp
5f63ceb4a27ed48df4f4cd4685b45f5608881edd 29-Apr-2015 Dianne Hackborn <hackbod@google.com> am eaa34703: Fix build.

* commit 'eaa34703cb5f1acedb20cbcdff1ab79c11ff6857':
Fix build.
eaa34703cb5f1acedb20cbcdff1ab79c11ff6857 29-Apr-2015 Dianne Hackborn <hackbod@google.com> Fix build.

Change-Id: Ic8ae065dd912cb5ff130e8d78c98fd6bed4e11cc
AudioFlinger.cpp
7cc31f737508b7fd3205b9d8f971bffb71498740 29-Apr-2015 Svet Ganov <svetoslavganov@google.com> am afc750aa: Merge "Respect the record audio app op - media" into mnc-dev

* commit 'afc750aa3ac536067180f9714e34f626f8c981b3':
Respect the record audio app op - media
afc750aa3ac536067180f9714e34f626f8c981b3 29-Apr-2015 Svet Ganov <svetoslavganov@google.com> Merge "Respect the record audio app op - media" into mnc-dev
be71aa29a3c86d2e01cd17839d2a72ab09a1bce5 28-Apr-2015 Svet Ganov <svetoslavganov@google.com> Respect the record audio app op - media

Change-Id: I3a97977b6e9a09355e2008f780d22d480fb7308b
udioEffect.cpp
udioRecord.cpp
AudioFlinger.cpp
MediaPlayerService.cpp
isualizer.cpp
ediarecorder.cpp
f7e5a2e0c597cf2e7206c77a01009c96e6efb69b 29-Apr-2015 Marco Nelissen <marcone@google.com> am 5ca48347: am 67cb6d1c: Merge "Check allocation"

* commit '5ca4834740cb4eb3707eb7c557f42091fbabe006':
Check allocation
67cb6d1c1a1b02ebf411aee6901c42f121b9ef98 29-Apr-2015 Marco Nelissen <marcone@google.com> Merge "Check allocation"
170c73beeaf65e3a5ce8e969a9100c14557961c1 28-Apr-2015 Marco Nelissen <marcone@google.com> Check allocation

Bug: 20222446
Change-Id: I2f366a907886cd65e12a6f260a2ec77af6fb7b41
HDCP.cpp
4c3ba337bacce05165d37f63dfa0b7e845c391e0 28-Apr-2015 Marco Nelissen <marcone@google.com> Check allocation

Bug: 20222446
Change-Id: I2f366a907886cd65e12a6f260a2ec77af6fb7b41
HDCP.cpp
10aa4356e1f7ad38be7207eff735c288e941fe31 28-Apr-2015 Paul McLean <pmclean@google.com> am 466dc8ed: Explicit routing in AudioRecord

* commit '466dc8ed6ca6b7f585104806c48613dd34e608c9':
Explicit routing in AudioRecord
466dc8ed6ca6b7f585104806c48613dd34e608c9 17-Apr-2015 Paul McLean <pmclean@google.com> Explicit routing in AudioRecord

Change-Id: I9cc5d54883a3e5c75d553fabb619fc8e49f4f9e5
udioRecord.cpp
udioSystem.cpp
AudioPolicyService.cpp
36a5c7bae52dc4f5ee1704cd702a6d35135a995b 28-Apr-2015 Chong Zhang <chz@google.com> am dae24729: Merge "HDCP: buffer over flow check" into mnc-dev

* commit 'dae24729d0b3ced8c4a7d7f9b631e852f564db4f':
HDCP: buffer over flow check
580387a47e1e7419d9d9afc1dc2605759650b229 28-Apr-2015 Ronghua Wu <ronghuawu@google.com> am c721e71f: DO NOT MERGE libmedia: add sub resource type audio-codec and video-codec.

* commit 'c721e71f4d7e3cd4fc9332fd55fb6942f54cec39':
DO NOT MERGE libmedia: add sub resource type audio-codec and video-codec.
9c3e9c4ffd385abf12823cd3ffe0ee0bc688af76 28-Apr-2015 Marco Nelissen <marcone@google.com> am 31c81e9e: am b8111f83: Merge "Fix potential double close in IMediaMetadataRetriever::setDataSource"

* commit '31c81e9e4a468a448b387d5c905b4ac5c6a014fc':
Fix potential double close in IMediaMetadataRetriever::setDataSource
dae24729d0b3ced8c4a7d7f9b631e852f564db4f 28-Apr-2015 Chong Zhang <chz@google.com> Merge "HDCP: buffer over flow check" into mnc-dev
532cd7b86a5fdc7b9a30a45d8ae2d16ef7660a72 28-Apr-2015 Chong Zhang <chz@google.com> HDCP: buffer over flow check

bug: 20222489
Change-Id: I3a64a5999d68ea243d187f12ec7717b7f26d93a3
HDCP.cpp
c721e71f4d7e3cd4fc9332fd55fb6942f54cec39 25-Apr-2015 Ronghua Wu <ronghuawu@google.com> DO NOT MERGE libmedia: add sub resource type audio-codec and video-codec.

Bug: 20559813
Change-Id: If231cb44337ca7dc74c39fc3cd73e2b6f3cb85b8
(cherry picked from commit d4c1f6b4ecfef7323422359fc38bd1edb1abf205)
ediaResource.cpp
8f9dd872366f54b6260506c75c3d0cc3f9f73f81 24-Apr-2015 Ronghua Wu <ronghuawu@google.com> mediaresourcemanager: add dumpsys support.

Bug: 20233206
Change-Id: Ic253985e408b05b488e87cd5c50c0d619ac568ef
ResourceManagerClient.cpp
983f2e02b342ef3ac4004471cbfd4cd8d5aecf7d 22-Apr-2015 Ricardo Garcia <rago@google.com> Merge "Use AudioPlaybackRate to hold TimestretchBufferProvider parameters"
5a8a95de6dad1a3bcf3da5a37b35766e89086e13 18-Apr-2015 Ricardo Garcia <rago@google.com> Use AudioPlaybackRate to hold TimestretchBufferProvider parameters

Use this struct to handle the parameters for TimestretchBufferProvider all
across the system.
Add stretch mode and fallback mode to TimestretchBuffer Provider.

Change-Id: I19099924a7003c62e48bb6ead56c785cb129fba2
udioTrack.cpp
udioTrackShared.cpp
59cea2616269f34b1f3d046995efd8da42cd5549 20-Apr-2015 Marco Nelissen <marcone@google.com> Add some sanity checks

Bug: 19400722
Change-Id: Ib3afdf73fd4647eeea5721c61c8b72dbba0647f6
MediaHTTPConnection.cpp
493404d8c396e15ed73455acd39aa0f1940996e2 22-Apr-2015 Eric Laurent <elaurent@google.com> audio policy: fix AudioTrack output device selection

Have AudioTrack::setOutputDevice() set CBLK_INVALID flag instead
of calling restoreTrack_l(). This allows restoreTrack_l() to be called in
a safe context.

Allow device change while the AudioTrack is active by forcing a new
device selection in startOutput() if the output route for this
session was changed.

Remove some warnings.

Change-Id: I2d921a63c9bfa0e122233645e2d6d39f95f5f17d
udioTrack.cpp
55203e2e29428c2c7bd830d731f5e6ed890d9a10 21-Apr-2015 Taiju Tsuiki <tzik@google.com> Fix potential double close in IMediaMetadataRetriever::setDataSource

IMediaMetadataRetriever::setDataSource(fd, offset, length) takes the ownership
of |fd| on the direct invocation, and doesn't take the ownership on invocation
from Binder. This is inconsintent to other similar methods like
IMediaPlayer::setDataSource, and causes potential double close of |fd|.

This CL changes the caller and implementations to leave the ownership to make
them consistent.
Also, fixes a double close in IMediaPlayerService::setDataSource in an error
case.

Change-Id: Id551a1e725c4392b0fe6b7293871212eb101c0a5
MediaMetadataRetriever.cpp
f1063e2659cad01ec334a265c31734c63c319cc4 18-Apr-2015 Lajos Molnar <lajos@google.com> libmedia: fix all warning, make warnings errors, use clang

Change-Id: Ic00d2c5d0bbb1605e96666e25c9ccc22bea6d3ff
ndroid.mk
udioSystem.cpp
udioTrack.cpp
udioTrackShared.cpp
haracterEncodingDetector.cpp
MediaLogService.cpp
ResourceManagerService.cpp
ediaProfiles.cpp
ediaResource.cpp
ediaResourcePolicy.cpp
emoryLeakTrackUtil.cpp
oneGenerator.cpp
9ef830c6dbd4f6000b94abee3df14b9e27a38294 02-Apr-2015 Eric Laurent <elaurent@google.com> DO NOT MERGE - IAudioFlinger: add checks on binder calls

Limit number of ports and patches listed by
LIST_AUDIO_PATCHES and LIST_AUDIO_PORTS.

Also fix typo causing wring pointer to be used when writing to Parcel.

Bug: 19573085.
Change-Id: I41a9c710e45738a4f11990160587856c429a4646
AudioFlinger.cpp
0852843d304006e3ab333081fddda13b07193de8 08-Apr-2015 Robert Shih <robertshih@google.com> stagefright: initial timed id3 support in hls

Change-Id: I00a8a786b3f4b74742c34770edd94e937abe20a8
ediaplayer.cpp
71933d769c54dadb5d8618ccb1ae69a3926f890b 16-Apr-2015 Andy Hung <hunga@google.com> Merge "Work around lack of pitch adjustment in Timestretcher"
c224ec53a17994fa97ab2f29304647c9f195c51c 16-Apr-2015 Chris Watkins <watk@google.com> Merge "Unhide the android.media.[Media]DataSource interface."
26145643ce22d797b3b1675c82c47a2d8c79ecaa 16-Apr-2015 Andy Hung <hunga@google.com> Work around lack of pitch adjustment in Timestretcher

Change-Id: I3e057b97c250a826133248b6aa1ff9ed677d88df
udioTrack.cpp
99f31604136d66ae10e20669fb6b5716f342bde0 20-Mar-2015 Chris Watkins <watk@google.com> Unhide the android.media.[Media]DataSource interface.

This allows apps to implement MediaDataSource, which is modeled on
stagefright's DataSource, to supply media data to the framework. This
was already implemented for MediaExtractor, but it was renamed from
DataSource.

MediaExtractor, MediaPlayer and MediaMetadataRetriever each have a new
overload: #setDataSource(android.media.MediaDataSource)

Only NuPlayer supports this new data source.

The change introduces:
* IDataSource: The binder interface for DataSource.
* JMediaDataSource: The native counterpart to the java interface. It
implements IDataSource.
* CallbackDataSource: A stagefright DataSource that wraps an
IDataSource.

Change-Id: Ib3c944b49cc8a792c8eb9c85e5015c07f298ebc1
ndroid.mk
DataSource.cpp
MediaMetadataRetriever.cpp
MediaPlayer.cpp
ediametadataretriever.cpp
ediaplayer.cpp
554a277d4e42a3d3df3d90ba0e7dfa2d31690e32 10-Apr-2015 Eric Laurent <elaurent@google.com> audio policy: add binder calls for audio source control

Add binder methods to IAudioPolicyService to control activity
of external audio sources (e.g FM tuner).

Change-Id: I2008308a6a996baeae502b68a790d87281efe2ff
udioSystem.cpp
AudioPolicyService.cpp
cfdd52423cee9efea73023feeaa74279ebd45b7c 15-Apr-2015 Jean-Michel Trivi <jmtrivi@google.com> Merge "AudioPolicyManager: notification of dynamic policy mix activity"
de80105c3f2db0eabd47640c49387ea3b44d4782 15-Apr-2015 Jean-Michel Trivi <jmtrivi@google.com> AudioPolicyManager: notification of dynamic policy mix activity

Implement non-stream type specific ref counting in output
descriptors to keep track of mix activity.
Notify audio policy client of mix activity changes.

Bug 20226914

Change-Id: Iec939cb640c58056f88947b611d23b4bb6d8a11b
udioPolicy.cpp
udioSystem.cpp
AudioPolicyServiceClient.cpp
b23cabdb71b98dc5e852f5d06be271696fea92c7 14-Apr-2015 Glenn Kasten <gkasten@google.com> Merge "AudioRecord::obtainBuffer() can return nonContig like AudioTrack"
551b5355d34aa42890811fc3606d3b63429296cd 20-Mar-2015 Glenn Kasten <gkasten@google.com> AudioRecord::obtainBuffer() can return nonContig like AudioTrack

And fix error handling in both AudioRecord and AudioTrack.

Change-Id: I4853d736cc6d2c05de5b18b0eac62716edfa62ec
udioRecord.cpp
udioTrack.cpp
9e6955a19bf77ebf27b770e910efbe1ebf1ceac0 26-Mar-2015 Ronghua Wu <ronghuawu@google.com> media: handle overrides and measure max codec instance.

Bug: 19620911
Change-Id: I68d5919284700f37ccc6c6b9f96cd87ccdd40e6a
MediaCodecList.cpp
ediaCodecInfo.cpp
4c1efbc76f1dfeb9427617e451042a12bfb59ad3 10-Apr-2015 Jeff Tinker <jtinker@google.com> Merge "Add a method to associate MediaDrm session with MediaCrypto"
1849570240443d1f75775c205fa658f7070849c6 10-Apr-2015 Jeff Tinker <jtinker@google.com> Add a method to associate MediaDrm session with MediaCrypto

Previously, to associate a MediaDrm session with MediaCrypto,
the MediaDrm sessionId was passed as initData to the MediaCrypto
constructor. This is not ideal for two reasons: it's pretty
obscure and you can't change the association without tearing
down the MediaCodec/MediaCrypto and starting all over. Use
cases like key rotation require being able to update the
MediaDrm session post-construction. This CL addresses both of
these issues.

bug: 19570317
Change-Id: Ieb32d04d61742fc1dee2105dd904690d44c46c7b
Crypto.cpp
7d014e50b3acd60e73ed7d7a74dc58485c7a413c 10-Apr-2015 Andy Hung <hunga@google.com> Merge "Add playback rate to AudioTrack"
8edb8dc44b8a2f81bdb5db645b6b708548771a31 27-Mar-2015 Andy Hung <hunga@google.com> Add playback rate to AudioTrack

Bug: 19196501
Change-Id: I6411e1d3ce652b711a71a6d9df020cb5f60d4714
udioTrack.cpp
udioTrackShared.cpp
03763a9573fcfdd0f85dd9ac0203e7da525a6c98 09-Apr-2015 Jeff Tinker <jtinker@google.com> Merge "Pass crypto source data using a shared buffer"
c481b5012a5f6cf72e5e93b36f1ed4c9169916f2 07-Apr-2015 Jeff Tinker <jtinker@google.com> Pass crypto source data using a shared buffer

MediaCodec was using a binder transaction buffer
to pass encryption source data for protected content.
On some 4K content, the max binder transaction buffer
size was being exceeded. This change uses a shared
buffer for the encryption source data instead of a
binder transaction buffer, which avoids the problem and
may be more efficient.

bug: 20027687
Change-Id: I36a24ebf600d7e1064b78e48b167fdc29b2c65e9
Crypto.cpp
6770c6faa3467c92eabc5ec9b23d60eb556a0d03 07-Apr-2015 Andy Hung <hunga@google.com> Enable 8 bit and float pcm record formats for AudioFlinger

Update sampling rate handling as well.

Bug: 19570772
Change-Id: I872248e64c0578b2e48869a68fee0d51bd0640c3
udioRecord.cpp
aa9811945f575614b3482d09e4d969792701cebb 21-Mar-2015 Paul McLean <pmclean@google.com> Adding explicit routing API to AudioTrack

Change-Id: I40c048c7644c46f4e4f7103875206c0785c4b1dc
udioSystem.cpp
udioTrack.cpp
AudioPolicyService.cpp
002135d149d8604e972d1b353d768f293fbce15f 03-Apr-2015 Chong Zhang <chz@google.com> Merge "HLS: misc bug fixes"
d47dfcb5a2e5901c96fc92662cec7aa30f7f8843 27-Mar-2015 Chong Zhang <chz@google.com> HLS: misc bug fixes

- fix no target-duration case

- fix for audio-only <=> audio/video switching

- disable audio-only variants if there is at least
one variant with video

- fix mpeg2ts PTS wraparound when bandwidth adapting

- tweak up/down switch marks

bug: 19567254

Change-Id: Ib46144203c56dfc96eccd6ddaa3867e8a4f2c6a9
StreamSource.cpp
f75c2fef14354024ec27bff1444f9e50b5ef55a9 02-Apr-2015 Eric Laurent <elaurent@google.com> IAudioFlinger: add checks on binder calls

Limit number of ports and patches listed by
LIST_AUDIO_PATCHES and LIST_AUDIO_PORTS.

Also fix typo causing wrong pointer to be used when writing to Parcel.

Bug: 19573085.
Change-Id: I41a9c710e45738a4f11990160587856c429a4646
AudioFlinger.cpp
b28753e19550e5051cd02e6af72ab06e4eff04e0 01-Apr-2015 Eric Laurent <elaurent@google.com> audio port: support multiple clients

Add support for more than one audio port callback client per process.

Change-Id: I657c4fc28d5d2d993307551e3e69567dc60196cb
udioSystem.cpp
5cbb5785a58655e21f5f7805274b8c78b986216b 28-Mar-2015 Andy Hung <hunga@google.com> Reject sample rate changes for fast tracks

This is needed for a SoundPool fix.

Bug: 19970735
Change-Id: I46b69e059aabf0d06b16b31ea436bb71f7146750
udioTrack.cpp
82fd850ece75f53110d5c04b49646e5035b8cd24 25-Mar-2015 Eric Laurent <elaurent@google.com> am 414af268: am c42c4b52: am 424324b3: am 2fdd16b3: DO NOT MERGE - audio policy service: fix possible memory overflow

* commit '414af268fbc23e877680e084aeb64a4bed79c0a6':
DO NOT MERGE - audio policy service: fix possible memory overflow
c42c4b526422fada02f3522a08143f738e9e60af 25-Mar-2015 Eric Laurent <elaurent@google.com> am 424324b3: am 2fdd16b3: DO NOT MERGE - audio policy service: fix possible memory overflow

* commit '424324b327cc0b022ff8d10e03158b4594489ee7':
DO NOT MERGE - audio policy service: fix possible memory overflow
2fdd16b3cbe1c1e53d1c4b305f4c0174b995ad1a 06-Feb-2015 Eric Laurent <elaurent@google.com> DO NOT MERGE - audio policy service: fix possible memory overflow

Add limit on number of audio ports and patches requested by
listaudioPorts() and listAudioPatches().

Bug: 19261727.
Change-Id: I21dfdf11cf805734cc3b7b2a85762c5598f60580
(cherry picked from commit 1d670b11313250442455a22f1056ad649d607fb2)
AudioPolicyService.cpp
1147314379fccebdb072cd0c1a246b505839a2b0 24-Mar-2015 Glenn Kasten <gkasten@google.com> Merge "AudioRecord TRANSFER_OBTAIN can be used with FAST flag"
957af4cef721c1eec1606850e77ad2ef1fd0eb0a 24-Mar-2015 Glenn Kasten <gkasten@google.com> Merge "AudioRecord::read() can be non-blocking to match AudioTrack"
82ceac025459b5b8887441d709081ec29c6b9416 24-Mar-2015 Glenn Kasten <gkasten@google.com> Merge "set() in AudioRecord and AudioTracks needs no lock"
ebb80468d8e31e22b867744d86b57bd4bc3186fd 24-Mar-2015 Ronghua Wu <ronghuawu@google.com> Merge "media: add ResourceManagerService"
ec648447b7dcab701c436a54bd38a1abd8037be1 24-Mar-2015 Jeff Tinker <jtinker@google.com> Merge "Report key request message type for unprefixed EME"
231c3d169ad029689f9d688b68179af7e96b8d78 11-Mar-2015 Ronghua Wu <ronghuawu@google.com> media: add ResourceManagerService

Bug: 19620911
Change-Id: Iea173d310d31781bc50effe3d9bd6553cb5139eb
ndroid.mk
ResourceManagerClient.cpp
ResourceManagerService.cpp
ediaResource.cpp
ediaResourcePolicy.cpp
3622cdff65f34a99d2f55936a895387ad41510ce 20-Mar-2015 Glenn Kasten <gkasten@google.com> AudioRecord::read() can be non-blocking to match AudioTrack

Change-Id: I23b9466b81ab6037d0bccd5e6f5974b7bd4aeacb
udioRecord.cpp
bfd318402924414fbde4d31c9d23cc423f10b630 20-Mar-2015 Glenn Kasten <gkasten@google.com> set() in AudioRecord and AudioTracks needs no lock

Change-Id: I9d61b3d117e9b21fbbfad772d8981a5abb8fafae
udioRecord.cpp
udioTrack.cpp
b7fbf7ecc6b034243ec64f79f3113675b5e3c941 18-Mar-2015 Glenn Kasten <gkasten@google.com> AudioRecord TRANSFER_OBTAIN can be used with FAST flag

Change-Id: I001ba1a88150dddf79d99baf5927f31799745eef
udioRecord.cpp
4c36d6f48f4eecacc148317f775f65961a4f03d2 20-Mar-2015 Glenn Kasten <gkasten@google.com> Logging

Move log of latency to where it is first computed.
Log more parameters when a fast track is denied by client.
Log session ID in destructor.
Remove obsolete ALOGV that were for debugging a particular problem.
Log more parameters of set().

Change-Id: I0156bceaf397f2faa053214572c57136705685ee
udioRecord.cpp
udioTrack.cpp
4408d8ab70d3385ac043d0f9a210a971c3a570c2 23-Mar-2015 Andy Hung <hunga@google.com> Merge "Fix position when restoring streaming audio track"
138d6f9b0b77d94773a8a29d3c5bdb78f38ee142 20-Mar-2015 Glenn Kasten <gkasten@google.com> Update AudioTrack code to match AudioRecord

session ID check
buffer error code check

Change-Id: I092a61adfd249122f9127dceedf67c0a3bdcfe7b
udioTrack.cpp
5014c94c1bbac4a4284576b0015ba75145237593 20-Mar-2015 Glenn Kasten <gkasten@google.com> AudioRecord::releaseBuffer() buffer is const *, like AudioTrack

Change-Id: If09689a8411392281ad06fcf781f3198941c642d
udioRecord.cpp
32860f77787f41abac08afdfc2592272ccc31bcb 20-Mar-2015 Glenn Kasten <gkasten@google.com> Deprecate AudioRecord::getInput() and AudioTrack::getOutput()

Does not completely fix the bug, but is a step in the right direction.

Bug: 12593118
Change-Id: Id591cd700ab58fd927ae44c71c81dac55b5cac2d
udioRecord.cpp
40bc906252974d0b389ae4a147232d0c9a97193f 20-Mar-2015 Glenn Kasten <gkasten@google.com> namespace does not need a closing semicolon

Change-Id: Ie8f9d42fc061f6d558f23b98414e04eb3d14b376
udioEffect.cpp
udioParameter.cpp
udioPolicy.cpp
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
AudioFlingerClient.cpp
AudioPolicyService.cpp
AudioPolicyServiceClient.cpp
AudioRecord.cpp
AudioTrack.cpp
DrmClient.cpp
Effect.cpp
EffectClient.cpp
MediaCodecList.cpp
MediaDeathNotifier.cpp
MediaLogService.cpp
MediaMetadataRetriever.cpp
MediaPlayer.cpp
MediaPlayerClient.cpp
MediaPlayerService.cpp
MediaRecorder.cpp
MediaRecorderClient.cpp
RemoteDisplay.cpp
RemoteDisplayClient.cpp
tringArray.cpp
isualizer.cpp
ediametadataretriever.cpp
ediaplayer.cpp
ediarecorder.cpp
ae4b879d04c4b07c62241a8f507c8dce11e628e4 20-Mar-2015 Glenn Kasten <gkasten@google.com> Declare and initialize in one statement

Change-Id: Ie8593692907e67558f9d7654c9a4bf8cbce99bd8
udioRecord.cpp
udioTrack.cpp
d2027336b45f524a196403d351ec317782793792 20-Mar-2015 Glenn Kasten <gkasten@google.com> Whitespace

Change-Id: I4640be948ad3caff0eb7525991398a1353e4bfe6
MediaHTTPConnection.cpp
MediaHTTPService.cpp
17ea1351633d4f5e4f9eafd0778eb8b59fa30f10 20-Mar-2015 Glenn Kasten <gkasten@google.com> Update AudioRecord comments to match AudioTrack

Change-Id: I6c3620c60c0ba159e4688b42de4ec8b91920e048
udioRecord.cpp
7ccdaad38054474b1d84b7c37ceffd98e9df354d 20-Mar-2015 Andy Hung <hunga@google.com> Fix position when restoring streaming audio track

Bug: 19802225
Change-Id: I19ca7836bc89627f6cead4961641b94c6b27b5f6
udioTrack.cpp
803b3e558022c6d0eb069308339dc84e6e8035dc 19-Mar-2015 Andy Hung <hunga@google.com> Event driven wake for AudioRecordThread notification changes

Used for setMarkerPosition and setPositionUpdatePeriod.

Change-Id: Iedd1be8725dea32bdba6908b78c5166780a66fec
udioRecord.cpp
377165c24968b044faccaf366a2377fa32143e2f 17-Mar-2015 Andy Hung <hunga@google.com> Merge "Fix periodic notification timing error for AudioRecord"
d072c909d87f8150433860f6de4c11df6e09e2f9 16-Mar-2015 Jeff Tinker <jtinker@google.com> Report key request message type for unprefixed EME

bug: 19771299
Change-Id: I02f0a4532b5ea8a7e680d71f45ac0da06879f3d6
Drm.cpp
f59497bd3c190e087202043de5450ef06e92b27d 27-Jan-2015 Glenn Kasten <gkasten@google.com> Update comments

Change-Id: I37d3c4ce22b74fe8581a886fe5a7f9fef8266dad
udioTrackShared.cpp
fb7df2c355aad453f1978207e4116b2d4a61f34b 13-Mar-2015 Andy Hung <hunga@google.com> Fix periodic notification timing error for AudioRecord

Change-Id: I768d8a30c6845372ad7c306ed1bc0ec030ae1804
udioRecord.cpp
c6bd5db9d9cf4bba1649b5b7ddea2d23f5de23a9 10-Mar-2015 Eric Laurent <elaurent@google.com> fix flush on HW A/V sync tracks

Fix mismatch between track flags on client and server side
when HW A/V sync is requested.

The audio track was connected to a direct output by the audio policy
manager but the client failed to set the direct flag when creating
the track resulting in the direct flag not being set in audio flinger.

Bug: 19665934.
Change-Id: I0a5257b20bf76c9c4d89bc2ad9b44777b81f13bf
udioTrack.cpp
1dfe2f9c2d03fc8d0ed0cdfe0b9fb894bc0bcc11 09-Mar-2015 Glenn Kasten <gkasten@google.com> Allow TRANSFER_OBTAIN to be used for fast tracks

Change-Id: I8fa20c26f076567b38210af4a680fe1cb2eacee4
udioTrack.cpp
b46f394a85d704dd05287cf9bb77cf86e3c02a38 09-Mar-2015 Glenn Kasten <gkasten@google.com> AudioTrack::obtainBuffer() now returns number of non-contiguous frames

Change-Id: I1f61d7e3d057c3254babe456b4aa0f6a1809da55
udioTrack.cpp
54a8a456c2b4b382b3ffe3d99e40703df79c0717 09-Mar-2015 Glenn Kasten <gkasten@google.com> AudioTrack::releaseBuffer parameter is const *

Change-Id: I31ac20863107de05b83cd7f8cd7dd61bed98e456
udioTrack.cpp
3f02be2ceeaa4b67dc0b1a81aebcfa049276fad8 09-Mar-2015 Glenn Kasten <gkasten@google.com> AudioTrack obtain/release buffer comments

Change-Id: I0eb178d1ab4eea7f72f4c55852c19b216ca55f5f
udioTrack.cpp
d4bd93b22ab9f7dfa32dfc6d48e008db3ea9c634 28-Feb-2015 Andy Hung <hunga@google.com> Merge "Change AudioTrack resampling buffers from 3 to 2"
9816016afb2a13c6a866cd047d57020566a8b9a9 05-Feb-2015 Wei Jia <wjia@google.com> mediaplayer: support dynamic playback rate

Bug: 19196501

Change-Id: I856b1507d5fa2cedfb645706d2435683a7d3e050
MediaPlayer.cpp
ediaplayer.cpp
0e48d25606c82def035ad10a5b3923767a765cdd 26-Jan-2015 Andy Hung <hunga@google.com> Change AudioTrack resampling buffers from 3 to 2

Move computation of minimum AudioTrack buffer size to server
for normal streaming PCM tracks.

Use server-side computation to exactly determine requirements
for the resampler to avoid triple buffering.

This reduces latency for normal audio tracks that require resampling,
and makes things consistent with the minimum buffer size.

Change-Id: I2f2ca0e599ee20e16559bc5c5dab61ed100da16c
udioTrack.cpp
1d670b11313250442455a22f1056ad649d607fb2 06-Feb-2015 Eric Laurent <elaurent@google.com> audio policy service: fix possible memory overflow

Add limit on number of audio ports and patches requested by
listaudioPorts() and listAudioPatches().

Bug: 19261727.
Change-Id: I21dfdf11cf805734cc3b7b2a85762c5598f60580
AudioPolicyService.cpp
e743a47f445f02a0612018fa5640301304844fbf 28-Jan-2015 Paul McLean <pmclean@google.com> Add additional info to AudioPort for enum/selection API.

Add "device name" member to AudioPort.
Moved unique device ID from DevicePort to AudioPort.
Straighten out confusion between "name" and "address"
Created string constants for Intent "extra" data keys.
Combine card/address data into "address" at sender.Add additional info to AudioPort for enum/selection API.

Change-Id: I1be308e12b09cd0ead9a3e9fbc9c385462299fb5
udioSystem.cpp
AudioPolicyService.cpp
875cfd20f41b6e405f75fe4a9f9e848d63a67e28 29-Jan-2015 Marco Nelissen <marcone@google.com> am 183a0e52: am 5bcdfac9: am 2a6e5cf4: Merge "Fix uninitialized variable."

* commit '183a0e52ac3130501c417005f6363eeec62c0afd':
Fix uninitialized variable.
183a0e52ac3130501c417005f6363eeec62c0afd 29-Jan-2015 Marco Nelissen <marcone@google.com> am 5bcdfac9: am 2a6e5cf4: Merge "Fix uninitialized variable."

* commit '5bcdfac94a07c55ce021879d733749775d2d8880':
Fix uninitialized variable.
2a6e5cf4e8b39e3b0b540d3cf49568c61e9d67cd 29-Jan-2015 Marco Nelissen <marcone@google.com> Merge "Fix uninitialized variable."
13b97d6ece762cd96a7c3d3e3d60583104d1c0bc 29-Jan-2015 Marco Nelissen <marcone@google.com> Fix uninitialized variable.

Bug: 19020118
Change-Id: I0aceadfec6652d468a5a5d9eb5dcbf0845757ffa
idiIoWrapper.cpp
f26334cf7d60060e0e33b037dd9504c81b2e10eb 29-Jan-2015 Elliott Hughes <enh@google.com> am 6a0fbc68: am a3c9d5c3: am 166776fb: Merge "Add missing includes."

* commit '6a0fbc68e203058e3b7d62e95d46f2415bc3ed95':
Add missing includes.
6a0fbc68e203058e3b7d62e95d46f2415bc3ed95 29-Jan-2015 Elliott Hughes <enh@google.com> am a3c9d5c3: am 166776fb: Merge "Add missing includes."

* commit 'a3c9d5c3982591042c7c6cb5fb7c32fbd4765832':
Add missing includes.
9d014d04bd1e26b68ea979885ccbc6f131a7eda3 29-Jan-2015 Elliott Hughes <enh@google.com> Add missing includes.

Change-Id: Ib697ce44243e7cb07aee60944238e0854d82e9de
emoryLeakTrackUtil.cpp
3e68c081d905e3164e11797287484beb68747ab5 28-Jan-2015 Brian Carlstrom <bdc@google.com> am 88d74d20: Add missing AudioPolicy.cpp to Android.mk

* commit '88d74d203cda0ee6da387f3a5b929934b505d307':
Add missing AudioPolicy.cpp to Android.mk
980b106908cb8e105bb8849749722c5088e2f6eb 28-Jan-2015 Marco Nelissen <marcone@google.com> resolved conflicts for merge of 9391844d to master

Change-Id: I348a71d1b3e3238bc3871a69454edc8247d03111
88d74d203cda0ee6da387f3a5b929934b505d307 27-Jan-2015 Brian Carlstrom <bdc@google.com> Add missing AudioPolicy.cpp to Android.mk

Change-Id: Iddafc39affe1082dc437f863b35d82790eca550d
ndroid.mk
9391844deb3f6a442745cea62f78aca2cea19e50 27-Jan-2015 Marco Nelissen <marcone@google.com> resolved conflicts for merge of b955b722 to lmp-mr1-dev-plus-aosp

Change-Id: I385371869169eee4fe6330ffe0abc5eda4cb4f72
b7848f1c442bc8c71020957948d1b003a62a25b7 04-Dec-2014 Marco Nelissen <marcone@google.com> Remove MediaPlayerService::decode()

and make SoundPool use MediaCodec for decoding files to PCM.

Bug: 18239054
Change-Id: Ia144fc1bbb0d2787638ee972e2224339b4965310
ndroid.mk
MediaPlayerService.cpp
oundPool.cpp
oundPoolThread.cpp
oundPoolThread.h
ediaplayer.cpp
dda683a2ccb84ccc840b76e2ced10052f65ce43e 15-Jan-2015 Andy Hung <hunga@google.com> Merge "Allow AUDIO_FORMAT_PCM_8_BIT AudioTrack buffers"
dafbdeeb75856965de07aa64c405b518e9cdf373 14-Jan-2015 Andy Hung <hunga@google.com> Merge "Fix cumulative error in setPositionNotificationPeriod"
abdb990953ffe94a9dc544aea0bed17ef7d5f484 13-Jan-2015 Andy Hung <hunga@google.com> Allow AUDIO_FORMAT_PCM_8_BIT AudioTrack buffers

Previously conversion to AUDIO_FORMAT_PCM_16_BIT was required.
Client shared memory for static tracks and AudioFlinger track creation
and buffer delivery now use native 8 bit PCM data.

Change-Id: I485c07a4971fde9a25442bd43fed95019d39abcc
udioTrack.cpp
17c933cc07be9656aee8afc82dc866a67b3fd78e 14-Jan-2015 Marco Nelissen <marcone@google.com> am cec272df: am 724b9ea5: Merge "Replace MidiFile player with a Midi extractor"

* commit 'cec272dfe2cf6bf6cdb8a4afa5afdd0e910c915f':
Replace MidiFile player with a Midi extractor
a18eb9ea913e2cd19df9fe0f1b2a667339006581 12-Jan-2015 Glenn Kasten <gkasten@google.com> Merge "Move roundup from frameworks/av to system/media"
8840754c5bc44c7e11ed5e9acc15e9569f5814c5 08-Jan-2015 Marco Nelissen <marcone@google.com> resolved conflicts for merge of 2702d5a0 to lmp-mr1-dev-plus-aosp

Change-Id: Ic9841f0a66930f57a5ebea527c6a841d7c49cccf
0e8928bf4f2b01b783f6da97d15e8f1abb0fd7d7 08-Jan-2015 Marco Nelissen <marcone@google.com> Replace MidiFile player with a Midi extractor

This gets rids of a bunch of special midi handling and replaces it
with an extractor that works with NuPlayer and MediaMetadataRetriever.

Change-Id: I8d0f5bbdde2ca24267cf4d62ab26afe9630e0217
idiIoWrapper.cpp
bc11e713063f3f96f98256abc81c0d8ee1ddb312 08-Jan-2015 Marco Nelissen <marcone@google.com> Use callbacks for Midi I/O

Instead of having the Sonivox engine directly open the file and
use stdio to read from it, use caller-provided callbacks.

Change-Id: Ie55129109060a4a7862fee3177f994401e00b6c1
ndroid.mk
etPlayer.cpp
idiIoWrapper.cpp
2d85f097d653b21d1ff2c34f0b732c674d20ccc2 07-Jan-2015 Andy Hung <hunga@google.com> Fix cumulative error in setPositionNotificationPeriod

Time for AudioTrackThread sleep due to periodic notification
needs to be computed from actual position.
External reported AOSP issue 65807.

Change-Id: Ic46b64588e6c5803afcd8252cde8837eb3fbf6ff
udioTrack.cpp
2326ed104477a80c850eb3cef6a7039f1585a69d 08-Jan-2015 Andy Hung <hunga@google.com> Merge "Event driven wake for AudioTrackThread notification changes"
bb67a2e8942620240531b5d157d376fa3fa049af 08-Jan-2015 Andy Hung <hunga@google.com> Merge "Improve AudioTrack EVENT_LOOP_END and EVENT_BUFFER_END accuracy"
e391ddcb924af7f17978c0103f76a19f445ead40 07-Jan-2015 Andy Hung <hunga@google.com> Merge "Fix loop and position restoration in static AudioTracks"
e6910780274fb818f1432d10672af4b813c2bc59 07-Jan-2015 Andy Hung <hunga@google.com> Merge "Fix loop and position setting in static AudioTracks"
53dbe77b9f50cdd0de88b9d25dd643e90c8ba68b 06-Jan-2015 Glenn Kasten <gkasten@google.com> Move roundup from frameworks/av to system/media

Change-Id: I1083ab739e445e5bd3e3082fc1d3a20cc19601d5
ndroid.mk
65b13a59775ac0b4b5d59d9cd78e0c9914790426 07-Jan-2015 Eric Laurent <elaurent@google.com> am bb2e3e9d: am fb5d35c0: am 7ae3dfab: Merge "fix record from default input source" into lmp-mr1-dev

* commit 'bb2e3e9d05e3760cfcf3cc63c10e7e8336e63a06':
fix record from default input source
bb2e3e9d05e3760cfcf3cc63c10e7e8336e63a06 07-Jan-2015 Eric Laurent <elaurent@google.com> am fb5d35c0: am 7ae3dfab: Merge "fix record from default input source" into lmp-mr1-dev

* commit 'fb5d35c00d1c4d672d245b6820551808617eba46':
fix record from default input source
3c09c78aabcb9d314dfb400258fb99a37c7b50c9 30-Dec-2014 Andy Hung <hunga@google.com> Event driven wake for AudioTrackThread notification changes

Used for setMarkerPosition and setPositionUpdatePeriod.

Change-Id: I0d94b929438a5cd94b295d7c1884f876fae8b5e7
udioTrack.cpp
ocs/paused.dot
53c3b5fc1afe162a8669cb3d27d6bb14e1847e39 16-Dec-2014 Andy Hung <hunga@google.com> Improve AudioTrack EVENT_LOOP_END and EVENT_BUFFER_END accuracy

Fix timing computation to consider current position.
Fix EVENT_LOOP_END count accuracy (some could be dropped before)
for non-infinite loop static AudioTracks.

Change-Id: I255f692915b55ab6f08ccd6a2365fee3f5d0a4fe
udioTrack.cpp
4ede21d9c1f957baf5e561849ff9bbe4bcbefc20 13-Dec-2014 Andy Hung <hunga@google.com> Fix loop and position restoration in static AudioTracks

Allow restoration of loop and position.
Make position and loop synchronously readable.

Bug: 17964637
Change-Id: I8cfb5036e665f55fdff5c67d27e1363ce9a8665d
udioTrack.cpp
udioTrackShared.cpp
efbe92ef50b115e13034a80a16967b53cda7e4e1 13-Dec-2014 Andy Hung <hunga@google.com> SoundPool: Do not stop AudioTrack on EVENT_NEW_IAUDIOTRACK

Bug: 17964637
Change-Id: I2865959e476bee2f6e1a7344d9464b083cee88d2
oundPool.cpp
c447ded04f11169e9b96b31cd196b2c4ffa9f31c 06-Jan-2015 Eric Laurent <elaurent@google.com> fix record from default input source

Commit caf7f48a0e broke capture from default
input source on some devices: the input source is now specified as part of
the audio attributes and the default source was not remapped to mic source.

Bug: 18736417.
Change-Id: I3f5da33cdb56f959aaef68ed1952342babc63aa0
udioRecord.cpp
9b4615887c23548438fd0d8e3d8f04ac21912850 02-Dec-2014 Andy Hung <hunga@google.com> Fix loop and position setting in static AudioTracks

Allow independent setting of position and loop.

Bug: 17964637
Change-Id: I8b3bd97a244b932728b68da7684044f2636984a5
udioTrack.cpp
udioTrackShared.cpp
7e7f3ce6b5e6cafc8187b4c62c3d78cd6064f421 05-Jan-2015 Narayan Kamath <narayan@google.com> am 991aa3a7: am bef17542: am 5c97c4e1: Merge "Remove hardcoded ICU & OpenSSL include paths."

* commit '991aa3a70b26c7d9c93361394a43a95355c1c26e':
Remove hardcoded ICU & OpenSSL include paths.
991aa3a70b26c7d9c93361394a43a95355c1c26e 05-Jan-2015 Narayan Kamath <narayan@google.com> am bef17542: am 5c97c4e1: Merge "Remove hardcoded ICU & OpenSSL include paths."

* commit 'bef17542c7e0563c6004463b1ede18a404a17c89':
Remove hardcoded ICU & OpenSSL include paths.
f84f7c527427b521fd833210c23008ae3a7c09b8 05-Jan-2015 Narayan Kamath <narayan@google.com> Remove hardcoded ICU & OpenSSL include paths.

They're exported using LOCAL_EXPORT_C_INCLUDE_DIRS.

bug: 18581021
Change-Id: I9593422b9eddb8203bee88d60e31a03b4a5f976b
ndroid.mk
c52fb038dc91712fc5159226006e03ce59b21b9a 03-Jan-2015 Glenn Kasten <gkasten@google.com> Cleanup annoying whitespace that causes red markers

Change-Id: I0b1be110b0e0a9606d272c4d023f40ff93522725
tringArray.cpp
49d44ef14da70f3159cf7908cab58c32ed3dbf26 31-Dec-2014 Glenn Kasten <gkasten@google.com> Merge "Flowchart for handling of AudioTrack client paused"
3957ebaefc10eebdd24f204918fc0f864abed63f 31-Dec-2014 Glenn Kasten <gkasten@google.com> Flowchart for handling of AudioTrack client paused

Change-Id: I6fde6ea257684deaf5f92e97ee7c500192e7d8ca
ocs/Makefile
ocs/paused.dot
b187de1ada34a9023c05d020a4592686ba761278 30-Dec-2014 Glenn Kasten <gkasten@google.com> Line length 100

Change-Id: I6c8fe626a3825fa9e139319656d682a57b887c97
udioSystem.cpp
udioTrackShared.cpp
MediaRecorder.cpp
etPlayer.cpp
ediaProfiles.cpp
ediaplayer.cpp
486a7135593b4b40c067e9b06f393577abfef482 23-Dec-2014 Andy Hung <hunga@google.com> Fix 64 bit compiler warnings in AudioTrackShared

Comparisons between size_t and int64_t variables show
warnings for 64 bit compilation, fix with casting.

Change-Id: I3c1b12ea6eca01e49696c724a1cf1cc6b88df7aa
udioTrackShared.cpp
54bf12b85e666417957231dc06db200c6f140253 22-Dec-2014 Marco Nelissen <marcone@google.com> am af318e28: am 0b87c0d9: am bd08223c: Merge "Fix double close."

* commit 'af318e2882e0b8b1a594f079eb3d10b2daa3ff7e':
Fix double close.
af318e2882e0b8b1a594f079eb3d10b2daa3ff7e 22-Dec-2014 Marco Nelissen <marcone@google.com> am 0b87c0d9: am bd08223c: Merge "Fix double close."

* commit '0b87c0d9e074384d05e6563c1b1cf5dbd5246436':
Fix double close.
bd08223c450a7a2e8e8d79e6be148ed1ac64caa3 22-Dec-2014 Marco Nelissen <marcone@google.com> Merge "Fix double close."
84d8cf472c6f5b80f62c4eff8de0589b4b2fee74 22-Dec-2014 Andy Hung <hunga@google.com> Merge "Remove explicit instantiation of SingleStateQueue"
9b82924cbd203f1678c2f78aa73b15909efa3e81 13-Dec-2014 Andy Hung <hunga@google.com> Remove explicit instantiation of SingleStateQueue

Refactoring now possible due to changes in the Android
atomic include.

Change-Id: Ia0094d322d9ad3d8c186307306821376ca8002c4
ndroid.mk
ingleStateQueue.cpp
ingleStateQueueInstantiations.cpp
faf4efc6a41e88adf85f76f48f020a6d681f5ff1 17-Dec-2014 Marco Nelissen <marcone@google.com> Replace MidiFile player with a Midi extractor

This gets rids of a bunch of special midi handling and replaces it
with an extractor that works with NuPlayer and MediaMetadataRetriever.

Change-Id: I8d0f5bbdde2ca24267cf4d62ab26afe9630e0217
idiIoWrapper.cpp
23c8dc13787186dc98731055858b2fba3aedc105 17-Dec-2014 Eric Laurent <elaurent@google.com> am 85aca658: am d33712d7: am 145cf5d8: Merge "audioflinger: implement pause/resume for direct outputs" into lmp-mr1-dev

* commit '85aca658ac7d20584b0647427256df50a5f243ef':
audioflinger: implement pause/resume for direct outputs
85aca658ac7d20584b0647427256df50a5f243ef 17-Dec-2014 Eric Laurent <elaurent@google.com> am d33712d7: am 145cf5d8: Merge "audioflinger: implement pause/resume for direct outputs" into lmp-mr1-dev

* commit 'd33712d7ec5dcf427cc0be9b7d2ca1c99823c8e6':
audioflinger: implement pause/resume for direct outputs
08b9e2d113213c37506a416bc95a36789bcab4ca 16-Dec-2014 Marco Nelissen <marcone@google.com> Use callbacks for Midi I/O

Instead of having the Sonivox engine directly open the file and
use stdio to read from it, use caller-provided callbacks.

Change-Id: I4d775c8458c48c591a15794c4517e006dcf034e1
ndroid.mk
etPlayer.cpp
idiIoWrapper.cpp
d1f69b0b17acbd96987ecb2f3378abd394d05903 15-Dec-2014 Eric Laurent <elaurent@google.com> audioflinger: implement pause/resume for direct outputs

Extend pause/resume support to direct output threads
(was only for offload threads).

If the HAL implements pause/resume, track pause/resume is forwarded to
the HAL.

Pause, flush, resume sequence is respected by executing the HAL
calls in the playback thread (same as offload).

Make sure the track flags on client side are consistent with the
flags on server side.

Bug: 17883772.
Change-Id: I89b360d69818f7a9204bd36e3ec63a79e106ecf1
udioTrack.cpp
e7fdebaf1f8993df076ea2ae84999bc62da3005b 10-Dec-2014 Glenn Kasten <gkasten@google.com> am 66b17e9d: Merge commit \'f5a968a0\' into mm

* commit '66b17e9dfe114ae968bfb2f8ad8325527e373c65':
audio policy: binder calls for dynamic audio policy mixes
b67eb5856203e9869aa1e5b5a13c1eff62790335 10-Dec-2014 Eric Laurent <elaurent@google.com> am b279f5ad: am c49d9cda: am 2dda40d6: Merge "audio policy: add support for custom mixes" into lmp-mr1-dev

* commit 'b279f5adfa2fd6f22c87b3a7106fbb62a0b9a5d2':
audio policy: add support for custom mixes
66b17e9dfe114ae968bfb2f8ad8325527e373c65 10-Dec-2014 Glenn Kasten <gkasten@google.com> Merge commit 'f5a968a0' into mm

Change-Id: Ifd30546c11def40ad483f27c9d7baa4008fcbac3
b279f5adfa2fd6f22c87b3a7106fbb62a0b9a5d2 10-Dec-2014 Eric Laurent <elaurent@google.com> am c49d9cda: am 2dda40d6: Merge "audio policy: add support for custom mixes" into lmp-mr1-dev

* commit 'c49d9cda49dab8b7dd0376cf56476b3e1895d5c6':
audio policy: add support for custom mixes
c6ac859f5a82ea8642bc6351a45508a15f224f32 08-Dec-2014 Marco Nelissen <marcone@google.com> Remove filename based writer constructors

MediaPlayerService can't open files (it needs an already opened
file descriptor), so these were just wasting space.

Change-Id: I323044a6c1814a7bff952ed71b5c7792df2abf03
MediaRecorder.cpp
ediarecorder.cpp
baac183f3808d7b68f184647a97bd381620415fe 02-Dec-2014 Eric Laurent <elaurent@google.com> audio policy: binder calls for dynamic audio policy mixes

Add binder calls to register and unregister dynamic mixes
to AudioPolicyManager.

Bug: 16009464.

Change-Id: I4ef38166d0cfc88c984970969380d0cd6eb083ac
udioSystem.cpp
AudioPolicyService.cpp
275e8e9de2e11b4b344f5a201f1f0e51fda02d9c 01-Dec-2014 Eric Laurent <elaurent@google.com> audio policy: add support for custom mixes

Add support for custom mixes in AudioPolicyManager.

Two methods are added to register or unregister a list of custom mixes
with their attributes and format.

getOutputForAttr() and getInputForAttr() first look for a match in
registered mixes before defaulting to normal output/input selection

Remote submix device connection disconnection now takes address into
account to identify the correspnoding custom mix.

Bug: 16009464.

Change-Id: I3f1c2a485a0fb71b1f984ed0adc9b68aa971e408
ndroid.mk
udioPolicy.cpp
udioTrack.cpp
9574b6440b47a2c79fcfdf54a7ec3dd24dd88ef0 09-Dec-2014 zunkyu.lee <zunkyu.lee@lge.com> am c1b0d49c: am 82a69ea8: Prevent ANR when AudioTrack is paused or re-routed

* commit 'c1b0d49cacde26c2420528169d157d2c778a9b0d':
Prevent ANR when AudioTrack is paused or re-routed
82a69ea8b090d57bff5e02774688b546a711bbb8 07-Nov-2014 zunkyu.lee <zunkyu.lee@lge.com> Prevent ANR when AudioTrack is paused or re-routed

If ClientProxy was interrupted by AudioTrack::pause() just before futex syscall() in obtainBuffer() was called,
It will not call releaseBuffer to wake up AudioTrackThread.
It puts the AudioTrackThread to sleep and then a deadlock occurs.

In this case, CBLK_INTERRUPT flags can't prevent a deadlock,
so this patch set mFutex to FUTEX_WAKE during interrupt() to avoid deadlock.

A similar problem could occur due to re-route or recovery after mediaserver death.

Bug: 18641665
Change-Id: I66fcae43af9a91eb55f6cdb52c644ee6c0999772
udioTrackShared.cpp
56335ae2978765e3bbc510468d4812b691545d04 09-Dec-2014 Glenn Kasten <gkasten@android.com> Merge "Prevent ANR when AudioTrack is paused or re-routed"
a78e10495c51d09f92db9c33d34dcc7cd7f28511 07-Nov-2014 zunkyu.lee <zunkyu.lee@lge.com> Prevent ANR when AudioTrack is paused or re-routed

If ClientProxy was interrupted by AudioTrack::pause() just before futex syscall() in obtainBuffer() was called,
It will not call releaseBuffer to wake up AudioTrackThread.
It puts the AudioTrackThread to sleep and then a deadlock occurs.

In this case, CBLK_INTERRUPT flags can't prevent a deadlock,
so this patch set mFutex to FUTEX_WAKE during interrupt() to avoid deadlock.

A similar problem could occur due to re-route or recovery after mediaserver death.

Bug: 18641665
Change-Id: I66fcae43af9a91eb55f6cdb52c644ee6c0999772
udioTrackShared.cpp
be837c328ae1ea2b193d05aaa3d4214c263b5b77 22-Nov-2014 seunghak.han <seunghak.han@lge.com> Track volume should be maintained even if track is restored

If track is restored when it set its volume to a non-unity value (such as mute),
the volume was forced to unity again. Now, the previous volume is restored.

Bug: 18570664
Change-Id: I79f34c6c7d6f535baba813fd3b8ba8e55cac8ad7
udioTrack.cpp
aef46aa8eff1f975ae5253a334cf0c978427ca86 02-Dec-2014 Glenn Kasten <gkasten@android.com> am bde85d05: am 5458756a: Merge "Track volume should be maintained even if track is restored"

* commit 'bde85d05414cdd3888071635dd05e9ff78679d5e':
Track volume should be maintained even if track is restored
e6a9d65845032644b0865b6e3d0b5a820f35d9e4 22-Nov-2014 seunghak.han <seunghak.han@lge.com> Track volume should be maintained even if track is restored

If track is restored when it set its volume to a non-unity value (such as mute),
the volume was forced to unity again. Now, the previous volume is restored.

Bug: 18570664
Change-Id: I79f34c6c7d6f535baba813fd3b8ba8e55cac8ad7
udioTrack.cpp
61280541836947ce0b281b240ffa4c55bbf5bd55 27-Nov-2014 Eric Laurent <elaurent@google.com> am 390ef843: am f20c4356: Merge "AudioRecord: use audio attributes instead of audio source." into lmp-mr1-dev

* commit '390ef84373b7edd1397381f780ca235326357094':
AudioRecord: use audio attributes instead of audio source.
121143d5242a790d0bd01fe1b9cec5d28a1ba1d7 26-Nov-2014 Eric Laurent <elaurent@google.com> am bf14c62e: am 72bf901c: Merge "audio policy: new getOutputForAttr() prototype." into lmp-mr1-dev

* commit 'bf14c62e7973ed793a3b00c2c67beca4484c1c7a':
audio policy: new getOutputForAttr() prototype.
0e47b16ffcf78acb81b0ebf14d058db191f74af0 26-Nov-2014 Andy Hung <hunga@google.com> am 1e18795a: am d325005e: Merge "Fix AudioTrack loop mode to play audio from buffer start" into lmp-mr1-dev

* commit '1e18795a4847e9368baa7ecee146d3901b283cd0':
Fix AudioTrack loop mode to play audio from buffer start
72215491c60fbcdb9a2f0be782e24e39cca249c5 26-Nov-2014 Eric Laurent <elaurent@google.com> am 1a475921: am 223fd5c9: audio: new routing strategies and stream types

* commit '1a475921c0577a4650d1bbe40a85b732d1766939':
audio: new routing strategies and stream types
caf7f48a0ef558689d39aafd187c1571ff4128b4 26-Nov-2014 Eric Laurent <elaurent@google.com> AudioRecord: use audio attributes instead of audio source.

Added AudioRecord constructor with audio attributes.
Replaced AudioPolicymanager::getInput() by getInputForAttr().

No new functionality for now.

Also:

- Fixed warnings in AudioPolicyManager
- Allocate audio session ID before calling getOutputForAttr() in
AudioTrack.

Bug: 16006090.
Change-Id: I15df21e4411db688e3096dd801cf579d76d81711
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioPolicyService.cpp
72bf901ca905ce154fe7866f06d25a01aadcf974 26-Nov-2014 Eric Laurent <elaurent@google.com> Merge "audio policy: new getOutputForAttr() prototype." into lmp-mr1-dev
d325005e4a3be45c57e950f8c18b329c968602ce 26-Nov-2014 Andy Hung <hunga@google.com> Merge "Fix AudioTrack loop mode to play audio from buffer start" into lmp-mr1-dev
e83b55dc29ca16092ba02f36f55fa6e0e37fd78c 14-Nov-2014 Eric Laurent <elaurent@google.com> audio policy: new getOutputForAttr() prototype.

Update getOutputForAttr() prototype and group all logic
dealing with audio attributes to stream type conversion in
audio policy manager.

getOutputForAttr():
- specifies the audio session (for future use)
- returns a status code
- receives either stream type (for legacy) or audio attributes
- returns an updated streamtype

Remove logic dealing with legacy stream types to attributes conversion
from AudioTrack.

Use correct type for audio sessions in other APIs (startOutput() ...).

releaseOutput() specifies the audio session (for future use).

Bug: 18067208.

Change-Id: I1bfbe9626c04c7955d77f8a70aecfad2cb204817
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioPolicyService.cpp
680b795435a5a501a56610258dce5eda40a1725d 12-Nov-2014 Andy Hung <hunga@google.com> Fix AudioTrack loop mode to play audio from buffer start

Bug: 18217633
Change-Id: Ica77acf0a32832d9b04eb657ef2f4f5329f8fbda
udioTrack.cpp
udioTrackShared.cpp
223fd5c9738e9665e495904d37d4632414b68c1e 11-Nov-2014 Eric Laurent <elaurent@google.com> audio: new routing strategies and stream types

Added new routing strategies and stream type for internal use
by audio policy manager and audio flinger:
- One for accessibility to allow different routing than media
- One for re-routing (remote submix) in preparation of dynamic
policies
- Added stream type for "internal" audio flinger tracks used
for audio patches and duplication.

Bug: 18067208.
Change-Id: I88f884b552e51e4a49c29125e5a1204cf58ff434
udioTrack.cpp
56df21d760d70a106adfbc8417b6ea179d576e24 21-Nov-2014 Glenn Kasten <gkasten@google.com> am f8c2d166: am a7cf01da: Merge "Fix missing loop count for static tracks." into lmp-mr1-dev

* commit 'f8c2d1665393d8e0620a7129ef3865f34489e6ef':
Fix missing loop count for static tracks.
c9769c557e202df671e35196c8c735b49257be7d 21-Nov-2014 Eric Laurent <elaurent@google.com> am 568689b1: am 3a2a32b5: Merge "AudioSystem: fix cross deadlock" into lmp-mr1-dev

* commit '568689b169d8b0ae2cc252b88602db5e5acaa604':
AudioSystem: fix cross deadlock
a7cf01da547bad8d4e66e3e4570eddeac98b6b05 20-Nov-2014 Glenn Kasten <gkasten@google.com> Merge "Fix missing loop count for static tracks." into lmp-mr1-dev
0ebd5f95b68a3a5c9e5509f21938c9e51e74d71b 20-Nov-2014 Eric Laurent <elaurent@google.com> AudioSystem: fix cross deadlock

Do not hold gLockAPS when calling
AudioPolicyService::registerClient() in get_audio_policy_service().
registerClient() will need to acquire the AudioPolicyService mutex and
if at the same time a method called from AudioPolicyService
(with mutex held) calls back into AudioSystem and get_audio_policy_service()
a cross deadlock occurs.

Same preventive fix for get_audio_flinger().

Use a separate mutex for notification client list in AudioPolicyService.
This prevents deadlocking if registerClient() is called as a consequence of
AudioFlinger calling back into AudioPolicyManager while executing a method
with AudioPolicyService locked

Bug: 18403952.
Bug: 18450065.
Change-Id: Ia832e41aede8bc6c843fc615508fbdd74e0863b5
udioSystem.cpp
2ff836294344b6e0b808b36191fdb0b457de4cb2 19-Nov-2014 Glenn Kasten <gkasten@android.com> am cd370c79: am de14fae7: Merge "Use standard syntax to initialize fields."

* commit 'cd370c790a9017560874a2588da46d4538087cad':
Use standard syntax to initialize fields.
de14fae779240a99c53d58ef16ce3086321ff897 19-Nov-2014 Glenn Kasten <gkasten@android.com> Merge "Use standard syntax to initialize fields."
57426fc6486c6c2fa27f4bc6fcf3349282c3fdd7 19-Nov-2014 Eric Laurent <elaurent@google.com> am 4fd641be: am bbda5ce4: Merge "AudioSystem: Add mutex for output cache" into lmp-mr1-dev

* commit '4fd641be9fed70743ca4fe823b69e74c258ce275':
AudioSystem: Add mutex for output cache
bbda5ce4782b20f3ed75482e5f73b8d999223438 19-Nov-2014 Eric Laurent <elaurent@google.com> Merge "AudioSystem: Add mutex for output cache" into lmp-mr1-dev
f6778fd0c72ab54328f0e9f5ecf0017b73e99dd8 19-Nov-2014 Eric Laurent <elaurent@google.com> AudioSystem: Add mutex for output cache

Fix cross deadlock with AudioFlinger by adding
a dedicated mutex to protect access to cached output list
and parameters.

Bug: 18410728.
Change-Id: Ia31283b1972d8865a46e84e63695173c187eb781
udioSystem.cpp
cb2129b3b568a4e31bcbda3545a468024bc972fe 11-Nov-2014 Andy Hung <hunga@google.com> Fix missing loop count for static tracks.

StaticAudioTrackServerProxy::framesReady() previously returned
only the contiguous frames, update to return the total
available frames. This resolves short-count looping in
SoundPool for FastTracks.

Also (1) Removes the racy condition of reading two variables
and (2) Fixes buffer->mNonContig to return the correct value
and (3) Restores behavior that loop count of 1 goes back to
loopStart once during playback.

Bug: 11830751
Bug: 12070295
Bug: 17456842
Change-Id: I64906e6036bb00a1d7375b03efe6deb69d6478ca
udioTrackShared.cpp
9544a8e904955f4b96ec9f2d6f4edc2a72afd270 18-Nov-2014 Eric Laurent <elaurent@google.com> am bfa77b5c: am 8cd37d67: Merge "audio policy: do not prevent routing to A2DP when suspended." into lmp-mr1-dev

* commit 'bfa77b5c687f217e26267693306aaa6cc8a63672':
audio policy: do not prevent routing to A2DP when suspended.
29e6cecdd8562700ab625c5645ddd6a7753789f1 14-Nov-2014 Eric Laurent <elaurent@google.com> audio policy: do not prevent routing to A2DP when suspended.

Allow A2DP sink selection even if A2DP is suspended.
It is not because use of A2DP is temporarily disabled by SCO
selection that the policy rule routing a given use case
to A2DP should be altered. The source will be routed to A2DP
but it will remain silent until suspend condition is cleared
which is the purpose of suspend mode.

Also make sure that accessibility prompts are audible while in call
by forcing stream type to STREAM_VOICE_CALL.
Fix inconsistent logic between AudioTrack::setStreamTypeFromAttributes()
and AudioPolicyManager::getStrategyForAttr()

Bug: 18095151.
Change-Id: I1c75dd8288ed3dd494eb942060eac9c9660dca50
udioTrack.cpp
e0064399d6bff89fd65e46829ea7ddffd911e936 17-Nov-2014 Elliott Hughes <enh@google.com> am 26d92768: am 34c55e3e: Merge "No need to #include atomic-inline.h if you have atomic.h."

* commit '26d92768d6dac505903c96e842673ee9a57a0989':
No need to #include atomic-inline.h if you have atomic.h.
ea7e5a1ffca7f1927af98a3f58b673581555284d 17-Nov-2014 Elliott Hughes <enh@google.com> No need to #include atomic-inline.h if you have atomic.h.

Change-Id: I79f9a53b95dcf84dff62ed4b3c0661c7c1e1fc64
ingleStateQueue.cpp
f1b0c671e85d7ad5e1aa94d16336cda57158cd33 17-Nov-2014 Elliott Hughes <enh@google.com> am 2716969d: resolved conflicts for merge of 3bc345f5 to stage-aosp-master

* commit '2716969d2b88e85a6ed5a766b54a0a34dc137118':
libcutils no longer requires that its users configure ANDROID_SMP.
1f2f4f26073b6bf979be3a3bb66f84e3e9c4c168 17-Nov-2014 Elliott Hughes <enh@google.com> libcutils no longer requires that its users configure ANDROID_SMP.

Change-Id: Ib91ff0696ab2472c62168eb5261bbda5d22f623e
ndroid.mk
77e79a509d19ab50b1867fe3903b5a8fae450591 17-Nov-2014 Marco Nelissen <marcone@google.com> resolved conflicts for merge of e78a27ca to lmp-mr1-dev-plus-aosp

Change-Id: If10a9cc17245f95d5e10b1507445abbb4020670e
e78a27ca9c701aa996eee0e47fa26dd69d80ffcf 17-Nov-2014 Marco Nelissen <marcone@google.com> am 9b77083e: Merge "Update calls to IInterface::asBinder()"

* commit '9b77083e582a8b6088ac6a2cb4151dfbdd324557':
Update calls to IInterface::asBinder()
f888020c6e2735624f2b2a30e72aca24e17b8b4d 14-Nov-2014 Marco Nelissen <marcone@google.com> Update calls to IInterface::asBinder()

to use the new static version.

Change-Id: Ia7b10eb38ca55b72278bfd33d3bf647f338b4e6a

Conflicts:
media/libmedia/IAudioFlinger.cpp
media/libmedia/IMediaPlayer.cpp
media/libstagefright/CameraSource.cpp
udioEffect.cpp
udioRecord.cpp
udioTrack.cpp
AudioFlinger.cpp
AudioPolicyService.cpp
AudioTrack.cpp
Drm.cpp
Effect.cpp
HDCP.cpp
MediaDeathNotifier.cpp
MediaLogService.cpp
MediaMetadataRetriever.cpp
MediaPlayer.cpp
MediaPlayerService.cpp
MediaRecorder.cpp
OMX.cpp
RemoteDisplayClient.cpp
StreamSource.cpp
ediametadataretriever.cpp
9ac0177da562b8f4d2ac6f001a16658a76e6aad8 14-Nov-2014 Eric Laurent <elaurent@google.com> am 990dad99: Merge "remove AudioSystem::getOutputSamplingRateForAttr()" into lmp-mr1-dev
automerge: 0e8a328

* commit '0e8a3284c6828e561f58e66a014c3b7ee37325cf':
remove AudioSystem::getOutputSamplingRateForAttr()
1b12b211cea11e319e72d9a5bf2bc4f7361f719d 14-Nov-2014 Chih-Hung Hsieh <chh@google.com> Use standard syntax to initialize fields.

Clang compiler gives warning to old gnu syntax.

BUG: 18193625
Change-Id: I1b5237d60866fc357fc808f6a6955ab20418a7d8
oneGenerator.cpp
0d6db582f2ccc9f8943c5f3965e2994b7d137158 13-Nov-2014 Eric Laurent <elaurent@google.com> remove AudioSystem::getOutputSamplingRateForAttr()

It is safer to query the output sampling rate once the output
have been acquired by calling getOutputForAttr().

Bug: 16009464.
Change-Id: Ib561facd19fba5359a6b837d75f1a1cd2dc51b29
udioSystem.cpp
udioTrack.cpp
6d60079e97c5fd6ba7de7b60adb0a027c0608d19 11-Nov-2014 Eric Laurent <elaurent@google.com> am 99370d2d: am ae6965ae: am 3aef3560: am e360f0f6: IAudioPolicyService: bound array size in queryDefaultPreProcessing

* commit '99370d2da54d7537ffda7fef1f6ef36f8b690321':
IAudioPolicyService: bound array size in queryDefaultPreProcessing
99370d2da54d7537ffda7fef1f6ef36f8b690321 11-Nov-2014 Eric Laurent <elaurent@google.com> am ae6965ae: am 3aef3560: am e360f0f6: IAudioPolicyService: bound array size in queryDefaultPreProcessing

* commit 'ae6965ae7664aaea489a8d58358035610075c9af':
IAudioPolicyService: bound array size in queryDefaultPreProcessing
ae6965ae7664aaea489a8d58358035610075c9af 11-Nov-2014 Eric Laurent <elaurent@google.com> am 3aef3560: am e360f0f6: IAudioPolicyService: bound array size in queryDefaultPreProcessing

* commit '3aef35600523eb6b4ccc8086a8913e80701a031a':
IAudioPolicyService: bound array size in queryDefaultPreProcessing
3aef35600523eb6b4ccc8086a8913e80701a031a 11-Nov-2014 Eric Laurent <elaurent@google.com> am e360f0f6: IAudioPolicyService: bound array size in queryDefaultPreProcessing

* commit 'e360f0f6cad290f69e07fd3a20dcf11a1dbc4160':
IAudioPolicyService: bound array size in queryDefaultPreProcessing
e360f0f6cad290f69e07fd3a20dcf11a1dbc4160 05-Nov-2014 Eric Laurent <elaurent@google.com> IAudioPolicyService: bound array size in queryDefaultPreProcessing

Bug: 18226810.
Change-Id: Ib8e2bfe835a8681aac50bf23161db14e50c9a124
(cherry picked from commit 74adca9ad30b7f8a70d40c5237bade0d16c4ea58)
AudioPolicyService.cpp
5239bad27472b9ae42be924a98850683e5e70476 07-Nov-2014 Glenn Kasten <gkasten@google.com> am b177468b: Merge "Improve AudioTrack recovery from mediaserver death" into lmp-mr1-dev automerge: e662cd5

* commit 'b177468bb1647c79ba48cd0a172cf3306b31ad69':
Improve AudioTrack recovery from mediaserver death
e662cd5cdbe1312d6b74754d2945fffe99e4fe2c 07-Nov-2014 Glenn Kasten <gkasten@google.com> Merge "Improve AudioTrack recovery from mediaserver death" into lmp-mr1-dev
caf27abc62e15abc628c04183d3188728fe98990 07-Nov-2014 Eric Laurent <elaurent@google.com> am 7e88fac0: Merge "AudioSystem: remove obsolete method." into lmp-mr1-dev automerge: c339a92

* commit '7e88fac080e3bb1cdc95667f82727ea6c19fb173':
AudioSystem: remove obsolete method.
c339a921642c38621f57e95b4ec41cfaa99c7a63 07-Nov-2014 Eric Laurent <elaurent@google.com> Merge "AudioSystem: remove obsolete method." into lmp-mr1-dev
989af5d7544a8f25cab558d045052a17558676f7 07-Nov-2014 Narayan Kamath <narayan@google.com> am 113adbbc: resolved conflicts for merge of bcf093bf to stage-aosp-master

* commit '113adbbc652874360332caa0c9df68e6b1e25fde':
Fix definining of ANDROID_SMP.
113adbbc652874360332caa0c9df68e6b1e25fde 07-Nov-2014 Narayan Kamath <narayan@google.com> resolved conflicts for merge of bcf093bf to stage-aosp-master

Change-Id: I545e15dde7774624139717e0b23bd96c444cb1bc
a36060891425c4ce0621e40344ac473ec14924dd 07-Nov-2014 Eric Laurent <elaurent@google.com> AudioSystem: remove obsolete method.

Bug: 18067208.
Change-Id: I9bbf9088485f5162c765ca504d9b784b956234c6
udioSystem.cpp
e1a2df553a6d151807a5da738a3cd853bef908d9 07-Nov-2014 The Android Open Source Project <initial-contribution@android.com> Resolve conflict
62fe78b66c87339a64f047561e7b4aac606310e2 07-Nov-2014 Glenn Kasten <gkasten@google.com> Merge "Fix memory leak" into lmp-mr1-dev
2be7786b9847861862c60eaf85c610823fdf2da9 06-Nov-2014 Ian Rogers <irogers@google.com> Fix definining of ANDROID_SMP.

If TARGET_CPU_SMP is undefined, such as in SDK builds, then the condition as
written before could cause SMP memory barriers to be missing.
Also, add a dependency for Android.mk so that changes to it cause
recompilation.

Change-Id: I63ac0dc4342a39b9355fce2b2200016244cffc4a
ndroid.mk
85f480e7fd7c5e70c91d2f205b5c49488a84eb4d 06-Nov-2014 Glenn Kasten <gkasten@google.com> Fix memory leak

Change-Id: I3f4110a88679b7e7841f40c6acdbf5dcde40fb19
AudioPolicyService.cpp
1cf9ad1abb599ce4057189e0db154cf00b4913f8 06-Nov-2014 Jeff Tinker <jtinker@google.com> Merge "Pass resolution to Crypto plugin on format change" into lmp-mr1-dev
19a3f69d9d5398db62ee7b15f2c13052d7ee9f07 06-Nov-2014 Jeff Tinker <jtinker@google.com> Merge "Add missing secure stop methods" into lmp-mr1-dev
d2d089fc86c62843992e7d5b371ee9227189a1e6 05-Nov-2014 Glenn Kasten <gkasten@google.com> Improve AudioTrack recovery from mediaserver death

1. Fix race condition in handling of binder death notifications.

AudioSystem has a mixture of APIs for both ordinary app clients,
and the AudioFlinger and AudioPolicy services within mediaserver.
Due to this mix of uses, it is possible for there to be "surprising"
sequences of calls on the call stack.

Previously, we used a single mutex for all global variables, but
this caused a deadlock. To avoid the deadlock, we unlocked the mutex
during the critical sequence of calls. But this was a a
crucial place where it should have stayed locked;
see Change-Id I315c1c5066f62b05e1c13b04fae1272b5fbce977

Now we use separate mutexes for the AudioFlinger, AudioPolicy, and audio port
related global variables. This allows us to correctly hold each mutex
throughout the atomic region, even when AudioFlinger calls AudioPolicy
via AudioSystem, or vice-versa.

2. AudioSystem::clearAudioConfigCache now clears the IAudioFlinger reference.

3. Make AudioSystem::get_audio_policy_service more like get_audio_flinger.

Bug: 18242291
Change-Id: I9761443d8337df5bf66d4ca2316a9fd0bd11be94
udioSystem.cpp
udioTrack.cpp
74adca9ad30b7f8a70d40c5237bade0d16c4ea58 05-Nov-2014 Eric Laurent <elaurent@google.com> IAudioPolicyService: bound array size in queryDefaultPreProcessing

Bug: 18226810.
Change-Id: Ib8e2bfe835a8681aac50bf23161db14e50c9a124
AudioPolicyService.cpp
2514d080c8a54ff603a45d7e336de668fe7329db 03-Nov-2014 Jeff Tinker <jtinker@google.com> Pass resolution to Crypto plugin on format change

Change-Id: I56cd557ce3525fe625db8c312d2557d3c8b51101
related-to-bug: 16034599
Crypto.cpp
461b02d3eccefea48fa15c67a9cd3a5895bd2765 04-Nov-2014 Eric Laurent <elaurent@google.com> Merge "audio: fix talkback why alarm is playing" into lmp-mr1-dev
03fcdcd0aa9758b6d882b18218fcfb9a1ccffdad 04-Nov-2014 Eric Laurent <elaurent@google.com> audio: fix talkback why alarm is playing

Convert attributes usage "assistance accessibility" to
a stream type guarantying that the prompt is audible
and not muted by policy manager.

Bug: 17994328.
Change-Id: I89f53f2ce84b499b859336c0a1a3a0332ee670f5
udioTrack.cpp
d9cfeb447356cb6334379eaf5da1e49424eb5979 23-Sep-2014 Jean-Michel Trivi <jmtrivi@google.com> Support speaker routing for FLAG_BEACON

Add support for routing audio stream to the speaker when audio
attributes carry the FLAG_BEACON value:
- associate streams with FLAG_BEACON to the up-to-now unused
STREAM_TTS ("Transmitted Through Speaker").
The remapping happens in AudioTrack.
- AudioPolicyManager: define new strategy for handling the Beacon
behavior, that only goes to speaker. Define new volume curves
for STREAM_TTS that are not silence only for the speaker device
category. Keep ref count of other streams and never play Beacon
streams when anything else is playing: either don't start playback
if something else is playing, or unmute STREAM_TTS when it's
allowed to play and mute when it's done.
- Take into account muting latency when starting an output.

Bug 15415971

Change-Id: I26539c7ec1a486accd85bbeb1623e9c7d3a1192f
udioTrack.cpp
3c1285e8f86bd497e14c14fb6df7b42072ef52bd 31-Oct-2014 Jeff Tinker <jtinker@google.com> Add missing secure stop methods

b/18053197
b/18076411

Change-Id: I923dc893d48c70bf17980007b32f0ac5dfd22896
Drm.cpp
20f51b1ea04c410a25f214e37bcdb586e2a028cc 30-Oct-2014 Glenn Kasten <gkasten@google.com> AudioTrack::flush() will no longer flush later data

Bug: 17832076
Change-Id: I4915d782acb8077923e419406b0dcea5b6aab961
udioTrackShared.cpp
aac745f29b0e8b18e9f9aff0d122c7d5d82f218a 28-Oct-2014 Glenn Kasten <gkasten@google.com> Merge "libmedia: ensure mCaptureThread exit within Visualizer destructor" into lmp-mr1-dev
63f6ffb996a7ffc920012f05c3deca731614373f 25-Sep-2014 Haynes Mathew George <hgeorge@codeaurora.org> libmedia: ensure mCaptureThread exit within Visualizer destructor

If mCaptureThread doesn't exit when Visualizer instance gets destroyed,
recycled member variables with random value such as danger pointer will
be accessed again and causes crash.

Thread which is created within Visualizer instance lifecycle should be
terminated before or within destructor.

CRs-Fixed: 688546
authored-by: wjiang@codeaurora.org
cherry-pick from CAF commit: 4823e3d6b8c60faa4d8fee5d58728eb70e56abf2

Bug: 18159501
Change-Id: Ie0b12ae8a3b9735b6ecbac0353781b8358cad644
isualizer.cpp
c2813e568aa476e03d159529c0af28c99536db8d 17-Oct-2014 Andy Hung <hunga@google.com> Fix AudioTrack retrograde getPosition when restoring tracks

mReleased represents the number of frames written to the
track, but was cleared on start() causing a mismatch if the
client wrote to the track before starting. Moved the clearing
to entering the STATE_STOPPED or STATE_FLUSHED state.

Bug: 18017947
Bug: 18022276
Change-Id: I3788c98c4c3c4d9cc004378432797b3f3138e22e
udioTrack.cpp
b6dcdbf436ffacb52a41ac8ef9b07f99fd64779f 16-Oct-2014 Chris Elliott <chriselliott@google.com> Revert "audio: prevent larger than required sleeps - DO NOT MERGE"

Revert change if we require a build beyond P

This reverts commit 620208dc0bbd7a0792702df3ab08800fdad60cec.

Change-Id: I07f65e35dbd9f814725f50f7bb346f7b285f41aa
udioTrack.cpp
620208dc0bbd7a0792702df3ab08800fdad60cec 15-Oct-2014 Chris Elliott <chriselliott@google.com> audio: prevent larger than required sleeps - DO NOT MERGE

This will be cherry picked into P build after O completes for other devices.

This reverts the revert from commit 2feb18ddfdbd20941ebcc3314780a582da5608e4.

b/17962037

From: Haynes Mathew George <hgeorge@codeaurora.org>
Date: Wed, 26 Mar 2014 16:18:42 -0700
Subject: [PATCH] AudioTrack: prevent larger than required sleeps

AudioTrackThread can end up waiting for larger than necessary
time for free space to be available in the cblk. Fix this by
waiting on the cblk futex instead of the (internal) condition variable.

Change-Id: Iba5b266f9b4082b3833f4abd52ebc6601c8e3034
udioTrack.cpp
2feb18ddfdbd20941ebcc3314780a582da5608e4 15-Oct-2014 Chris Elliott <chriselliott@google.com> Revert "audio: prevent larger than required sleeps - DO NOT MERGE"

This reverts commit 8c0417c173d1fd618ae54e2d721b0ec360ea70cc.

Reverting as we only wanted to include this CL the KNX01M build

Change-Id: Ib53292de658078285a38710915168e1746486fea
udioTrack.cpp
8c0417c173d1fd618ae54e2d721b0ec360ea70cc 09-Oct-2014 Haynes Mathew George <hgeorge@codeaurora.org> audio: prevent larger than required sleeps - DO NOT MERGE

b/17962037

From: Haynes Mathew George <hgeorge@codeaurora.org>
Date: Wed, 26 Mar 2014 16:18:42 -0700
Subject: [PATCH] AudioTrack: prevent larger than required sleeps

AudioTrackThread can end up waiting for larger than necessary
time for free space to be available in the cblk. Fix this by
waiting on the cblk futex instead of the (internal) condition variable.

Change-Id: I75bd14cd46f3b75afe0ea8bd9b48d7a2f95f654a
udioTrack.cpp
7985dcb06e0c29d5cc12d0c0e17e03d5d863cf53 08-Oct-2014 Eric Laurent <elaurent@google.com> AudioTrack: fix AudioTrackThread crash upon exit

In case of error during createTrack_l(), there is a possibility
that a newly created AudioTrackThread is resumed by requestExit()
just after entering the Thread class _threadLoop() but before
entering the class threadLoop(). In this case, processAudioBuffer()
is executed once with mCblk == 0 and we assert.

Bug: 17894033.
Change-Id: I93d0d0d4dbf14bcb88dad23e6ad49d2ecd47badd
udioTrack.cpp
bb6c9a05840d924b502ce0f1868fca4881ada1ed 25-Sep-2014 Eric Laurent <elaurent@google.com> audio: fix stream type for accessibility usage

Make sure that accessibility prompts are heard when
a ringtone is active by forcing stream type
to AUDIO_STREAM_RING when phone state is AUDIO_MODE_RINGTONE.

Bug: 17558149.
Change-Id: Ia3bead8052fca5cbf282c267f7b9b06014fef628
udioSystem.cpp
udioTrack.cpp
AudioPolicyService.cpp
dfc34daba6d6cb923683d96689a0cb7c7006eee5 19-Sep-2014 Glenn Kasten <gkasten@google.com> Reduce log spam from getTimestamp errors

Bug: 17576481
Change-Id: I07d99e7c42b7d4f0994b5a6d9c9fe8eb29fbbe40
udioTrack.cpp
6aadfce1d8c972faad7f4437dcd88d8cd3557611 19-Sep-2014 Jean-Michel Trivi <jmtrivi@google.com> Merge "AudioEffect acquires session" into lmp-dev
a0fd9ca66a68baefd9d76800fd66823fd654ef45 18-Sep-2014 Jean-Michel Trivi <jmtrivi@google.com> AudioEffect acquires session

Currently, users of audio sessions, AudioTrack and AudioRecord,
are acquiring and releasing audio sessions according to their
life-cycle. AudioEffect instances were not counting as users
of an audio session. This caused an effect used on a session
to be purged by AudioFlinger::purgeStaleEffects_l() whenever
the last user of that session went away.
This CL makes AudioEffect acquire and release a session when
created and destroyed.

Bug 15432115

Change-Id: I922532150009988d43872f9b5928044a830ae0b3
udioEffect.cpp
7f1bc8af1c46695191bf7e2aba6467f3616629c0 12-Sep-2014 Andy Hung <hunga@google.com> Fix AudioTrack offloaded timestamp handling.

getTimestamp for offloaded tracks now returns WOULD_BLOCK for
situations where the timestamp is unavailable due to the
previous track still flushing or the timestamp is stale.
It is fixed for normal playback conditions.

Bug: 14659809
Bug: 17428188
Change-Id: Ic9ec07ccabc604236979769db5c4ea2dec252660
udioTrack.cpp
200092b7f21d2b98f30b800e79d152636f9ba225 16-Aug-2014 Glenn Kasten <gkasten@google.com> Clean up AudioTrack position and timestamp handling

Replace epoch concept by observing and accumulating server delta
positions. The advantage of using server deltas instead of absolute
values is that they (1) are not sensitive to 32-bit wraparound,
(2) are not sensitive to server behavior for stop(), and
(3) prepare for future 64-bit client positions without requiring 64-bit
positions on server.

Add comments to AudioTrack::getTimestamp() and friends
that the timestamp output parameter is undefined on error.

Don't allow getTimestamp to return a negative frame position after stop().

Accumulate the client released frames, which may be useful for a future API.

Bug: 11815245
Change-Id: I652940fa2db2f34a78c012a3ead0d9204fa29c6e
udioTrack.cpp
9520aa609c505cf8a9ee105bd78dc186cfb7770b 10-Sep-2014 Zhijun He <zhijunhe@google.com> CamcorderProfile: Add QUALITY_HIGH_SPEED_2160P

Bug: 17059255
Change-Id: Ic6b272e4ceec8fc852c9eb787370f4d366dad0ac
ediaProfiles.cpp
b445375f50a1a619b2d7518d32387d5ea77ceb70 08-Sep-2014 Andy Hung <hunga@google.com> Fix potential deadlock between AudioPolicyService and AudioSystem

Bug: 17109761
Change-Id: I315c1c5066f62b05e1c13b04fae1272b5fbce977
udioSystem.cpp
640adb3cf89cc9b826372009fad8c9b3d120482e 05-Sep-2014 Jean-Michel Trivi <jmtrivi@google.com> Cache audio attributes when player not available

Cache the audio attributes stored in a Parcel in the client-side
MediaPlayer object if they are set through setParameter()
before the server-side MediaPlayer is available. Apply them when
the player is prepared.

Bug 17280746

Change-Id: I72f1a7fc4e2b076fae8cbdede77a2f74e98b2a03
ediaplayer.cpp
d71233a846aca7035a851941c1530d04c6a65086 03-Sep-2014 Marco Nelissen <marcone@google.com> Merge "Use CharacterEncodingDetector in metadataretriever" into lmp-dev
34581f44cde67960fbac3ba1f191a2c063ea5145 30-Aug-2014 Marco Nelissen <marcone@google.com> Use CharacterEncodingDetector in metadataretriever

instead of media scanner. This way the java MediaMetadataRetriever API
will give the same result as the media scanner.
Also apply some tweaks to the encoding detector to improve handling of
ISO-8859-1 tags.

Bug: 16302581, 17205395

Change-Id: I1682a7a6a8bf04cffaa455044ba72dd7fd152d49
ndroid.mk
haracterEncodingDetector.cpp
haracterEncodingDetector.h
ediaScannerClient.cpp
tringArray.h
a90cff5f7091bfb50c57e2d87bad3fc3f103f397 23-Aug-2014 Hochi Huang <hochi.huang@mediatek.com> [AU]Sync libmedia/Android.mk modification from KLP-Sprout

Bug: 17322146

Change-Id: If29fbd87252710bd794f2e0bb270bc846380ef1d
Signed-off-by: Hochi Huang <hochi.huang@mediatek.com>
ndroid.mk
732c6d955524ead6c31e6e1bafbd41ea4cee525d 15-Aug-2014 Lajos Molnar <lajos@google.com> stagefright/media: add support for codec features with text value

Bug: 11990470
Change-Id: I7600d999c5f4b6821d825d25fa7e8a2bb5a80c46
ediaCodecInfo.cpp
d018b8ffd84452a7a4b992b5325713b3256e48ff 12-Aug-2014 Lajos Molnar <lajos@google.com> Merge "MediaCodecList: handle errors gracefully" into lmp-dev
2461e0cf6ae3fe5c9b52ce9e3ac764f4aff5e5eb 12-Aug-2014 Lajos Molnar <lajos@google.com> MediaCodecList: don't return references

Bug: 16905025
Change-Id: I5b42b294f0cc785b8e4dda0e82c8f8377a46f487
ediaCodecInfo.cpp
6ff58f04f78886b07c72c0118eb71a78d08f5651 12-Aug-2014 Lajos Molnar <lajos@google.com> MediaCodecList: handle errors gracefully

Handle missing OMX codecs, and codecs that do not load.
Fix NULL dereference when initializing codec with no type.

Bug: 16907578
Bug: 16905025
Change-Id: I5d103db36ebb029d1aab03222bf6e9324beb1566
ediaCodecInfo.cpp
306c92dabc524f408445f7da2524c7a5e77ade63 11-Aug-2014 Andy Hung <hunga@google.com> Merge "Extend downsampling ratios greater than 2:1" into lmp-dev
cd04484f4837b8ca0041d118286ab6a98e84fc75 07-Aug-2014 Andy Hung <hunga@google.com> Extend downsampling ratios greater than 2:1

Also improve robustness to choice of sampling rate or buffer size
such that increasing either by 10x does not cause overflow.

Bug: 12979141
Bug: 15933066
Change-Id: If7989bd745d1bee3bdf811b8b7c978543ccafb65
udioTrack.cpp
5a446aafff3020d607ad6fb14cc7ae76dd8f7947 30-Jul-2014 Rachad <rachad@google.com> Added Tunneled video playback support to ACodec

Bug:16132368
Change-Id: I88d2d66b8548fc203f4a2c4797196af15e56ff38
OMX.cpp
1381d4b5c0385aec3741073e5998773b064c1fb0 08-Aug-2014 Lajos Molnar <lajos@google.com> media/playerservice: add getCodecList() to MediaPlayerService

Bug: 11990470
Change-Id: I8fa45946fd9b76f9b975fc59062819c57e6881ef
MediaPlayerService.cpp
60b1c0e79d12a1c70758bc8d060156924635f8ba 07-Aug-2014 Lajos Molnar <lajos@google.com> stagefright: rework media codec list and infos

This is in preparation of serving the codec list and codec infos
from the mediaserver

Bug: 11990470
Change-Id: Ib8e2708679c9ce461a4ba179974a740cdcdf2731
ndroid.mk
MediaCodecList.cpp
ediaCodecInfo.cpp
93c3d41bdb15e39dac0faea9c5b60f1637cd477c 01-Aug-2014 Eric Laurent <elaurent@google.com> AudioSystem: add API to query audio HW sync source

Add a method to query from the audio HAL the HW sync
source used for a given audio session.
Modify audio policy to select a direct output with HW sync
when requested.

Bug: 16132368.

Change-Id: I03038f9188f2d389f8a5fd76a671854013a4513e
udioSystem.cpp
AudioFlinger.cpp
df3dc7e2fe6c639529b70e3f3a7d2bf0f4c6e871 28-Jul-2014 Eric Laurent <elaurent@google.com> Add sound trigger control by audio policy

Audio policy:
- Added active capture indication to sound trigger service:
recognition stops if concurrent capture is not supported.
- Added generation of reserved I/O handle and session ID for
utterance capture.

Sound trigger service
- Added sound model update callback handling.
- Added service state callback
- Simplified callback shared memory allocation.

Bug: 12378680.

Change-Id: Ib0292c2733e6df90fdae480633dd9953d0016ef1
udioSystem.cpp
AudioPolicyService.cpp
68b15554f6dca3b056eac517fe5fa2fd4ee80a33 30-Apr-2014 Jeff Tinker <jtinker@google.com> Allow device to be unprovisioned

bug: 12247651
Change-Id: I564ac8de3da2430342a028f4058e2c5ac2d85d5e
Drm.cpp
4dc680607181e6a76f4e91a39366c4f5dfb7b03e 29-Jul-2014 Eric Laurent <elaurent@google.com> audio policy: pass session ID to capture activity methods

Indicate the audio session ID when calling getInput(),
startInput(), stopInput(), releaseInput().

Bug: 12378680.
Change-Id: I763793752f93e2f4e1445a5ab217c895af011038
udioRecord.cpp
udioSystem.cpp
AudioPolicyService.cpp
de3f8392fbf380ba6f09d009b00d7172477389a2 28-Jul-2014 Eric Laurent <elaurent@google.com> rename AudioSystem::newAudioSessionId()

Rename AudioSystem::newAudioSessionId() to
AudioSystem::newAudioUniqueId() as it can be used
also for I/O handles.

Bug: 12378680.
Change-Id: I611ea3b5eb57a4b0774437f477ee87dc4ccc2cc2
udioRecord.cpp
udioSystem.cpp
AudioFlinger.cpp
ediaplayer.cpp
cf2c0210c8afbe7d0661ccbbae3835b5ce73c0bf 26-Jul-2014 Eric Laurent <elaurent@google.com> AudioFlinger: update openInput() and openOutput()

Add parameters to openInput() and openOutput(): device address,
input source.
Allow caller to specify a given I/O handle
Group parameters in a struct audio_config.

Bug: 12378680.
Change-Id: I7e9af74c0d996561cc13cbee7d9012d2daf33025
AudioFlinger.cpp
6c28f1fb6d8262a327ffa8be5bb4c84c9ef7ce62 26-Jul-2014 Zhijun He <zhijunhe@google.com> Merge "CamcorderProfiles: add high speed profile constants" into lmp-dev
e07909715b44cc56df723750af93f0608210f94d 24-Jul-2014 Zhijun He <zhijunhe@google.com> CamcorderProfiles: add high speed profile constants

Change-Id: I8f783466f8c2560820db14488acc1a309d27ab0f
ediaProfiles.cpp
db2225b2a24fa4ade5c0353730dc2d6a2f5838d9 23-Jul-2014 Chong Zhang <chz@google.com> Merge "NuPlayer: save thread id in MediaPlayer::start" into lmp-dev
d88adb96ec867ed1b629c434f87514d2fabaf5e9 23-Jul-2014 Chong Zhang <chz@google.com> NuPlayer: save thread id in MediaPlayer::start

so that when MediaPlayer::notify is called from within start,
it doesn't try to lock itself again.

Bug: 15323063
Change-Id: Idd77e892cd22538bbfe3e65c64c9dd2a216a0aee
ediaplayer.cpp
f6f4c0d7c5e2d33b38f080896466e56e2d0a97d4 23-Jul-2014 Robert Shih <robertshih@google.com> Merge "StagefrightRecorder: webm (video only) support" into lmp-dev
114819633470ebd5b346c13c2a82a0025d2d39c0 10-Jul-2014 Robert Shih <robertshih@google.com> StagefrightRecorder: webm (video only) support

Bug: 16329805
Change-Id: I8a0ecd100fca397add97a1416125bcc6aeb86364
ediarecorder.cpp
df813a3ba59109ca519ce0cb00a1a9144074f40e 21-Jul-2014 Jean-Michel Trivi <jmtrivi@google.com> audio_attributes_t for SoundPool

Add support for the audio_attributes_t structure in the
SoundPoool constructor.
Remove SRC quality which was never implemented.
Remove stream types.

Add file to contain audio helper functions related to policy.

Change-Id: I1720ff15e7b23ea7b713a4395fdfac26dc3fd4da
oundPool.cpp
7410591dad836434c72ddee66680802708b70c10 03-Jul-2014 Glenn Kasten <gkasten@google.com> Move AudioRecord frame count calculations to server

Buffer frame count and notification frame count
are now calculated by server instead of by client.
The server has more information and can do a better job.

Also fix a few bugs:

- If a fast track was re-created, even with same pipe depth, it would fail.
Now it can correctly re-create a fast track provided the pipe depth is same.

- Notification frame count for fast tracks was calculated by client
as 1/2 of the total frame count, which is a large value due to the pipe.
Now the notification frame count is set by server to the HAL frame count.
This should reduce latency for fast tracks.

- EVENT_OVERRUN were happening frequently when there was sample rate conversion,
because the client didn't know about the sample rate conversion,
and under-estimated the necessary buffer size. Now since server
calculates the buffer sizes, EVENT_OVERRUN is unlikely.

- RecordThread::createRecordTrack_l was checking for mono and stereo
for fast tracks. This is not necessary, and now we can handle a
multi-channel fast track.

Bug: 7498763
Change-Id: I0c581618e8db33084d5ff9ed50a592990c9749e8
udioRecord.cpp
AudioFlinger.cpp
b3b1660ecb67f61f9da54efced8677fa3a6f4863 16-Jul-2014 Glenn Kasten <gkasten@google.com> Add audio_input_flags_t to IAudioPolicyService::getInput

Change-Id: I9f37be05f8dc7b85a8827a94e76ca0f45453e170
udioRecord.cpp
udioSystem.cpp
AudioPolicyService.cpp
ec40d284218466d8f0e832e7eb88e6ea6c479c88 16-Jul-2014 Glenn Kasten <gkasten@google.com> Add audio_input_flags_t to IAudioFlinger::openInput

For backward compatibility, until flags are correctly calculated,
we will assume that the request is for a low latency input stream.

Change-Id: I76746834e870df00833dc77cbdaa2edd2ffeec95
AudioFlinger.cpp
01cab9ce4fb203fab8f5115ff866f9f0cc96a73a 10-Jul-2014 Elliott Hughes <enh@google.com> resolved conflicts for merge of 373e21cc to master

Change-Id: I91afd8f9cba04559d21e1c84e25c5c60c990165d
373e21cc119cede767dc93d75c91645dbf9ae19f 10-Jul-2014 Elliott Hughes <enh@google.com> am be44e0e0: am 0bffd2e6: Merge "Switch frameworks/av/media/libmedia to the new icu."

* commit 'be44e0e0ffda04725c4864d894a7cc80bd74b5ca':
Switch frameworks/av/media/libmedia to the new icu.
51bc26144ca9c3872e41f9864622170d528be1b0 10-Jul-2014 Elliott Hughes <enh@google.com> Switch frameworks/av/media/libmedia to the new icu.

Change-Id: I45349756bac6d89b02dba082ba6d606f4c489dcf
ndroid.mk
7df8c0b799d8f52d6386e03313286dbd7d5cdc7c 03-Jul-2014 Glenn Kasten <gkasten@google.com> IAudioFlinger::openRecord now suggests notificationFrames

Change-Id: I08885cc381d03c522a23289e74f0e1ed46563863
udioRecord.cpp
AudioFlinger.cpp
d9d7fa0873796ac661c44a7fcd6ad5ff697ff01f 24-Jun-2014 Jean-Michel Trivi <jmtrivi@google.com> Support for audio attributes on audio output of media player

Change-Id: Iae4995c98e64add1ab9e6c8ae6501515032755f5
udioTrack.cpp
ediaplayer.cpp
34fb29696b0f3abf61b10f8d053b1f33d501de0a 19-Jun-2014 Mark Salyzyn <salyzyn@google.com> libmedia: 64-bit compile warnings

Change-Id: I600f062fa7148c01851023c1240c39939e648002
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
udioTrackShared.cpp
haracterEncodingDetector.cpp
MediaMetadataRetriever.cpp
MediaRecorder.cpp
ediaProfiles.cpp
oundPool.cpp
ediametadataretriever.cpp
ediaplayer.cpp
ediarecorder.cpp
ab5cdbaf65ca509681d2726aacdf3ac8bfb6b3fa 10-Jun-2014 Eric Laurent <elaurent@google.com> AudioTrack: add support for compressed audio

Add support for compressed audio playback by use
of an AudioTrack attached to a direct output thread.

Bug: 9428304.

Change-Id: I4a61be9cf0e31003ca85935d6e0ee38ca8192e03
udioTrack.cpp
5bd3f38638acab633d181359cc9ec27b80f84d43 14-Jun-2014 Jean-Michel Trivi <jmtrivi@google.com> AudioPolicyManager: return output for audio attributes

In AudioPolicyManager, support querying an output
or playback strategy for audio attributes,
instead of a stream type,
In AudioTrack creation, use the output returned
for the track's attributes.

Change-Id: I0fef05845ba676404775e2e338c10e6a96237268
udioSystem.cpp
udioTrack.cpp
AudioPolicyService.cpp
faabb51ceef13bf1e3f692219ac410c1cd75d0de 12-Jun-2014 Jean-Michel Trivi <jmtrivi@google.com> AudioTrack construction with audio attributes

Store audio attributes in AudioTrack class.
When an AudioTrack is "set" with non null audio
attributes, derive a stream type that reflects
the attributes.
When an AudioTrack is "set" without attributes,
and only has a stream type, derive default
audio attributes.

Change-Id: I322b91fa9a7e193118960c5e78cdddd85d66f9ad
udioTrack.cpp
ba7a4e11a66a7044dbbd767983865e1774092dc6 13-Jun-2014 Narayan Kamath <narayan@google.com> am 90732a3b: Merge "Remove dependency on Parcel::{read,write}IntPtr"

* commit '90732a3be5e70156486aca94bde8aa81106329ba':
Remove dependency on Parcel::{read,write}IntPtr
8b8e5d45928aed8592d321fe55f560e35a4fece8 13-Jun-2014 Narayan Kamath <narayan@google.com> resolved conflicts for merge of cbd74fcb to klp-modular-dev-plus-aosp

Change-Id: I00270ef6fe813c0d3649483cbc3aba6af789e033
9c68ac03f16cc32625f6965e869432eae4fded2d 13-Jun-2014 Jean-Michel Trivi <jmtrivi@google.com> Merge "AudioSystem: remove unused stream type"
20d16a8af2dc95e827be693edabde4f09eb90c32 13-Jun-2014 Eric Laurent <elaurent@google.com> am 3bcffa13: force command flush after releasing a reference to shared memory

* commit '3bcffa136909c1fb6e88ee4efd12ccac18360a85':
force command flush after releasing a reference to shared memory
3bcffa136909c1fb6e88ee4efd12ccac18360a85 13-Jun-2014 Eric Laurent <elaurent@google.com> force command flush after releasing a reference to shared memory

After releasing a reference to a shared memory interface,
IPCThreadState::self()->flushCommands() must be called to ensure
that the corresponding reference is also cleared immediately in the
remote process. Otherwise the binder implementaiton will not
push the clear systematically causing the memory region not to be freed.

See issues 10711502 and 2801375.

Bug: 14057166.
Change-Id: If55f36f00d452d6cf00cf83bd2fba1c8f3abcb57
udioRecord.cpp
udioTrack.cpp
7903bb2b3065d58cc75637900922b434f50024d9 12-Jun-2014 Elliott Hughes <enh@google.com> am 2a8270e6: am c323737d: Merge "Offer a type-safe album art interface."

* commit '2a8270e6944fb3addfcba87f6885aaad196b8b88':
Offer a type-safe album art interface.
2a8270e6944fb3addfcba87f6885aaad196b8b88 12-Jun-2014 Elliott Hughes <enh@google.com> am c323737d: Merge "Offer a type-safe album art interface."

* commit 'c323737dd46d724b4c1ec230b283f26ae2a22b4f':
Offer a type-safe album art interface.
b7f24b101d43139b4c747129bfbc4ecf5c468b86 11-Jun-2014 Jean-Michel Trivi <jmtrivi@google.com> AudioSystem: remove unused stream type

The audio stream type is not used in the getSampleRate() and
getFrameCount() methods.

Change-Id: I3d065ae272bd039204cd323cdab9b60460034f2d
udioSystem.cpp
udioTrack.cpp
8b1be2ca7cee71a4920d5d31fdcbad2b1d4ca49d 02-May-2014 Andy Hung <hunga@google.com> Update OMX messages for 64 bit

Change node_id and buffer_id to uint32_t.
Ensure IOMX messages are fixed size.
Remove 64 bit compile warnings in associated files.

Change-Id: Icdbef00aca575e5dc502ebb52e3ce7d0d7883203
Signed-off-by: Andy Hung <hunga@google.com>
OMX.cpp
f3e80dddd7376aa9deeb27de25e1d50030a2ad98 11-Jun-2014 Elliott Hughes <enh@google.com> Offer a type-safe album art interface.

Bug: 15514223
Change-Id: Iddfc33a00e6cd3779ca09c01a55f62b151f6ec95
ediaScanner.cpp
c5a66b77adcdfa2a403dfddc5ef3469fada75683 12-Jun-2014 Jeff Tinker <jtinker@google.com> Merge "Remove dependency on Parcel::{read,write}IntPtr"
5f6af1a8e34381ca2ac2527fcefe220a22f49b53 10-Jun-2014 Zhijun He <zhijunhe@google.com> MediaProfiles: Add 4K video related constants

Bug: 15287656
Change-Id: I4c49640a349afb336f52db1636902fc216bff6ad
ediaProfiles.cpp
90732a3be5e70156486aca94bde8aa81106329ba 13-Jun-2014 Narayan Kamath <narayan@google.com> Merge "Remove dependency on Parcel::{read,write}IntPtr"
1766b08d35a45e12a13b264a5944e1b622b8715b 10-Jun-2014 Jeff Tinker <jtinker@google.com> Remove dependency on Parcel::{read,write}IntPtr

bug: 15424960
bug: 15107693

(cherry picked from commit bcca9e072c1f288a53ce6862936f57dc36488f96)

Change-Id: I3ba59fccb184e99a07f6f82ccdbd00e5204901f6
Crypto.cpp
bcca9e072c1f288a53ce6862936f57dc36488f96 10-Jun-2014 Jeff Tinker <jtinker@google.com> Remove dependency on Parcel::{read,write}IntPtr

bug: 15424960
bug: 15107693

Change-Id: Ic3bf37f591e620985c37f345f9a5544fd20ec4a1
Crypto.cpp
c263ca0ad8b6bdf5b0693996bc5f2f5916e0cd49 05-Jun-2014 Glenn Kasten <gkasten@google.com> Squashed commit of the following:

commit 9128d6ffec43731d723f9b394f243d940f4c7e41
Author: Glenn Kasten <gkasten@google.com>
Date: Tue May 13 10:38:42 2014 -0700

Use of fast capture by normal capture

Will only configure fast capture path if the input buffer size is less than
10 ms and the input sample rate is same as the primary output sample rate.

Change-Id: I4a7cdc6069d750845412c626d27e83f72a1ab397

commit 2e5e0806a5abe7499848358ef5fde5c26405000d
Author: Glenn Kasten <gkasten@google.com>
Date: Mon Jun 2 08:29:22 2014 -0700

Add mPrimaryOutputSampleRate

Change-Id: I46b527fc3f2b5a5720a74b4f0b9a8f2e0d570b09

commit baf1d73467923996d1b1f2a9237260cc5697e050
Author: Andy Hung <hunga@google.com>
Date: Fri May 30 10:42:03 2014 -0700

Change parameter type for volume to float in AudioMixer

Change-Id: I4da1505ce852505f86f8e5b87f60e8edceeb30e0

commit 40fe20fa9760cd03c69778c2021cf7a490d75ece
Author: Andy Hung <hunga@google.com>
Date: Fri May 30 10:35:47 2014 -0700

Rename UNITY_GAIN to UNITY_GAIN_INT in AudioMixer

Change-Id: Ic040311305026f0b4c4280a5b3bef7a447ac1da3

commit 37c9a2b49f876abc5ff537a9ec036d7f0a423775
Author: Andy Hung <hunga@google.com>
Date: Thu May 29 21:33:13 2014 -0700

Refactor setVolumeRampVariables in AudioMixer

Change-Id: I8fcf3101bcea292de7c65433fa578f1c9cdd0974

commit 397070eca31f121d5d3993de1bfea99aaea5d4f3
Author: Andy Hung <hunga@google.com>
Date: Thu May 29 18:52:38 2014 -0700

Fix floating point output from mixer

A buffer pointer was being erroneously reset to buffer start,
potentially causing an audio glitch. The floating point
output mode is not enabled at this time, but will be in
the future.

Change-Id: If8b6414d232f064f3a2e2c5a6da889a91b27fb24

commit 2e61aa5b33b2247bbc5d4eaa0b519df9accd4bbc
Author: Andy Hung <hunga@google.com>
Date: Fri May 23 21:22:17 2014 -0700

Add multiple format capability to FastMixer

Floating point data from MixerThread into FastMixer.
Multiple output format capability from FastMixer to Sink.

Change-Id: I0da17810ee71381a39a006c46faec71108d22c26

commit b9ea653c702a785bbd23a66c5e588d40b4192c4e
Author: Andy Hung <hunga@google.com>
Date: Thu May 29 15:53:09 2014 -0700

Avoid resetting BufferProviders in mixer unnecessarily

Change-Id: Iad85c4dfd21be1dbf89dc11906106b34219376f8

commit 7f1a6d6da21c616f80cf9ba21bea11b419ec561b
Author: Andy Hung <hunga@google.com>
Date: Tue May 27 12:32:17 2014 -0700

Update dynamic resampler buffer fetching

Make the criteria tight for fetching to avoid storing
excessive frame data internal to the resampler.
This should reduce jitter in frame delivery computation.

Bug: 14962343
Change-Id: I7adaf714d11c272696ccdbf218bda994c7217477

commit b5e4aac07b9a02f0c803c090058602b03ac09ebb
Author: Glenn Kasten <gkasten@google.com>
Date: Tue May 27 12:30:54 2014 -0700

Allow kFastTrackMultiplier to be specified per device

Change-Id: I4eaaaf038df720cec4f5d9221d1b632970f9e3dd

commit b93cd97a52af31122df2da2cc0415cda888c8c73
Author: Andy Hung <hunga@google.com>
Date: Fri May 23 21:13:31 2014 -0700

Rename mixBuffer to mMixerBuffer in FastMixer

Likewise mixBufferState becomes mMixerBufferState.
This harmonizes with the naming in AF::MixerThread.

Change-Id: I1255d7c07cc2c6ee925d7430925236d2bd163122

commit 8340758622b9711365a8801806cbdf934803c63f
Author: Andy Hung <hunga@google.com>
Date: Mon May 12 16:51:41 2014 -0700

Add multiple format capability to AudioMixer

Change-Id: I04ac1cafd90b6ed652f8d51888ad07576678f0bc
Signed-off-by: Andy Hung <hunga@google.com>

commit 6b695b9d094820c232a897a3fabbe83d2b7193fe
Author: Glenn Kasten <gkasten@google.com>
Date: Thu Mar 13 14:59:31 2014 -0700

Start adding FastCapture based on FastThread WIP

This version supports at most one fast capture client.

Change-Id: Idf609bfc80ae22433433d66a5232c043c65506df

commit e951ad05a2c388471d7e2806d91e7d51325a150a
Author: Glenn Kasten <gkasten@google.com>
Date: Mon May 12 11:06:26 2014 -0700

Move validation of frameCount from set to openRecord_l

This move is needed because frameCount is validated on server side for
fast tracks (as should be done for normal tracks too).

Change-Id: I6d99e80869fd90fab373cf60ef348c01f075fbca

commit 73e76992dbba794894837c38e5472312ea829cf3
Author: Glenn Kasten <gkasten@google.com>
Date: Tue May 13 10:41:52 2014 -0700

Allow track buffer "allocation" to be from pipe

Change-Id: Ib9ac170f8e8b7746b3588157a56cbee3b753a1cb

commit 60de1d7ded05c6304037d4858b401094b1d2b4d3
Author: Andy Hung <hunga@google.com>
Date: Fri May 9 15:02:21 2014 -0700

Add format parameter to getTrackName() and track_t

Change-Id: Ia152a839014e235fbfb656104c15d7c1b456d02e
Signed-off-by: Andy Hung <hunga@google.com>

Change-Id: Ied0ade8b25d23e89bb03319a7e3135c238f735b9
udioRecord.cpp
udioTrackShared.cpp
e40ed90293eeb0feecb5b7729cf24f8ecea9b412 05-Jun-2014 Eric Laurent <elaurent@google.com> am 26594add: Merge "audio policy: new setAudioPortConfig implementation" into lmp-preview-dev

* commit '26594add1ec0b6255c96b39e43ccdc95b2c480aa':
audio policy: new setAudioPortConfig implementation
a121f90f388343dc48793cbc7eb899aba42e7664 03-Jun-2014 Eric Laurent <elaurent@google.com> audio policy: new setAudioPortConfig implementation

Rewrite setAudioPortConfig() to take advantage of the new
AudioPortConfig class.

The configuration is now checked against AudioPort capabilities
and stored in the AudioPortConfig.

Fix a bug where the config mask was not set properly when calling
setAudioPortConfig at the PatchPanel interface.

Remove debug log in IAudioPolicyService.

Bug: 14815883.
Change-Id: I7eb7683a96e049581c13f2a212486507883d008d
AudioPolicyService.cpp
6dbb5e3336cfff1ad51d429fcb847307c06efd61 13-May-2014 Glenn Kasten <gkasten@google.com> Use of fast capture by normal capture

Will only configure fast capture path if the input buffer size is less than
10 ms and the input sample rate is same as the primary output sample rate.

Change-Id: I4a7cdc6069d750845412c626d27e83f72a1ab397
udioTrackShared.cpp
72aa32f7dbbfb658097930b57659d8e50f24a953 31-May-2014 Eric Laurent <elaurent@google.com> resolved conflicts for merge of b52c152d to master

Change-Id: I34869bda071d511c9595ea0a5ff6571eb34da059
b52c152d553556b2d227ffc943489de0c60b4b02 20-May-2014 Eric Laurent <elaurent@google.com> audio policy: add routing update client interface

Added IAudioPolicyServiceClient client binder interface
for client process to receive notifications from AudioPolicyService
when audio ports are added/removed or audio patches created/released.

The audio patches owned by a given client are automatically released when
this client binder dies.

Bug: 14815883.

Change-Id: I6013f6aec03b50565cffb1ad2cd1f0f8852032c5
ndroid.mk
udioSystem.cpp
AudioPolicyService.cpp
AudioPolicyServiceClient.cpp
203b1a18a806e2c56c701aac49cda963bccfad5b 01-Apr-2014 Eric Laurent <elaurent@google.com> DO NOT MERGE - IAudioPolicyService interface extension for patch panel

Change-Id: I0a62e5416edc41c3a0e816275085ab18a23066f1
udioSystem.cpp
AudioPolicyService.cpp
1cda6afaf6207a41303e653a6ecd7909d73186eb 11-Apr-2014 Eric Laurent <elaurent@google.com> DO NOT MERGE - IAudioFlinger interface extension for patch panel

Change-Id: Iaabe0a7e315d5725e00a74a6ed40339b98f20330
AudioFlinger.cpp
8670c31fddbeadcf9627aa970c69a823f13939ff 01-Apr-2014 Eric Laurent <elaurent@google.com> IAudioPolicyService interface extension for patch panel

Change-Id: I0a62e5416edc41c3a0e816275085ab18a23066f1
udioSystem.cpp
AudioPolicyService.cpp
4b123406c10c17852734a1b691bb9ce2a4cb7caf 11-Apr-2014 Eric Laurent <elaurent@google.com> IAudioFlinger interface extension for patch panel

Change-Id: Iaabe0a7e315d5725e00a74a6ed40339b98f20330
AudioFlinger.cpp
29b703eec27b305e7b5b2343bf257643e38f6b68 12-May-2014 Glenn Kasten <gkasten@google.com> Move validation of frameCount from set to openRecord_l

This move is needed because frameCount is validated on server side for
fast tracks (as should be done for normal tracks too).

Change-Id: I6d99e80869fd90fab373cf60ef348c01f075fbca
udioRecord.cpp
e348c5b72ad889389c7c1c900c121f0fbee221b5 22-May-2014 Elliott Hughes <enh@google.com> resolved conflicts for merge of c0bf836f to master

Change-Id: I5cf238fa56d6fff443b212870cf9dd7f1110e7da
c0bf836f8a4e34d66c10a2bb8b8cee0db04790cc 22-May-2014 Elliott Hughes <enh@google.com> am ad71caf2: am 3b6da6bf: Merge "Move frameworks/av off private API."

* commit 'ad71caf25e31ecfc4ecf2c925e38fd87905fbc8e':
Move frameworks/av off private API.
ad71caf25e31ecfc4ecf2c925e38fd87905fbc8e 22-May-2014 Elliott Hughes <enh@google.com> am 3b6da6bf: Merge "Move frameworks/av off private API."

* commit '3b6da6bfb50a1c0324fb4c87326d3a477944d5fe':
Move frameworks/av off private API.
ee499291404a192b059f2e04c5afc65aa6cdd74c 22-May-2014 Elliott Hughes <enh@google.com> Move frameworks/av off private API.

Bug: 11156955
Change-Id: Ib3bb9d66a2bf92977c2445b62aa074a2d7a45aea
udioTrackShared.cpp
9382378b6b271949bdce527ea3da748c13c4c692 22-May-2014 Elliott Hughes <enh@google.com> resolved conflicts for merge of b1080917 to master

Change-Id: Iabbe3e95e29f28461ff722b550e8a9f35bd2528f
b108091734ee7668084cc1063187c2b10ddb7bb7 22-May-2014 Elliott Hughes <enh@google.com> am acbd9492: am d084206d: Merge "Move frameworks/av off __futex_syscall3."

* commit 'acbd9492996348bf4565fbaa5a14772f0f4ace38':
Move frameworks/av off __futex_syscall3.
acbd9492996348bf4565fbaa5a14772f0f4ace38 22-May-2014 Elliott Hughes <enh@google.com> am d084206d: Merge "Move frameworks/av off __futex_syscall3."

* commit 'd084206d5a4a5364211af46e4201311933e83bfc':
Move frameworks/av off __futex_syscall3.
77e1512aee8092069514973379a59a318e721be3 22-May-2014 Elliott Hughes <enh@google.com> Move frameworks/av off __futex_syscall3.

Bug: 11156955
Change-Id: I943080bc51b6efa781059b48b5b5ecc4fa287512
udioTrackShared.cpp
b4db73d022f3de3530bc2b3c9c831ccfdd1a2ead 20-May-2014 Andy Hung <hunga@google.com> Merge "Use new channel count functions for audio masks"
c56f3426099a3cf2d07ccff8886050c7fbce140f 22-Mar-2014 Glenn Kasten <gkasten@google.com> Pass stereo gains as packed minifloat

This will allow (eventually) a greater dynamic range for gains.
However there are still a few remaining places in effects and mixer
that will also need to be changed in order to get the full benefit.

Also fixes a minor bug: was not checking for NaN in AudioTrack C++.

Change-Id: I63bce9e82e0a61546d8ff475fb94bcb700d99c96
udioTrack.cpp
udioTrackShared.cpp
5225ba0632e9dcf6fab562e4632ae8d6d4312959 16-May-2014 Bao Haojun <baohaojun@gmail.com> Fix double close.

This patch will fix the double close issue in SoundPool::doLoad():

status = MediaPlayer::decode(mFd, mOffset, mLength, &sampleRate, &numChannels, &format,
mHeap, &mSize);
ALOGV("close(%d)", mFd);
::close(mFd);
mFd = -1;

In MediaPlayerService::decode() which is called directly by
MediaPlayer::decode(), the fd will be closed, and after it return, the
mFd will be closed again.

When the system is idle, the second close will fail with EBADFD, but if
the system is busy, the mFd will be reused with another open/socket/pipe
system call, and the second close will cause errors.

Change-Id: If709515392cd490fea569658202524c51f8df785
Signed-off-by: Bao Haojun <baohaojun@gmail.com>
Signed-off-by: Wang Liang <wangliang@smartisan.cn>
MediaPlayerService.cpp
e541269be94f3a1072932d51537905b120ef4733 16-May-2014 Andy Hung <hunga@google.com> Use new channel count functions for audio masks

Change-Id: Ia658ab4b6320d19fdb50f123c930918724ff0ef3
Signed-off-by: Andy Hung <hunga@google.com>
udioRecord.cpp
udioTrack.cpp
609b815a3131d22da38b2f452faa9f89daad4039 02-May-2014 Andy Hung <hunga@google.com> Update OMX messages for 64 bit

Change node_id and buffer_id to uint32_t.
Ensure IOMX messages are fixed size.
Remove 64 bit compile warnings in associated files.

Change-Id: Icdbef00aca575e5dc502ebb52e3ce7d0d7883203
Signed-off-by: Andy Hung <hunga@google.com>
OMX.cpp
844f88ccfcca95687e774bccb5e9065da61d33f8 09-May-2014 Glenn Kasten <gkasten@google.com> Cache mCblk in local variable cblk

This is the style used throughout the rest of AudioTrackShared.

Change-Id: I959a6be3064e087bb19eba41173fd130dfcb4a9a
udioTrackShared.cpp
fe9570c7b937b49d3603ccb394aed732b79bc6be 07-May-2014 Glenn Kasten <gkasten@google.com> Remove obsolete IAudioRecord::getCblk()

Change-Id: Id20b5efd765b9796b0e391610e06dc928a829ebf
AudioRecord.cpp
d776ac63ce9c013c9626226e43f7db606e035838 07-May-2014 Glenn Kasten <gkasten@google.com> IAudioFlinger::openRecord returns IMemory(s)

openRecord() now explicitly returns the control block and data buffer
as separate IMemory references. If the IMemory for data buffer
is 0, this means it immediately follows the control block.

Change-Id: Ic098f88f0e037f8fbe30006689e18cacacf09d06
udioRecord.cpp
AudioFlinger.cpp
96b292fd3c76f9af155ee6f7a8559258eeedc6fd 08-May-2014 Glenn Kasten <gkasten@google.com> Merge "Add client side support for more AUDIO_FORMAT_PCM_*"
b773038277ba328696832b690b91ce6e95bd1a6c 01-May-2014 Glenn Kasten <gkasten@google.com> Add client side support for more AUDIO_FORMAT_PCM_*

As much as possible, the checks for specific formats are done on server
side. The only exception is 8-bit, which needs a client side workaround.

Change-Id: I52fe086c039460c8dac009de03b67eb54c56a836
udioTrack.cpp
828f883a43f66f77d776a75d0ea2b87c7c826071 07-May-2014 Glenn Kasten <gkasten@google.com> Fix a couple of fast capture typo bugs

AudioRecord constructor was not passing flags through to set().
Server-side check was using wrong kind of channel mask.

Change-Id: Ifaa880ec323771e9fd168262be05f3e539f53390
udioRecord.cpp
c4b88a8d0f524666bf0f390075c334d047a104f2 01-May-2014 Glenn Kasten <gkasten@google.com> Fix bug for direct track with PCM != 16-bit

The AUDIO_FORMAT_PCM_8_BIT format was being converted to
AUDIO_FORMAT_PCM_16_BIT on client side even for direct tracks.
That conversion was incorrect; it should only be done for mixed tracks.

Also remove checks for specific PCM formats in the generic part of
server side of createTrack. Those format checks should only be done by
the thread. This will allow direct tracks for PCM 8-bit, PCM 24-bit, etc.

Change-Id: If5b9fd79f8642ed93e2aeabcaf4809b2ed798978
udioTrack.cpp
b53fc4ef8da47df8d5f580e8ee6135866ffebc33 02-May-2014 Glenn Kasten <gkasten@google.com> resolved conflicts for merge of 47c888a9 to master

Change-Id: I4ba2fdc6374a93a892bb7651b0d174e495f09bf6
47c888a9fb74f8a46fbf666f0611fd1a9491466f 02-May-2014 Glenn Kasten <gkasten@google.com> am e580aa4a: am 86438382: Merge "When passing a size_t via binder, use 64-bits unconditionally"

* commit 'e580aa4a756d1825c440a4b4309022b1babb6de1':
When passing a size_t via binder, use 64-bits unconditionally
e580aa4a756d1825c440a4b4309022b1babb6de1 02-May-2014 Glenn Kasten <gkasten@google.com> am 86438382: Merge "When passing a size_t via binder, use 64-bits unconditionally"

* commit '86438382a381eb39ed8da53fbd16cf6730fded6c':
When passing a size_t via binder, use 64-bits unconditionally
86438382a381eb39ed8da53fbd16cf6730fded6c 02-May-2014 Glenn Kasten <gkasten@google.com> Merge "When passing a size_t via binder, use 64-bits unconditionally"
33ddcb6f1049cb4b6c71bb7ea605375f9492601d 02-May-2014 Glenn Kasten <gkasten@google.com> Merge "Use AUDIO_INTERLEAVE_* constants"
8710fb4b39e1807a5f2a4486fe0b140129b3618d 02-May-2014 Glenn Kasten <gkasten@android.com> am f38e1908: am 3d9164da: am 236f8ddd: Merge "Add missing include"

* commit 'f38e190887e73bc08735af95b073ebfaabd65f95':
Add missing include
f38e190887e73bc08735af95b073ebfaabd65f95 02-May-2014 Glenn Kasten <gkasten@android.com> am 3d9164da: am 236f8ddd: Merge "Add missing include"

* commit '3d9164da1b3d58701e41c78e06839d61ed1b4ff9':
Add missing include
3d9164da1b3d58701e41c78e06839d61ed1b4ff9 02-May-2014 Glenn Kasten <gkasten@android.com> am 236f8ddd: Merge "Add missing include"

* commit '236f8ddd23af92f98f2deae86bf6e6b5c9278857':
Add missing include
236f8ddd23af92f98f2deae86bf6e6b5c9278857 02-May-2014 Glenn Kasten <gkasten@android.com> Merge "Add missing include"
877a0ac7e8677fa1cbd0e8565ad9d38ba0db5fc0 01-May-2014 Glenn Kasten <gkasten@google.com> Use AUDIO_INTERLEAVE_* constants

Change-Id: I6609fa75c9a57fc4ca3887d626a2f4fb8b6593a1
udioTrack.cpp
1a7be1ec9c769203e6c8e26378de0ab8e2ad493d 29-Apr-2014 Bill Yi <byi@google.com> Merge commit '91820d46b5f3065c2fded3cdf65d305715b33bb1' into HEAD
29fe1ea4b5a1d1fc1fb87b53866901357c04c5c1 14-Apr-2014 Mark Salyzyn <salyzyn@google.com> am 9829344d: Merge "media: memset sizeof argument issues"

* commit '9829344d526f87ca745208f04216ec795b239581':
media: memset sizeof argument issues
d6579cc9f06052f94bf5a2c34261c84de0efce23 10-Apr-2014 Mark Salyzyn <salyzyn@google.com> media: memset sizeof argument issues

Change-Id: I37ef154eea0f77fb7f22faf6891f3025f6ff346e
ediaplayer.cpp
80a5d305a8408651fbc9b11e9d21125887da8c40 02-Apr-2014 Igor Chernyshev <igorc@google.com> Add missing include

Change-Id: I9fc3ebf60b98760611ac2071c7c519a0f8326341
emoryLeakTrackUtil.cpp
99021c47f45ee8bf3317cff7d08226e76c8d8227 02-Apr-2014 Jeff Tinker <jtinker@google.com> am f356a123: am 68d9d71a: Support CAST V2 Authentication in MediaDrm

* commit 'f356a123bf966150965a1af1cb9bd6ff2ca020de':
Support CAST V2 Authentication in MediaDrm
f356a123bf966150965a1af1cb9bd6ff2ca020de 02-Apr-2014 Jeff Tinker <jtinker@google.com> am 68d9d71a: Support CAST V2 Authentication in MediaDrm

* commit '68d9d71a792deed75d32fe13febc07c9c12c8449':
Support CAST V2 Authentication in MediaDrm
68d9d71a792deed75d32fe13febc07c9c12c8449 04-Mar-2014 Jeff Tinker <jtinker@google.com> Support CAST V2 Authentication in MediaDrm

Java API version

Update frameworks to enable support for CAST
V2 Authentication in the DRM Plugin.

Change-Id: I9066ada0edf8e0d777c503897d8c7fc7f76f2861
related-to-bug: 12702350
Drm.cpp
c9b8d90dabdf1234be0117c592f635a92c4eb0d9 27-Mar-2014 Glenn Kasten <gkasten@google.com> Merge "Use symbol AUDIO_IO_HANDLE_NONE from <system/audio.h>"
5c4fa907328c8ee586367272c7525cb87742f14d 26-Mar-2014 Glenn Kasten <gkasten@google.com> Merge "Use LOG_ALWAYS_FATAL instead of LOG_FATAL"
142f519aa1acd5804d111e60d100f170fed28405 26-Mar-2014 Glenn Kasten <gkasten@google.com> Use symbol AUDIO_IO_HANDLE_NONE from <system/audio.h>

Change-Id: Id6b1aa17558eb73e17f22b8eab6cd02e00a96dff
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
2301acc6a9c7a3af4ad01f3d1d0f76f13eca7350 17-Jan-2014 Glenn Kasten <gkasten@google.com> Update comments

Change-Id: I5776313b9b49072cd666d28880f0d07cc73f827b
udioSystem.cpp
AudioFlinger.cpp
AudioPolicyService.cpp
adad3d7d935da176ff24941b4ae9edf7340e9b96 21-Feb-2014 Glenn Kasten <gkasten@google.com> Use LOG_ALWAYS_FATAL instead of LOG_FATAL

LOG_FATAL is compiled out in most builds, so the
assertion checks were not being performed.

Change-Id: I774f0985ab9c5ccecd8989a0f1c940386b73fc35
udioTrackShared.cpp
ecdca392ed40e89a6ef14b86446e952c35497ac4 26-Mar-2014 Glenn Kasten <gkasten@google.com> Merge "Use symbolic constants from <system/audio.h>"
51beebba9d4989d05831a13bbe5cdf53ecac1bf5 26-Mar-2014 Glenn Kasten <gkasten@google.com> Merge "Use symbol AUDIO_DEVICE_NONE from <system/audio.h>"
b8f8d231685afdec472136b45c527a71bfb8bcc4 26-Mar-2014 Glenn Kasten <gkasten@google.com> Merge "Remove stream type from AudioSystem::getRenderPosition()"
73ec11738cd4399c55d4905665a14a7c4cd42cbf 26-Mar-2014 Glenn Kasten <gkasten@google.com> Merge "Fix uses of KeyedVector"
8c7b9fb41585fccb06573252823b929c82a40999 26-Mar-2014 Glenn Kasten <gkasten@google.com> Merge "Remove streamType parameter from AudioSystem::getLatency()"
0ed19594452c901c3c8665d06610fffe46895d06 26-Mar-2014 Glenn Kasten <gkasten@google.com> Remove stream type from AudioSystem::getRenderPosition()

The I/O handle is never equal to AUDIO_IO_HANDLE_NONE,
so the stream type is not needed.

Change-Id: I1ab134a2fa379d6dd0b6167345a856a192d478f9
udioSystem.cpp
f7f21b93bfce562784ee8f632fb01a2f8e4ffa6b 26-Mar-2014 Glenn Kasten <gkasten@google.com> Merge "Remove dead code"
ebb80e4f9873cc1a5ee3f766323f622bb0c07ae5 26-Mar-2014 Glenn Kasten <gkasten@google.com> Remove dead code

Change-Id: I0878d11451c7bbbf96b59f5fe0cd97ba1f033aa9
udioTrack.cpp
241618f1b286f9e7e02fe61e96d9194e2e1e8a7a 26-Mar-2014 Glenn Kasten <gkasten@google.com> Remove streamType parameter from AudioSystem::getLatency()

Change-Id: Ie7346e93436ddc215cad7d16be555dcb6c277d54
udioSystem.cpp
udioTrack.cpp
45faf7e02791993a487d6e038d16ff46395f1975 17-Jan-2014 Glenn Kasten <gkasten@google.com> Use symbol AUDIO_DEVICE_NONE from <system/audio.h>

Change-Id: I61f882c5e7c949bf00d3bfc745ebf3b5e1c42a58
udioSystem.cpp
AudioFlinger.cpp
66e4635cb09fadcaccf912f37c387396c428378a 17-Jan-2014 Glenn Kasten <gkasten@google.com> Use symbolic constants from <system/audio.h>

AUDIO_INTERLEAVE_*
AUDIO_STREAM_MIN
AUDIO_SESSION_ALLOCATE

Change-Id: I31dd6f327204685e50716079ce21c4ba206dff11
udioTrack.cpp
oneGenerator.cpp
9ea65d0f4a564478343b1a722fae4ce5883670c3 17-Jan-2014 Glenn Kasten <gkasten@google.com> Fix uses of KeyedVector

Constructor for AudioFlinger::mAudioHwDevs was missing, and so
AudioFlinger::findSuitableHwDev_l() could return an undefined pointer
if a non-0 module wasn't found.

A KeyedVector of Plain Old Data (POD) element type must specify the
default value in the constructor, or else the default will be undefined.

Minor:
- Parameter had wrong type in constructor for AudioSystem::gOutputs.
- Remove obsolete AudioSystem::gStreamOutputMap.

Change-Id: I9841493e018440e559d8b8b0e4e748ba2b2d365b
udioSystem.cpp
85d109a4b0eddd76a8c5cee170bc2bcc99d00118 17-Jan-2014 Glenn Kasten <gkasten@google.com> Document AudioSystem::newAudioSessionId() failures

Change-Id: Iaa168722f362c36bdfa87fe20dc0a59b43cf1ca3
udioSystem.cpp
AudioFlinger.cpp
1392eb3d1802e9f894f87d7a7387207d1b6faca1 25-Mar-2014 Glenn Kasten <gkasten@google.com> Fix operator precedence

Change-Id: I164708a5b76a341a185467b008ecbec98d58a6df
haracterEncodingDetector.cpp
d4a31b8bcd7df99dfce2f25a32badf4611a6ba1a 19-Mar-2014 John Spurlock <jspurlock@google.com> Merge "Add MediaPlayer::getAudioStreamType."
de9453fb5cbc9cd69fd1ea45d577851e3aa3b8c9 19-Mar-2014 John Spurlock <jspurlock@google.com> Add MediaPlayer::getAudioStreamType.

Change-Id: I9cd8a718d2873543609aa651fd85749478f4f89f
ediaplayer.cpp
bfd55f243feb3f04e26ad07aae035475768ada8a 18-Mar-2014 Marco Nelissen <marcone@google.com> Use more tags to help the ICU detector.

The detector only gave non-ascii data to ICU. In some cases that could
result in very short data, for which ICU would issue a low confidence
level for the actual encoding. By padding the data with additional
(ascii) tags, we improve accuracy for such files. Becauses this can
reduce accuracy in other cases, only do this when the initial confidence
is low.

b/13473604

Change-Id: I63d932043155c310b0e358cdf2d37787961e94b7
haracterEncodingDetector.cpp
haracterEncodingDetector.h
c5a17425986b4ce3384e6956762c86018b49c4a0 13-Mar-2014 Glenn Kasten <gkasten@google.com> Remove name output parameter from createTrack

It was only used for one log.
A better solution will be a per-track unique ID.

Change-Id: Ia440e02ae4a5a4019a9a2d08970e1ee93ac4c3a3
udioTrack.cpp
AudioFlinger.cpp
c644345b0b8f5292a049c4cee2bb7a2a6159b884 11-Mar-2014 Jean-Michel Trivi <jmtrivi@google.com> Merge "AudioTrack non-blocking write"
3a90f2849d49bf65f2d6257fd6da30ae46d745fa 10-Mar-2014 Marco Nelissen <marcone@google.com> Fix freeze on pause

isOffloaded() tries to lock mLock again. We should be calling isOffloaded_l()
b/13394633

Change-Id: I155be6fee937f894d8e6c974e593223ab6014ade
udioTrack.cpp
f566406a48ecf878d8a0034b6c600d42454d264c 08-Mar-2014 Eric Laurent <elaurent@google.com> am 6db20dcb: Merge "AudioTrack: When paused, return cached playback position" into klp-dev

* commit '6db20dcb54dad932a3ea2e3a5dca41fce5802eb4':
AudioTrack: When paused, return cached playback position
6950d10077d10757e894d8e125ba5111eb02517a 08-Mar-2014 Glenn Kasten <gkasten@google.com> am 2f55c2c0: Merge "Simplify AudioTrack stream end and fix race" into klp-dev

* commit '2f55c2c03b17795e94b325d402ac5b409e3ba0e8':
Simplify AudioTrack stream end and fix race
3a20f9af8587d2e5bbf4654a3a958f43c4133445 08-Mar-2014 Eric Laurent <elaurent@google.com> am 38efe8eb: am 6db20dcb: Merge "AudioTrack: When paused, return cached playback position" into klp-dev

* commit '38efe8eb08e08610d535a164768851ac7c13d654':
AudioTrack: When paused, return cached playback position
38efe8eb08e08610d535a164768851ac7c13d654 08-Mar-2014 Eric Laurent <elaurent@google.com> am 6db20dcb: Merge "AudioTrack: When paused, return cached playback position" into klp-dev

* commit '6db20dcb54dad932a3ea2e3a5dca41fce5802eb4':
AudioTrack: When paused, return cached playback position
6db20dcb54dad932a3ea2e3a5dca41fce5802eb4 08-Mar-2014 Eric Laurent <elaurent@google.com> Merge "AudioTrack: When paused, return cached playback position" into klp-dev
77a85ebe1fc28f3af07ebefeea53fad778f442c0 07-Mar-2014 Glenn Kasten <gkasten@google.com> am 4ee774f3: am 2f55c2c0: Merge "Simplify AudioTrack stream end and fix race" into klp-dev

* commit '4ee774f322ad3292fcfbb3c120cf250643419425':
Simplify AudioTrack stream end and fix race
4ee774f322ad3292fcfbb3c120cf250643419425 07-Mar-2014 Glenn Kasten <gkasten@google.com> am 2f55c2c0: Merge "Simplify AudioTrack stream end and fix race" into klp-dev

* commit '2f55c2c03b17795e94b325d402ac5b409e3ba0e8':
Simplify AudioTrack stream end and fix race
dcec903589ac651b9f558454392d286c13f743fb 20-Sep-2013 Glenn Kasten <gkasten@google.com> Simplify AudioTrack stream end and fix race

Bug: 10994052
Change-Id: Ib2e38e7a600bcffef8cbc68c1722e40fbbc7ea67
udioTrack.cpp
b8d0b780c9ae160b830cc7a31b22600293e4978b 07-Mar-2014 Glenn Kasten <gkasten@google.com> am af191eb4: Merge "Replace size_t in shared memory by uint32_t"

* commit 'af191eb4feac513d17dc0362e0cea5bc9e0ffe9d':
Replace size_t in shared memory by uint32_t
e857b65c1d3aa055281cb48f59c9b5eb4a062dd0 07-Mar-2014 Narayan Kamath <narayan@google.com> am 3c9130a8: Merge "Make frameworks/av 64-bit compatible"

* commit '3c9130a8a12ce962dc8d22e04243b135b9e98b01':
Make frameworks/av 64-bit compatible
32fbb48de0248518fc5a14099b32fe4b8e9fc102 07-Mar-2014 Glenn Kasten <gkasten@android.com> am 4361749d: Merge "AudioTrack: Never try to use the fast path if resampling is required"

* commit '4361749d74113069aafb0620a1189404205c58d0':
AudioTrack: Never try to use the fast path if resampling is required
2048c2292c0466b184fb8f67c91f4d0ab9f5c3f3 08-Jan-2014 Haynes Mathew George <hgeorge@codeaurora.org> AudioTrack: When paused, return cached playback position

An offload output can be re-used between two audio tracks having
the same configuration. A timestamp query for a paused track
while the other is running would return an incorrect time.
To fix this, cache the playback position on a pause() and return
this time when requested until the track is resumed.

Bug: 12826612.
Change-Id: Ia42b8b8fd2ba8993dfcc9abca72da48d71d78d74
udioTrack.cpp
1c32a00b8750998562a8d76351ba5c6d2ed788c8 07-Mar-2014 Glenn Kasten <gkasten@google.com> Merge "Simplify AudioTrack stream end and fix race"
7064fd2dcdfeafea53cd5a992bb78c413542f29f 08-Jan-2014 Haynes Mathew George <hgeorge@codeaurora.org> AudioTrack: When paused, return cached playback position

An offload output can be re-used between two audio tracks having
the same configuration. A timestamp query for a paused track
while the other is running would return an incorrect time.
To fix this, cache the playback position on a pause() and return
this time when requested until the track is resumed.

Bug: 12826612.
Change-Id: I324112ea9827e52fff53ef44cd8513c8d85a0bc4
udioTrack.cpp
ebcb254adb7402ab89ae97c4d9d16d886790dcb3 06-Mar-2014 Eric Laurent <elaurent@google.com> audio policy service: clean up type casting.

Change-Id: If16d6495c16e0d61a221f81bfd49e7d14bbfdc12
AudioPolicyService.cpp
c1e06f692cf16a8c9f5ae921ab4d642f7a082877 06-Mar-2014 Eric Laurent <elaurent@google.com> am 09e45992: am 25a86930: am 88876fb4: AudioTrack: fix obtainBuffer timeout calculation

* commit '09e45992067f03a05f82400a6cacf16bb8018f16':
AudioTrack: fix obtainBuffer timeout calculation
25a86930ac0ccf4750ad2fb0c2f5a4a122d24ecf 06-Mar-2014 Eric Laurent <elaurent@google.com> am 88876fb4: AudioTrack: fix obtainBuffer timeout calculation

* commit '88876fb4eb8365343f2a9ca0e8f53148ca38b845':
AudioTrack: fix obtainBuffer timeout calculation
d812fc012298470a1b8120e6d60a24b0b1d48047 03-Dec-2013 Glenn Kasten <gkasten@google.com> Increase kFastTrackMultiplier from 1 to 2

Bug: 11967381
Change-Id: Iedec06280aa745d9df5d661f4916940cede9c191
udioTrack.cpp
88876fb4eb8365343f2a9ca0e8f53148ca38b845 28-Jan-2014 Eric Laurent <elaurent@google.com> AudioTrack: fix obtainBuffer timeout calculation

AudioTrack::obtainBuffer() passes a pointer to a timeout
variable that has gone out of scope when calling
ClientProxy::obtainBuffer().

Same fix for AudioRecord.

Bug: 11968591.
Change-Id: I5b3d0d86ed2bd8c0412eb2432b1ab519d70efce9
udioRecord.cpp
udioTrack.cpp
d0115d8c4db2f337030dea706bc0a434c4a03ed6 27-Jul-2013 Eric Laurent <elaurent@google.com> update offloaded audio track sampling rate

AudioPlayer must read the sampling rate from offloaded audio sinks
whenever a new time position is computed as the decoder can update
the sampling rate on the fly.

Bug: 12823955.

Change-Id: I997e5248cfd4017aeceb4e11689324ded2a5bc88
udioTrack.cpp
720ad9ddb2ac6b55b0dfbfcd2d8360151d8ac427 04-Feb-2014 Jean-Michel Trivi <jmtrivi@google.com> AudioTrack non-blocking write

Bug 7531968

Change-Id: I6d0e79fa8cab5b6eb36bcc34977f4cf0d7eec8ea
udioTrack.cpp
ecc8155914bf006d435b825c0fda24f446228709 01-Mar-2014 Glenn Kasten <gkasten@google.com> Merge "Make openRecord_l more like createTrack_l for fast tracks: part 3"
f0aaabfeab95f67889fd417947900d6ec7dbdd3c 28-Feb-2014 Glenn Kasten <gkasten@google.com> Merge "Make openRecord_l more like createTrack_l for fast tracks: part 2"
879707057cde0a83b5f6143c918c66b8f4a97581 28-Feb-2014 Glenn Kasten <gkasten@google.com> Make openRecord_l more like createTrack_l for fast tracks: part 3

Create the callback thread earlier, before creating the IAudioRecord,
so that the thread's tid is available as a parameter to openRecord().

Also move initialization of mCbf to same point as in AudioTrack.cpp.

Change-Id: I61ea4c5e2724ccfc691aaf51bc02a7c10d5a7495
udioRecord.cpp
2c48f27be6b3ae58e451d9b56c1dfd00e606f345 27-Feb-2014 Glenn Kasten <gkasten@google.com> Make openRecord_l more like createTrack_l for fast tracks: part 2

Assume double-buffering because we don't know the true HAL sample rate,
and for fast tracks we must accomodate kernel scheduling and app
computation jitter.

Change-Id: I983d6048a8b4814cfa5bf789397cdd9f1572256c
udioRecord.cpp
d2304db2fcb5112292105a0949a55986a4c9875f 03-Feb-2014 Glenn Kasten <gkasten@google.com> Rename setStreamOutput to invalidateStream

And simplify by removing the unused I/O handle parameter 'output'.

Change-Id: Ie9c4df17a7378066312d4ed8790fda7a9125c95e
AudioFlinger.cpp
33ca5cf8826f5fcd9c011e8d336138b62d982f2a 28-Feb-2014 Glenn Kasten <gkasten@google.com> Merge "Make openRecord_l more like createTrack_l for fast tracks: part 1"
bce50bfc3846ab008bafa75c5d3f29fd7b5395f7 28-Feb-2014 Glenn Kasten <gkasten@google.com> Fix type of AudioTrack/AudioRecord parameter frameCount

It's size_t consistently

Change-Id: I29638ef59ac773218025f2403a3508a307b487e0
udioRecord.cpp
udioTrack.cpp
etPlayer.cpp
oundPool.cpp
838b3d8bafa4a781e277870dee4e0390165cff52 28-Feb-2014 Glenn Kasten <gkasten@google.com> Fix type of AudioTrack/AudioRecord parameter notificationFrames

It's uint32_t consistently

Change-Id: If8298c7e9aeea2b951fe47b675adbdf48d104846
udioRecord.cpp
udioTrack.cpp
484b4cd809aa46a54791d5c82a78d0f8aac895cf 27-Feb-2014 Marco Nelissen <marcone@google.com> Merge "Don't crash on remote read error, just return"
c6ba823a397abf865b02f4f48fe18231f94d8e87 27-Feb-2014 Glenn Kasten <gkasten@google.com> Make openRecord_l more like createTrack_l for fast tracks: part 1

Use the transfer mode to distinguish use cases, as the presence of
a callback handler is not sufficient. For example, the track could be
configured for synchronous transfer with write() or read(), and also
have a callback handler for position updates. But that does not mean
the track can operate in fast track mode.

Change-Id: I2a7f1f0ca98e68efe180b524496985109d8ce291
udioRecord.cpp
udioTrack.cpp
19a9fef6d2970a615f4f33025f9141e44b7c9f34 27-Feb-2014 Marco Nelissen <marcone@google.com> Don't crash on remote read error, just return

Change-Id: I35a2af255f55e008d64142ed0eceb6e83473d630
MediaHTTPConnection.cpp
e27e2d9bcabc1a367cb56b4599665c931a1d22ec 27-Feb-2014 Derek Sollenberger <djsollen@google.com> Fix includes to no longer pull in Skia includes directories.

bug:13225538
Change-Id: I4fccc414923f7e62cd46d691c67cb44b9692c225
ndroid.mk
c08d20b6a37122ebf116262c9372509ed060d4c1 25-Feb-2014 Glenn Kasten <gkasten@google.com> Simplify error handling after track creation

IAudioFlinger::createTrack and IAudioFlinger::openRecord
both guarantee that (status == OK) == (sp<> != 0).

Change-Id: I91cb4f7e843019efb65cace7ba146f7da7aa5b59
udioRecord.cpp
udioTrack.cpp
045e739161f5ae00321a6cfba20935abb791005b 26-Feb-2014 Glenn Kasten <gkasten@google.com> Move initialize of mInput to match AudioTrack

Change-Id: I4dc977f22f51cd618dc83d800b4b8756929a4612
udioRecord.cpp
f7cc3631c5c264e13ce8c6bc15bd829b2ff9b036 26-Feb-2014 Glenn Kasten <gkasten@google.com> Update comments to match AudioTrack

Change-Id: I7dd14eabd78c9130a157da2063a1d65ec4f9c65a
udioRecord.cpp
a5ed48d3476df7dd1e10b380a68e3333f2b646fd 26-Feb-2014 Glenn Kasten <gkasten@google.com> Move initialization of mRefreshRemaining to match AudioTrack

This also fixes a bug where, for a re-created IAudioRecord,
mRefreshRemaining was not being reset correctly.

Change-Id: I9f721a4edf92aab859cf3f247ab7f65562d14fb0
udioRecord.cpp
591d9a3652f868652ccc48dd9e9714f3a9813963 25-Feb-2014 Glenn Kasten <gkasten@google.com> Merge "mAudioRecord is always non-0 if set() is successful"
7c1b8941bb54e38f2a717e41af0d9565f5977c27 25-Feb-2014 Glenn Kasten <gkasten@google.com> Merge "Unify comments and whitespace between AudioTrack and AudioRecord"
6c69333431b2fdd995a1c2eb6f01182155f4a691 25-Feb-2014 Glenn Kasten <gkasten@google.com> Merge "Update channel fields at same place in AudioTrack and AudioRecord"
882469cfe767188a4c67d2d83f3d72ab553a4818 25-Feb-2014 Glenn Kasten <gkasten@google.com> Merge "Update mReqFrameCount at same point in AudioTrack and AudioRecord"
99ef241a8d310b3319c02eac18de9bb7422c5ab0 25-Feb-2014 Glenn Kasten <gkasten@google.com> Merge "Permit AudioRecord to support non-linear formats in future"
9f474b7824abb0d5408d02e365cf37a986663979 25-Feb-2014 Glenn Kasten <gkasten@google.com> Merge "Simplify and cleanup error handling in AudioRecord::getMinFrameCount"
172abfe2cc30104282f8e65b82e9c9758adc83da 25-Feb-2014 Glenn Kasten <gkasten@google.com> Merge "Add log at entry to set() in AudioTrack and AudioRecord"
b42f318d9733f88c7eb9bedfd33b086b8ea5dff5 24-Feb-2014 Glenn Kasten <gkasten@google.com> Simplify and cleanup error handling in AudioRecord::getMinFrameCount

Change-Id: I8721ecedfb429c4e233453d1e768ddf69ecabbe4
udioRecord.cpp
089e87201522c8979ac8f00fa729e907f54c790b 25-Feb-2014 Glenn Kasten <gkasten@google.com> mAudioRecord is always non-0 if set() is successful

Change-Id: I0c2483210903c922f06f097ada373a37b9a90a02
udioRecord.cpp
5f631515d098c29603cda88f7a7e7580a2d55b57 25-Feb-2014 Glenn Kasten <gkasten@google.com> Unify comments and whitespace between AudioTrack and AudioRecord

Change-Id: I5320a6b2d7f7077cb12d7da4f2ca30a940100bf2
udioRecord.cpp
udioTrack.cpp
e3247bf8dd4f8fa8dfa3a108260241ae4a967569 25-Feb-2014 Glenn Kasten <gkasten@google.com> Update channel fields at same place in AudioTrack and AudioRecord

Change-Id: I4b649feeef47e7968a9fa3a460217017ca9b05fe
udioTrack.cpp
11cb175005db0090345f44bfa049b52fd8c809b8 25-Feb-2014 Glenn Kasten <gkasten@google.com> Update mReqFrameCount at same point in AudioTrack and AudioRecord

Change-Id: I12369dfbb9e75389f2cab015a706decdaf310a0d
udioRecord.cpp
c85df82b1e8b05714268926a8bb3deb9c65f9a22 25-Feb-2014 Glenn Kasten <gkasten@google.com> Permit AudioRecord to support non-linear formats in future

But still restricted to 16-bit PCM currently

Change-Id: I5df0e5033da9144ca73e44addf14a63d31406034
udioRecord.cpp
86f04663032ddaa25110149d709bbf896ad83b02 25-Feb-2014 Glenn Kasten <gkasten@google.com> Add log at entry to set() in AudioTrack and AudioRecord

Change-Id: Ife23b88474c1d62c0cf682c1a310d951f2c0f54a
udioRecord.cpp
udioTrack.cpp
c9c7e25a4b1c34439fb365f6cfbef063884566cc 21-Feb-2014 Marco Nelissen <marcone@google.com> Add method to get redirected Uri

Change-Id: Id8aac1077c3de1bb1f58bfcfcca93d685abe9b79
MediaHTTPConnection.cpp
e9841c60ab2b954b97628801bd3bb2f84a69a35e 18-Feb-2014 Glenn Kasten <gkasten@google.com> Merge "Simplify and remove old comment"
6dd62fb91d82dedcfa3ab38c02eb0940b4ba932a 06-Dec-2013 Glenn Kasten <gkasten@google.com> Multi-client recording

Supports multiple clients both at native sample rate and with resampling.

Change-Id: Icea55b4fd30751761b7debaa3ce016c79e712d8d
udioRecord.cpp
ee3759090c2194eaeca4944a01104771ff1c91d2 18-Feb-2014 Glenn Kasten <gkasten@google.com> Simplify and remove old comment

Change-Id: Iee41641252f65cea9ce0ea0ec1ea4229608f7c64
ndroid.mk
f3b785ae6ea135115b54ac58cedc12b444483902 18-Feb-2014 Glenn Kasten <gkasten@google.com> Merge "Move StateQueueInstantiations to libinstantssq"
3e8027a04c20a4b7028f1615538b36219386c9e5 15-Oct-2013 Glenn Kasten <gkasten@google.com> Move StateQueueInstantiations to libinstantssq

This removes a circular dependency between libmedia and libnbaio

Change-Id: I3692cbbe2b76028a953b36606b62cdda70c8c26f
ndroid.mk
7074296c72b3be919ebc9dfd504f4572a188d2e7 18-Feb-2014 Glenn Kasten <gkasten@google.com> Fix warning due to incorrect log format

Change-Id: I58ff399ace74965ebf8e5690c20637385f9425ad
AudioFlinger.cpp
e03dd22716e688faa56467561827d9b1ea0c4214 28-Jan-2014 Glenn Kasten <gkasten@google.com> When passing a size_t via binder, use 64-bits unconditionally

64-bits is almost always over-kill. But it's easier and cleaner to change
the binder code to be accurate, than to rename all the the API parameter
types to be 32-bit.

Bug: 12381724
Change-Id: Ib8f198d814a2027760ef24e9e3feacee21a973b1
AudioFlinger.cpp
AudioFlingerClient.cpp
AudioTrack.cpp
MediaLogService.cpp
MediaMetadataRetriever.cpp
OMX.cpp
StreamSource.cpp
751a9c8cbc391a91604dd1052fb95d3e4d278c2f 28-Jan-2014 Glenn Kasten <gkasten@google.com> Replace size_t in shared memory by uint32_t

Eventually we may want to use uint64_t, but will need to confirm atomicity.

Bug: 12381724
Change-Id: Ia2c591d262d22b47b6f7dab4b9d9faa14b86d865
udioTrackShared.cpp
d457c970c8d08519cd77280a90b61ae1e342cfe3 11-Feb-2014 Marco Nelissen <marcone@google.com> Track pid for each session

so they can be properly freed.

Change-Id: I6f389035bc29e74e7c367c1c6d0252b180f666b3
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
ediaplayer.cpp
1d6fa7af1288b550faabe4ec2cf98684236723db 11-Feb-2014 Narayan Kamath <narayan@google.com> resolved conflicts for merge of 566be7c3 to master

Change-Id: I7b1cc71057b2bd4f771e7bcf508a8c3abd6017ce
377b2ec9a2885f9b6405b07ba900a9e3f4349c38 03-Feb-2014 Kévin PETIT <kevin.petit@arm.com> Make frameworks/av 64-bit compatible

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
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
43bdc1de363a3c72c7dcf9c9a898bac109dc7cb5 10-Feb-2014 Glenn Kasten <gkasten@google.com> Fix build after merge from AOSP

Change-Id: I1cd3432c02db1600e49ade67e6a89e39e7a8d3ed
udioTrack.cpp
3523e8c40bc60af0c95d1aa71a51a13d69ec80a2 10-Feb-2014 Glenn Kasten <gkasten@android.com> am 4e12dade: am 4361749d: Merge "AudioTrack: Never try to use the fast path if resampling is required"

* commit '4e12dadeec10993d2f77cce96600e73ca0dd86e2':
AudioTrack: Never try to use the fast path if resampling is required
ec95f0e82a680931e9c7c9011dbbd68d5ab484c8 10-Feb-2014 Glenn Kasten <gkasten@google.com> Merge "Use printf format %#x for audio_format_t in logs"
1dd3da08445ac96e64a1ca72ba0c11876cc4d631 08-Feb-2014 Glenn Kasten <gkasten@google.com> Merge "Fix warnings about unused parameters"
4944acb7355b3aa25748fd25945a363a69d65444 19-Aug-2013 Glenn Kasten <gkasten@google.com> Fix whitespace

Change-Id: I9add0872030a26933f6b6dad1be299154611cc56
udioSystem.cpp
oundPool.cpp
cac3daa6332bf6d1f7d26adc4a9915f3d7992dd9 07-Feb-2014 Glenn Kasten <gkasten@google.com> Use printf format %#x for audio_format_t in logs

Change-Id: I1c611d1037685d52ccc84efe0fccd6413ec938e9
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
80520381d0bdf3451bd17c9ddef73d3fe71c58c2 01-Feb-2014 Glenn Kasten <gkasten@google.com> Fix warnings about unused parameters

Change-Id: I27dc108e2c1f7ffd414bb7ff3d4c349651da6c26
ediaProfiles.cpp
cfb2c130153eaf6e8bb36c5d787557e78bf9804b 06-Feb-2014 Andreas Huber <andih@google.com> Merge "Remove no longer needed http proxy handling code, it's obsolete now"
81e68448f3361eaf8618930471fdc3c21bdf5cbc 05-Feb-2014 Andreas Huber <andih@google.com> Remove no longer needed http proxy handling code, it's obsolete now

since we started to use java's HTTPConnection instead of the native
implementation. Also remove other remnants of the previous http implementation,
such as accounting for the http user's uid.

Change-Id: I60bfd31381ea40d2220db587ec5c433093b60034
MediaPlayerService.cpp
ediaplayer.cpp
0f1f2826893bd55da8e93b79830d3a7b171509e3 05-Feb-2014 Glenn Kasten <gkasten@google.com> Merge "Add AudioRecord::mReqFrameCount similar to AudioTrack"
b3b2e23fcf7e050710d23b82a6682c0f3d869b69 05-Feb-2014 Glenn Kasten <gkasten@google.com> Add AudioRecord::mReqFrameCount similar to AudioTrack

Change-Id: I62d6534a9581e84ae20c2422f7ad9aeda9b7c4df
udioRecord.cpp
412d4744efae64083e4f99a664e3efaba031af48 05-Feb-2014 Andreas Huber <andih@google.com> Merge "FINAL ATTEMPT: HTTP services are now provided from JAVA and made available to media code"
2a16afb8dc056877f34124ba5befe75171de930f 05-Feb-2014 Glenn Kasten <gkasten@google.com> Merge "Fix unused parameter warnings in audio"
1b86fe063badb5f28c467ade39be0f4008688947 29-Jan-2014 Andreas Huber <andih@google.com> FINAL ATTEMPT: HTTP services are now provided from JAVA and made available to media code

Change-Id: I9f74a86e70422187c9cf0ca1318a29019700192d
ndroid.mk
MediaHTTPConnection.cpp
MediaHTTPService.cpp
MediaMetadataRetriever.cpp
MediaPlayer.cpp
MediaPlayerService.cpp
oundPool.cpp
ediametadataretriever.cpp
ediaplayer.cpp
e726d65778ce78092010df2354156c09d311423f 03-Feb-2014 Glenn Kasten <gkasten@google.com> Merge "Replace size_t in shared memory by uint32_t"
0f11b51a57bc9062c4fe8af73747319cedabc5d6 01-Feb-2014 Glenn Kasten <gkasten@google.com> Fix unused parameter warnings in audio

Change-Id: I665ba3358dd9502f0adec70d486e7bf8a2e1b0fe
udioEffect.cpp
udioRecord.cpp
udioSystem.cpp
398f21348e5100289f6e5be30c8b5257fa04aaf9 31-Jan-2014 Martin Storsjo <martin@martin.st> AudioTrack: Never try to use the fast path if resampling is required

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
udioTrack.cpp
fdac7c00f9201bb3a9862069145f01d37e39755b 28-Jan-2014 Glenn Kasten <gkasten@google.com> Replace size_t in shared memory by uint32_t

Eventually we may want to use uint64_t, but will need to confirm atomicity.

Bug: 12381724
Change-Id: Ia2c591d262d22b47b6f7dab4b9d9faa14b86d865
udioTrackShared.cpp
df576995a5aad3428aeeef765387d650945c161d 28-Jan-2014 Eric Laurent <elaurent@google.com> AudioTrack: fix obtainBuffer timeout calculation

AudioTrack::obtainBuffer() passes a pointer to a timeout
variable that has gone out of scope when calling
ClientProxy::obtainBuffer().

Same fix for AudioRecord.

Bug: 11968591.
Change-Id: I22af8f94fa2f8cc54ab5c25c89167c805e754317
udioRecord.cpp
udioTrack.cpp
8e26486d2d811f94118381a163178078a3eee6c0 27-Jan-2014 Eric Laurent <elaurent@google.com> am 9f875b27: am 8ba3192f: am d0e7e801: Merge "Do partial reads in MemoryLeakTrackUtil"

* commit '9f875b2717b683cc61e3fa4ba24b3693fab5b46a':
Do partial reads in MemoryLeakTrackUtil
363fb75db26698cbb50065506e0c80b61d1fbf92 15-Jan-2014 Glenn Kasten <gkasten@google.com> Remove the redundant parameters from createTrack_l()

AudioRecord::openRecord_l() code was refactored earlier to
remove the redundant parameters:
> Change-Id: I124dce344b1d11c2dd66ca5e2c9aec0c52c230e2

This changelist refactors AudioTrack similarly.

Change-Id: Iefd2bd662870ea81d04eff7b7c26f9c8b0dadd26
udioTrack.cpp
38e905b3cbba4da443d799b16999989781afc6d8 13-Jan-2014 Glenn Kasten <gkasten@google.com> Refactor code related to I/O handles to reduce chance for leaks

The AudioRecord input handle code was refactored earlier
to fix a potential handle leak, and to simplify the code:
> Change-Id: I124dce344b1d11c2dd66ca5e2c9aec0c52c230e2

This changelist refactors AudioTrack similarly,
and adds further cleanup of both AudioTrack and AudioRecord.

We attempt to implement the rules for referencing counting I/O handles,
but there is still the possibility of a handle leak if the client process
dies after allocating the handle reference but before releasing it.
That issue is being tracked separately.

Details:
- AudioSystem::getOutput() is now called within createTrack_l
- restoreTrack_l was missing offload info
now it has the info available,
but is not yet being called for offloaded tracks
- AudioTrack::getOutput() is now const
- Remove getOutput_l()

Change-Id: I44a0a623d24fc5847bcac0939c276400568adbca
udioRecord.cpp
udioTrack.cpp
f0002d142e6d24c5438600b2c259679de710f8ac 24-Jan-2014 Glenn Kasten <gkasten@google.com> Merge "Replace control block frameCount_ by explicit in/out parameter"
6d39eb9d7da2ca8eb733f2d2eba686c56b24885b 22-Jan-2013 Oscar Rydhé <oscar.rydhe@sonymobile.com> Do partial reads in MemoryLeakTrackUtil

Do partial read in MemoryLeakTrackUtil dumpMemoryAddresses
to avoid using more memory than what is allocated.

Change-Id: I94feb4e00647407f938571167b981c7371f39e3d
emoryLeakTrackUtil.cpp
3a0b6bd22aa32daa729b05c33896400807027eee 17-Jan-2014 Glenn Kasten <gkasten@google.com> Merge "Use uint32_t sequence numbers for IAudioRecord"
1071915ad4ffb47825a946706f8fa73c0d22d7f8 17-Jan-2014 Glenn Kasten <gkasten@google.com> Merge "Make copy of audio_offload_info_t for future use"
543140eb709a07bc386eb5f667a4a72e31dba56c 17-Jan-2014 Glenn Kasten <gkasten@google.com> Merge "Move up initialization of mFormat, mStreamType, and mSharedBuffer earlier"
0ce5ca5e113d58cbcb7cb48615d6dbbf3fbe7c66 17-Jan-2014 Glenn Kasten <gkasten@google.com> Merge "Cleanup createTrack error handling"
d0b33f63a9364364a827e77da26b112edf3c4d6e 17-Jan-2014 Glenn Kasten <gkasten@google.com> Merge "Remove dead code in AudioTrack::processAudioBuffer"
269a7e210949c4b28ba84dc71b9f99f6ef14f94e 17-Jan-2014 Glenn Kasten <gkasten@google.com> Merge "Cleanup loop termination logic in AudioRecord::obtainBuffer()"
a1ebc3b03d4dca534374c19e3c4f32ee687942e3 17-Jan-2014 Glenn Kasten <gkasten@google.com> Merge "Improve logs in AudioTrack::getMinFrameCount"
6d88aaf9cd810d96a4888dff8bd33d44cd01ccaa 17-Jan-2014 Glenn Kasten <gkasten@google.com> Merge "AudioRecord: fix unwanted overrun when restarting"
6a507298357c9ff869b97db57a890e58bd6bdec0 17-Jan-2014 Glenn Kasten <gkasten@google.com> Merge "AudioRecord::getInputFramesLost() cleanup"
32a7e0a5f7b000951b9adb80b17796f35b024816 17-Jan-2014 Glenn Kasten <gkasten@google.com> Merge "Unify comments between AudioTrack and AudioRecord"
b5ccb2d99b2af400c70777a6452f090ac14f5a96 13-Jan-2014 Glenn Kasten <gkasten@google.com> Make copy of audio_offload_info_t for future use

Change-Id: I515970aa0660418d5d1640fb1bf477e112c89bdd
udioTrack.cpp
dd5f4c8c4059f890e81b28b026a688febb4e1dd9 13-Jan-2014 Glenn Kasten <gkasten@google.com> Move up initialization of mFormat, mStreamType, and mSharedBuffer earlier

This will allow removal of most of the parameter list to createTrack_l.

Also check for valid stream type at client so we can log a better error
message.

Change-Id: Ia7176896d47fbb49106119fca26d9de8e7efe859
udioTrack.cpp
0cde076ddb283c84c3801a2df4cc3df99bd1577f 17-Jan-2014 Glenn Kasten <gkasten@google.com> Cleanup createTrack error handling

Similar to cleanup done earlier for openRecord in this CL:
> Change-Id: I84897dd7d30b370640b54e928f230604b873cb68

Bug: 10888816
Change-Id: I804a47f898e0319a60a9bd58906bbb037e45cc25
udioTrack.cpp
AudioFlinger.cpp
5e1f79baa5c7355effbd2c9183787d6604487908 15-Jan-2014 Glenn Kasten <gkasten@google.com> AudioRecord: fix unwanted overrun when restarting

Apply the same fix to AudioRecord as this CL did for AudioTrack:
> Change-Id: Id703f8dc092a6f07c905eee194054b4a978f979d

Details:
When restarting an AudioRecord from stopped state, it is necessary
to force refresh of mRemainingFrames by processAudioBuffer() as
the last read before stop() could be partial. No doing so will lead
into unnecessary sleep before filling the non contiguous part
of the buffer returned by obtainBuffer() when processAudioBuffer()
is executed for the first time after start().

Change-Id: I0ff04648e990e97bad5ea3db5be0c4151250d5e1
udioRecord.cpp
d8a9d0220e84ae0b5049385aa9b1a0d8ea02b5bb 15-Jan-2014 Glenn Kasten <gkasten@google.com> Cleanup loop termination logic in AudioRecord::obtainBuffer()

Apply the same change to AudioRecord, that was already done for AudioTrack in this CL:
> Change-Id: I0fc48117946364cb255afd653195498891f622bd

If the proxy->obtainBuffer at the end of the "do" loop fails with status
DEAD_OBJECT, and the restoreRecord_l during the next trip of the "do"
loop also fails, then the value of the buffer fields will be based on
the previous proxy->obtainBuffer that returned DEAD_OBJECT. This will
have cleared the buffer, but it's tricky. So instead explicitly clear
the buffer after restoreRecord_l, before breaking out of the loop.

Change-Id: Ifc97f2ab7b8195d6b149502bb5d765d2983b07be
udioRecord.cpp
70c0bfbe5ec88dcc3efa2bd8df26f36cff1cf03a 15-Jan-2014 Glenn Kasten <gkasten@google.com> Improve logs in AudioTrack::getMinFrameCount

Change-Id: I8b478e6abdded26a43f32c131931939e9ae36fd7
udioTrack.cpp
7103d9671ded507fd3f6938297019a32f71ea5a0 15-Jan-2014 Glenn Kasten <gkasten@google.com> Remove dead code in AudioTrack::processAudioBuffer

Change-Id: I0baefe9dc08bb5ec45d34698fc764caa160789d2
udioTrack.cpp
8ff50e7526d24aca11713006933b8dcb64ef6be9 15-Jan-2014 Glenn Kasten <gkasten@google.com> Use uint32_t sequence numbers for IAudioRecord

This makes it the same as for IAudioTrack.

Previously we had a mix of int, int32_t and uint32_t,
which could cause comparisons to fail.

Change-Id: Ic72ef650ee81f65db11e42ed16d818fdf3e310f4
udioRecord.cpp
ac1954cb9a480a409e8cee4193fc534a6a29fbb6 15-Jan-2014 Glenn Kasten <gkasten@google.com> Merge "Document AudioTrack mFrameCount and mReqFrameCount better"
dbed8955148dd2fe39584007c528e3a532f1a04e 15-Jan-2014 Glenn Kasten <gkasten@google.com> Merge "Fix error handling in AudioSystem::getOutputForEffect"
5f972c031d4061f4f037c9fda1ea4bd9b6a756cd 13-Jan-2014 Glenn Kasten <gkasten@google.com> AudioRecord::getInputFramesLost() cleanup

Fixed bug that if the binder call failed (for example if the
IAudioFlinger binder is dead), then getInputFramesLost was returning
garbage. Now it correctly returns zero, which is the error value for
this method.

The type declarations for getInputFramesLost were inconsistent:
a mixture of unsigned int, size_t, and uint32_t. Now it returns uint32_t
everywhere, which is what the underlying HAL API returns.

Added a FIXME about the side effect behavior. This will need review
for multi-client.

Change-Id: Ifa2e117a87dbd0c1f2c892a31d1c3dd919bf1a0a
udioRecord.cpp
udioSystem.cpp
AudioFlinger.cpp
5b27ccd67c845aa20a12a1fb58339e7e81e3d536 15-Jan-2014 Glenn Kasten <gkasten@google.com> Merge "Use AUDIO_SESSION_ALLOCATE instead of 0"
2b2165c75790050810460c8de3f414876bce4c0e 13-Jan-2014 Glenn Kasten <gkasten@google.com> Unify comments between AudioTrack and AudioRecord

Change-Id: I00a1025e2891a1c96218b3c2187eaddda6614ebc
udioRecord.cpp
udioTrack.cpp
23a7545c4de71e989c2d8ebf1d5b9dcf463c36a9 13-Jan-2014 Glenn Kasten <gkasten@google.com> Document locking rules for mFlags, and fix discrepancies

Change-Id: Id45ba544cc84133ed5e578fb4fd8a11b62211dc1
udioTrack.cpp
84fba38b60c2ddb02b9a787f56be88fc084b4a16 14-Jan-2014 Glenn Kasten <gkasten@google.com> Merge "Fix race in AudioTrack::getParameters()"
7e47f25f9031e231f5fdbbb789435485d1af45af 14-Jan-2014 Glenn Kasten <gkasten@google.com> Merge "Improve error logging for getOutputSamplingRate"
41721bb796da589f8a669d1db7687a0da8f88761 13-Jan-2014 Glenn Kasten <gkasten@google.com> Fix race condition in AudioRecord::pause followed by start

Bug: 11148722
Change-Id: Ia1e14133d73ac301fe06a047e70a573911822630
udioRecord.cpp
b1bef51fec06e8bceec914d1b48b411d3ff2adff 13-Jan-2014 Glenn Kasten <gkasten@google.com> Improve error logging for getOutputSamplingRate

Change-Id: I3b52402a663b27efe1d7c6a4f684521f33f3ff8f
udioTrack.cpp
2c6c5294388e251ebc1e00d6c8785190561c27fc 13-Jan-2014 Glenn Kasten <gkasten@google.com> Fix race in AudioTrack::getParameters()

mOutput is protected by mLock.

Change-Id: Id02e627062855ca60f28bd8961b1d5f44939c727
udioTrack.cpp
396fabdb6efcdac5aea3d9f559d1beedf6a4cedc 08-Jan-2014 Glenn Kasten <gkasten@google.com> Document AudioTrack mFrameCount and mReqFrameCount better

and remove unnecessary initialization of mFrameCount in set().

Change-Id: I9effeb0a6dd035ca02fe77f6992c55d9515b4df6
udioTrack.cpp
efa6ea97022780b68e595e5326e30dbe2a799202 08-Jan-2014 Glenn Kasten <gkasten@google.com> Fix error handling in AudioSystem::getOutputForEffect

and AudioPolicyService::getOutputForEffect.
The conventional error value for audio_io_handle_t is 0,
not a status_t cast to audio_io_handle_t.

Change-Id: I34b3fd1a50f3fa1cbf39f32eea1911112a4e094a
udioSystem.cpp
e2b2858b6ff0249b0c3bd6cb042afc8cf1fd78cf 09-Jan-2014 Glenn Kasten <gkasten@google.com> Merge "Cleanup AudioTrack::getMinFrameCount error handling"
f344c6cef51df9974640557f7baccb537492fa54 09-Jan-2014 Glenn Kasten <gkasten@google.com> Merge "Cleanup AudioSystem::getInputBufferSize error handling and caching"
66a0467fdddada4caabd0f0a999fbb367fea7bee 08-Jan-2014 Glenn Kasten <gkasten@google.com> Cleanup AudioTrack::getMinFrameCount error handling

Guarantee to return a non-zero frameCount for return status NO_ERROR;

Return the correct specific status_t if any of the AudioSystem APIs fail,
instead of the generic NO_INIT.

API change: getMinFramCount no longer defaults to zero on error, so
callers _must_ check the return status. This change makes
getMinFrameCount more like other APIs. All known callers were reviewed,
and they do check the return status.

Change-Id: I4a8342a75ee89a068c23c84b8380ed9d1b968507
udioTrack.cpp
f94006ca0f30c27868c284e553f57bf467ae92bc 08-Jan-2014 Glenn Kasten <gkasten@google.com> Cleanup error handling in AudioSystem get methods

Don't return zero sample rate or frame count without an error.

Change-Id: I052d841080ed33e4f081ae9825a2f33dff444fb9
udioSystem.cpp
5446e541367061b53f45f3fd4600f9060680bca3 08-Jan-2014 Glenn Kasten <gkasten@google.com> Cleanup AudioSystem::getInputBufferSize error handling and caching

Previously, if the IAudioFlinger::getInputBufferSize failed,
it would return NO_ERROR but a zero buffer size value, which could
confuse the caller. Now it returns BAD_VALUE in this case.

Also it would still cache the zero buffer size. Now it does
not cache on failure.

Removed over-initialization of the cache globals.

Change-Id: I6835fcb56fe52535e018fc8c0c242115221b5d85
udioSystem.cpp
a36ff9fdf912b54f639118578e8d9582e1d70dca 21-Dec-2013 Glenn Kasten <gkasten@google.com> Merge "Fix some (but not all) unused parameter warnings"
73b61d3c2906d6d70a0843c1f0470f514c312956 21-Dec-2013 Glenn Kasten <gkasten@google.com> Merge "Add versions of get/SetParameters without I/O handle"
aea7ea06394bcb155972d82055d4ea59962e4051 26-Jun-2013 Glenn Kasten <gkasten@google.com> Use AUDIO_SESSION_ALLOCATE instead of 0

Also fix a couple of places where we were using AUDIO_SESSION_OUTPUT_MIX,
which happens to also be equal to 0, but has a different meaning.

Change-Id: I90e39be3b89f5021a96d9e3b8d10929013ca977f
udioRecord.cpp
AudioFlinger.cpp
74935e44734c1ec235c2b6677db3e0dbefa5ddb8 19-Dec-2013 Glenn Kasten <gkasten@google.com> Replace control block frameCount_ by explicit in/out parameter

in IAudioFlinger::createTrack and IAudioFlinger::openRecord

Change-Id: I09c644c80e92c8e744b1b99055988a2588b2a83d
udioRecord.cpp
udioTrack.cpp
udioTrackShared.cpp
AudioFlinger.cpp
7c7be1e05634d96d08210efb4bdeb012ffba440d 20-Dec-2013 Glenn Kasten <gkasten@google.com> Fix some (but not all) unused parameter warnings

Change-Id: Ia99e23a0b46db3f3e6aa46f9018e63c14f4af369
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
udioTrackShared.cpp
MediaDeathNotifier.cpp
oundPool.cpp
ediametadataretriever.cpp
c23885ebb142b9da31543789ecc3f7cf7111bc67 20-Dec-2013 Glenn Kasten <gkasten@google.com> Add versions of get/SetParameters without I/O handle

This is a step towards hiding I/O handles from application level,
as much as possible.

Change-Id: I30f4171d5dcf77f8e8eb332ce2e9245b30f5f2e1
udioSystem.cpp
be08f6a6688f3b1ae6914fbe800953c9bfb13c45 19-Dec-2013 Glenn Kasten <gkasten@google.com> Fix compile warning / incomplete initialization

Change-Id: Ib4accf99be800988e081f96222e1ee73538221ec
ediaplayer.cpp
dfeed91152cb54772b1411d7e82833ca4a48efcc 27-Nov-2013 Eric Laurent <elaurent@google.com> AudioTrack: fix position callback after restore

When restoring an AudioTrack, the next position callback point
should not be modified and set ahead of current buffer head.
Otherwise, as frames are dropped, the new position is never reached
and an application relying on position callbacks to reload the buffer
would be stalled.

Bug: 11868603.
Change-Id: I93b2a311642a0c89944b78bcc0482d4ceed98ae4
udioTrack.cpp
5e49afd05566820517747b9a8071c99ec0918328 27-Jul-2013 Eric Laurent <elaurent@google.com> update offloaded audio track sampling rate

AudioPlayer must read the sampling rate from offloaded audio sinks
whenever a new time position is computed as the decoder can update
the sampling rate on the fly.

Change-Id: I997e5248cfd4017aeceb4e11689324ded2a5bc88
udioTrack.cpp
688ca6330a5e7d072f67a1791e464fa7dec08b72 17-Dec-2013 Glenn Kasten <gkasten@google.com> am 5c474238: am 5893736d: am a67c7653: Merge "Increase kFastTrackMultiplier from 1 to 2"

* commit '5c474238bc579224ec8f7267d05651b0aa934100':
Increase kFastTrackMultiplier from 1 to 2
a67c76538fff102cd44b2f38dd073df5f2a33605 17-Dec-2013 Glenn Kasten <gkasten@google.com> Merge "Increase kFastTrackMultiplier from 1 to 2"
544ad2be674423238c47650d2c8588ba7dfc9ed2 13-Nov-2013 Marco Nelissen <marcone@google.com> Better character set encoding detection

Id3 tags are supposed to be ISO-8859-1 or unicode, but often aren't.
To better detect the real encoding we now use ICU to detect possible
encodings for a given byte sequence, then apply additional heuristics
to determine the most likely one.
b/5564857

Change-Id: I53bc83b006433da5c2f2ccfcd770ddb3a26b64d0
ndroid.mk
haracterEncodingDetector.cpp
haracterEncodingDetector.h
haracterEncodingDetectorTables.h
ediaScannerClient.cpp
utodetect.cpp
utodetect.h
b5fed68bcdd6f44424c9e4d12bfe9a3ff51bd62e 03-Dec-2013 Glenn Kasten <gkasten@google.com> Increase kFastTrackMultiplier from 1 to 2

Change-Id: I158f147295eebcea96e4047d7618069bc48bdd7d
udioTrack.cpp
b31788687736666e58b852e744a93f772d3f7148 27-Nov-2013 Eric Laurent <elaurent@google.com> AudioTrack: fix position callback after restore

When restoring an AudioTrack, the next position callback point
should not be modified and set ahead of current buffer head.
Otherwise, as frames are dropped, the new position is never reached
and an application relying on position callbacks to reload the buffer
would be stalled.

Bug: 11868603.
Change-Id: I93b2a311642a0c89944b78bcc0482d4ceed98ae4
udioTrack.cpp
a4f24ff9b239300b4bb2098c1413c0a60edc2d7e 27-Nov-2013 Eric Laurent <elaurent@google.com> AudioTrack: fix position callback after restore

When restoring an AudioTrack, the next position callback point
should not be modified and set ahead of current buffer head.
Otherwise, as frames are dropped, the new position is never reached
and an application relying on position callbacks to reload the buffer
would be stalled.

Bug: 11868603.
Change-Id: I93b2a311642a0c89944b78bcc0482d4ceed98ae4
udioTrack.cpp
71008b39396932f2f68f25598e9b7eb08d17d663 23-Nov-2013 Glenn Kasten <gkasten@google.com> Merge "Check all server-provided sp<IMemory>"
6f59db12a64f4496866952a251122ccb77a36c6b 27-Jul-2013 Eric Laurent <elaurent@google.com> update offloaded audio track sampling rate

AudioPlayer must read the sampling rate from offloaded audio sinks
whenever a new time position is computed as the decoder can update
the sampling rate on the fly.

Change-Id: I997e5248cfd4017aeceb4e11689324ded2a5bc88
udioTrack.cpp
a1d401d9f4a6ba477f0e07204e0b9481befcc928 20-Nov-2013 Glenn Kasten <gkasten@google.com> Check all server-provided sp<IMemory>

If the sp<IMemory> from server is non-0, make sure it also has
a non-NULL pointer(). If it is NULL, treat it as if the sp<> was 0.

Change-Id: I6d0bd786587eb73fac38af787c11eba541880685
AudioRecord.cpp
AudioTrack.cpp
Effect.cpp
a218f53d6cf9138aa5482935c16a84a5983ec6af 08-Nov-2013 Glenn Kasten <gkasten@google.com> Merge "Remove default channel mask for AudioTrack"
8ba90326d683b035d99e24db669093e4602a7149 30-Oct-2013 Glenn Kasten <gkasten@google.com> Remove default channel mask for AudioTrack

It doesn't make sense to have a default channel mask, since the caller
needs to know what format it will use when supplying data, and there
is currently no API to return the channel mask of an AudioTrack.
audio_is_output_channel() does not allow 0, so it will catch any
stragglers (I'm not aware of any).

Also move channel mask validation earlier.

Change-Id: Ia018ded8711455581a2a935f37432b049422d492
udioTrack.cpp
79c5786cf5a5d572cfcf21c3d40613d86bb4093a 30-Oct-2013 Glenn Kasten <gkasten@google.com> Clean up channel mask handling

Use type audio_channel_mask_t instead of uint32_t.

Use function audio_channel_out_mask_from_count() to convert from channel
count to channel mask instead of hard-coded assumption.

Rename 'channels' to 'channelMask' to avoid confusion with channel count.

Change-Id: I21a85e668458b773d108f95c2381eef9c4816251
oundPool.cpp
241be8d5874023761121043b8709a6062baac6f1 26-Oct-2013 Marco Nelissen <marcone@google.com> am 9cae2170: Assign blame for playback wakelocks.

* commit '9cae217050aa1347d4ac5053c305754879e3f97f':
Assign blame for playback wakelocks.
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
udioTrack.cpp
AudioFlinger.cpp
462fd2fa9eef642b0574aa7409de0bde3fec8d43 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.

Change-Id: I7329f88a288a95a582a78005a1c3d16a5a611e31
udioTrack.cpp
AudioFlinger.cpp
a153b68f2260a8ed7fbb236fa659b13264ac5ac0 19-Oct-2013 Glenn Kasten <gkasten@google.com> am 77177fa2: am 95c03858: Merge "Allow releaseBuffer after flush" into klp-dev

* commit '77177fa20773d02b4f9c4147ecb98107f019fa7d':
Allow releaseBuffer after flush
77177fa20773d02b4f9c4147ecb98107f019fa7d 19-Oct-2013 Glenn Kasten <gkasten@google.com> am 95c03858: Merge "Allow releaseBuffer after flush" into klp-dev

* commit '95c03858e2ab4fb693a2bfe47b3caa806e43c044':
Allow releaseBuffer after flush
2e422c472c91aa7912befd0fc038d1e11f354bc1 18-Oct-2013 Glenn Kasten <gkasten@google.com> Allow releaseBuffer after flush

After AudioTrack start checks for pending flush,
allow releaseBuffer on any previously obtained buffer.
For example, this can happen if the resampler has obtained
a buffer but not released the whole buffer yet.
Note that the resampler will be reading obsolete data.

Bug: 11285590
Change-Id: I0614fbb62e43604aac3089cce4b7797c87a306b5
udioTrackShared.cpp
abe0948c7b9aa32dceb82cebbfca52beb782754b 17-Oct-2013 Glenn Kasten <gkasten@google.com> am b2059ff3: am f8f15b05: Merge "Fix race condition in AudioTrack::pause followed by start" into klp-dev

* commit 'b2059ff384eee8ffb70a7ec8fc5570405201c734':
Fix race condition in AudioTrack::pause followed by start
b2059ff384eee8ffb70a7ec8fc5570405201c734 17-Oct-2013 Glenn Kasten <gkasten@google.com> am f8f15b05: Merge "Fix race condition in AudioTrack::pause followed by start" into klp-dev

* commit 'f8f15b05fe051009945c9042a1a9260280e0feb2':
Fix race condition in AudioTrack::pause followed by start
f8f15b05fe051009945c9042a1a9260280e0feb2 17-Oct-2013 Glenn Kasten <gkasten@google.com> Merge "Fix race condition in AudioTrack::pause followed by start" into klp-dev
598de6c701e989385eeffa7c5dfd61f0459a2631 17-Oct-2013 Glenn Kasten <gkasten@google.com> Fix race condition in AudioTrack::pause followed by start

Bug: 11148722
Change-Id: Iec88f00c8510363d4418e4b8d5b34feb06ecf04d
udioTrack.cpp
771f1b6d196b7924707fc44177ac3a88fc31fa9e 17-Oct-2013 Eric Laurent <elaurent@google.com> am 7f8c3973: am 120a8847: Merge "AudioTrack: fix head position after restore" into klp-dev

* commit '7f8c397378a7ee5abd395413be71388ad36d3ed2':
AudioTrack: fix head position after restore
7f8c397378a7ee5abd395413be71388ad36d3ed2 17-Oct-2013 Eric Laurent <elaurent@google.com> am 120a8847: Merge "AudioTrack: fix head position after restore" into klp-dev

* commit '120a88471a607c85c4d60300d73c3be0a1e8f8c8':
AudioTrack: fix head position after restore
cc21e4f1e41dfa17e7e2bef995fcd22c45f6bcd0 17-Oct-2013 Eric Laurent <elaurent@google.com> AudioTrack: fix head position after restore

The head position transfered to the new track
by restoreTrack_l() must take into account the frames that
are dropped from the old track to avoid a non recoverable
offset in the playback head position returned to applications.

Bug: 11230062.
Change-Id: I51143a08b95e8f264ed709ae2054360315f2b8b1
udioTrack.cpp
udioTrackShared.cpp
d5ce2091c7e11c4d869f11f22d8a38a1aedcf3ad 14-Oct-2013 Eric Laurent <elaurent@google.com> am b930056e: am b3cb72a1: SoundPool: handle new audio track event

* commit 'b930056ed4c6e1f8288d4f2cef828c3c02940482':
SoundPool: handle new audio track event
b930056ed4c6e1f8288d4f2cef828c3c02940482 13-Oct-2013 Eric Laurent <elaurent@google.com> am b3cb72a1: SoundPool: handle new audio track event

* commit 'b3cb72a17d9a472883e9e2faa18b42eac533fe99':
SoundPool: handle new audio track event
b3cb72a17d9a472883e9e2faa18b42eac533fe99 13-Oct-2013 Eric Laurent <elaurent@google.com> SoundPool: handle new audio track event

If the AudioTrack is torn down, SoundPool will never
receive the buffer end event and the track will stay active
for ever.

The fix consists in stopping the AudioTrack when a new audiotrack
event is received.

Bug: 11193583.
Change-Id: I9876eb2a8f75c601368f669acd67b0accf6e2736
oundPool.cpp
7a72e2aca9a6c46a08bc605166f90915aaeb81cb 07-Oct-2013 Glenn Kasten <gkasten@google.com> Merge "Fix AudioTrack pause followed by stop"
35295078ab59c8c5d143a54d5a55557c3ca62c51 07-Oct-2013 Glenn Kasten <gkasten@google.com> resolved conflicts for merge of 9a7d11f0 to master

Change-Id: Ie4d101185a93d37ec280f608813ad62a077a584e
9a7d11f07dc19327892915f0bfecce758d2f4098 07-Oct-2013 Glenn Kasten <gkasten@google.com> am fee4ce33: Merge "Cleanup openRecord error handling" into klp-dev

* commit 'fee4ce338d78eeb58af1f66831ead53322d3859e':
Cleanup openRecord error handling
fee4ce338d78eeb58af1f66831ead53322d3859e 07-Oct-2013 Glenn Kasten <gkasten@google.com> Merge "Cleanup openRecord error handling" into klp-dev
b7f82eaed2876bacc3a402182b75323026813c30 04-Oct-2013 Lajos Molnar <lajos@google.com> am aa50cc78: am 56ce7260: IOMX: Add prepareForAdaptivePlayback method

* commit 'aa50cc78be8a1067a0694a97b04d5a24b80af475':
IOMX: Add prepareForAdaptivePlayback method
aa50cc78be8a1067a0694a97b04d5a24b80af475 04-Oct-2013 Lajos Molnar <lajos@google.com> am 56ce7260: IOMX: Add prepareForAdaptivePlayback method

* commit '56ce726019f700a95ce5b45beebceadae4836e30':
IOMX: Add prepareForAdaptivePlayback method
56ce726019f700a95ce5b45beebceadae4836e30 03-May-2013 Lajos Molnar <lajos@google.com> IOMX: Add prepareForAdaptivePlayback method

prepareForAdaptivePlayback is the fallback mechanism to support
seamless resolution change for devices that do not support dynamic
output buffers. It is up to the codecs to handle this appropriately,
but codecs that do not handle dynamic output buffers would
request enough buffers up to the requested size in this method
to avoid port reconfiguration on resolution changes.

Change-Id: I58d4aa8ef1359ea3472735bbe9140c3132039b3d
Signed-off-by: Lajos Molnar <lajos@google.com>
Bug: 10192531
Related-to-bug: 7093648
OMX.cpp
34717c83733def81287e2b4ba2f62b416325c7ae 02-Oct-2013 Eric Laurent <elaurent@google.com> am 3424d6e1: am 1adf20ce: Merge "fix volume and effect enable delay on offloaded tracks" into klp-dev

* commit '3424d6e17637e0743ddf3bf4688af8ee36e69264':
fix volume and effect enable delay on offloaded tracks
3424d6e17637e0743ddf3bf4688af8ee36e69264 01-Oct-2013 Eric Laurent <elaurent@google.com> am 1adf20ce: Merge "fix volume and effect enable delay on offloaded tracks" into klp-dev

* commit '1adf20ce868b80a24f7387daa6549364d5509c6a':
fix volume and effect enable delay on offloaded tracks
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
udioTrack.cpp
AudioTrack.cpp
96f04886d1c1bfbc422e2be033ea66be83e42441 20-Sep-2013 Glenn Kasten <gkasten@google.com> Simplify AudioTrack stream end and fix race

Bug: 10994052
Change-Id: Ib2e38e7a600bcffef8cbc68c1722e40fbbc7ea67
udioTrack.cpp
397edb3377e5775f4df60afb8bf6d4711e5adc0e 31-Aug-2013 Glenn Kasten <gkasten@google.com> Fix AudioTrack pause followed by stop

Now the stop is not a nop.

Bug: 10993355
Change-Id: Idfbfd6d14897574578b80648a16e0fc73765cb6c
udioTrack.cpp
c666b8f16310fc826471c0fb6ee3f7e4d3a2d067 24-Sep-2013 Eric Laurent <elaurent@google.com> am 8ee02943: am 1c7f35d1: Merge "soundpool: allocate shared memory heap by client" into klp-dev

* commit '8ee02943b61e0a7dd78e5596720261b185a223d5':
soundpool: allocate shared memory heap by client
8ee02943b61e0a7dd78e5596720261b185a223d5 24-Sep-2013 Eric Laurent <elaurent@google.com> am 1c7f35d1: Merge "soundpool: allocate shared memory heap by client" into klp-dev

* commit '1c7f35d1f25eb7160314fdef536463fc34deb1ea':
soundpool: allocate shared memory heap by client
e93cf2ca27ae6f4a81d4ef548bbf10a34db6d98f 24-Sep-2013 Glenn Kasten <gkasten@google.com> Cleanup openRecord error handling

Bug: 10888816
Change-Id: I84897dd7d30b370640b54e928f230604b873cb68
udioRecord.cpp
AudioFlinger.cpp
3d00aa6de95fb46e36f2bab4e3facdf0b96acf06 24-Sep-2013 Eric Laurent <elaurent@google.com> soundpool: allocate shared memory heap by client

Current SoundPool implementation allocates the shared memory heap
containing decoded PCM samples in mediaserver process.
When mediaserver process crashes, the shared memory heaps allocated by
AudioCache cannot be mapped anymore in the new instance of mediaserver.
This causes a silent failure to end playback of new sounds because
AudioFlinger believes the new AudioTracks are opened in streaming mode
and not static mode: it sees a NULL shared memory pointer when the track
is created.

The fix consists in allocating the memory heap in the client process. Thus
the heap is not lost when mediaserver restarts. The global memory usage is
the same as this is shared memory.

Also added a way to detect that a shared memory is passed when the track is
created but cannot be mapped on mediaserver side.

Also fix a crash in SoundPool when ALOGV is enabled.

Bug: 10894793.
Change-Id: Ice6c66ec3b2a409d75dc903a508b6c6fbfb2e8a7
AudioFlinger.cpp
MediaPlayerService.cpp
oundPool.cpp
ediaplayer.cpp
20fb283150ddbcf362c764d7b822f54e5bcdd457 24-Sep-2013 Jean-Michel Trivi <jmtrivi@google.com> am c7b2f9dc: am 402dfba6: Merge "Add support for level measurements in Visualizer" into klp-dev

* commit 'c7b2f9dce911026fa13854b49aa2bb5353f68499':
Add support for level measurements in Visualizer
2e3dcb8a00b0b151a548bfa6e61547a9dce51d72 24-Sep-2013 Eric Laurent <elaurent@google.com> am 3f079bb9: am 1d2536f4: Merge "AudioTrack: fix music resume" into klp-dev

* commit '3f079bb9ca87c3c1834cc5be0dafc6514938b578':
AudioTrack: fix music resume
c7b2f9dce911026fa13854b49aa2bb5353f68499 24-Sep-2013 Jean-Michel Trivi <jmtrivi@google.com> am 402dfba6: Merge "Add support for level measurements in Visualizer" into klp-dev

* commit '402dfba6dcd68f5fd8d8921f9751f3e47eb1449d':
Add support for level measurements in Visualizer
3f079bb9ca87c3c1834cc5be0dafc6514938b578 24-Sep-2013 Eric Laurent <elaurent@google.com> am 1d2536f4: Merge "AudioTrack: fix music resume" into klp-dev

* commit '1d2536f460d4678770f423f50cbf6a61a13d4d11':
AudioTrack: fix music resume
402dfba6dcd68f5fd8d8921f9751f3e47eb1449d 24-Sep-2013 Jean-Michel Trivi <jmtrivi@google.com> Merge "Add support for level measurements in Visualizer" into klp-dev
09647d29eaf429ce88c9c9709ff63dee62f2147a 20-Sep-2013 Jean-Michel Trivi <jmtrivi@google.com> Add support for level measurements in Visualizer

New commands to set a measurement mode and perform peak + RMS
measurements.

Bug 8413913

Change-Id: Ib25254065c79d365ebb34f9dc9caa0490e2d300d
isualizer.cpp
9d2c78c4798ffd8c276c1bf0eaa0b34bc255a2da 23-Sep-2013 Eric Laurent <elaurent@google.com> AudioTrack: fix music resume

Fix regression introduced by commit 5a6cd22 in AudioTrack resume:
the callback thread was not signaled if paused internaly.

Bug: 10895013.
Change-Id: Ic356b115132d6fccbcee2d9bb855e92671dc20c5
udioRecord.cpp
udioTrack.cpp
342d52bc0ebc4be85b4806dae9addce2230d01b4 21-Sep-2013 Glenn Kasten <gkasten@google.com> am e97d1ba9: am 4b701cc0: Merge "Revert "Workaround slow AudioTrack destruction"" into klp-dev

* commit 'e97d1ba9471a71c6b18cee23c98535d553303dac':
Revert "Workaround slow AudioTrack destruction"
e97d1ba9471a71c6b18cee23c98535d553303dac 21-Sep-2013 Glenn Kasten <gkasten@google.com> am 4b701cc0: Merge "Revert "Workaround slow AudioTrack destruction"" into klp-dev

* commit '4b701cc041d635e5ec56e382043a4c5d01aedd80':
Revert "Workaround slow AudioTrack destruction"
4b701cc041d635e5ec56e382043a4c5d01aedd80 21-Sep-2013 Glenn Kasten <gkasten@google.com> Merge "Revert "Workaround slow AudioTrack destruction"" into klp-dev
dd0a81253bcf4daef56e991c94dc3c0d1124ef90 20-Sep-2013 Glenn Kasten <gkasten@google.com> am f2c643c8: am 3b3cfcfa: Merge "Fix slow AudioTrack and AudioRecord destruction" into klp-dev

* commit 'f2c643c89e405b57c7ce42067b876fb80031e5fa':
Fix slow AudioTrack and AudioRecord destruction
f2c643c89e405b57c7ce42067b876fb80031e5fa 20-Sep-2013 Glenn Kasten <gkasten@google.com> am 3b3cfcfa: Merge "Fix slow AudioTrack and AudioRecord destruction" into klp-dev

* commit '3b3cfcfa272c8e3e16c89765b8817f5a8de0c505':
Fix slow AudioTrack and AudioRecord destruction
5a6cd224d07c05b496b6aca050ce5ecf96f125af 20-Sep-2013 Glenn Kasten <gkasten@google.com> Fix slow AudioTrack and AudioRecord destruction

There were two causes for the slowness:

When thread was paused, it used nanosleep and sleep. These usually
run to completion (except for POSIX signal, which we avoid because it
is low-level). Instead, replace the nanosleep and sleep by condition
timed wait, as that can be made to return early by a condition signal.
Another advantage of condition timed wait is that a condition wait was
already being used at top of thread loop, so it is a simpler change.

The AudioRecord destructor was missing a proxy interrupt that was correct
in AudioTrack. This proxy interrupt is needed in case another thread
is blocked in proxy obtainBuffer.

Does not address the 1 second polling for NS_WHENEVER.

Bug: 10822765
Change-Id: Id665994551e87e4d7da9c7b015f424fd7a0b5560
udioRecord.cpp
udioTrack.cpp
e2773bb17bc5d01e05a77b8913539575ebd04500 20-Sep-2013 Glenn Kasten <gkasten@google.com> Revert "Workaround slow AudioTrack destruction"

This reverts commit 8bbbd7da02fac3de40139af19f7cf7a7cc3cc824.

Change-Id: I269a6c445cbce33451b6a9e74223e36e6abbdbe0
oundPool.cpp
5b510cd44a4ed5fb8b08336d966d34f093fbd8b0 19-Sep-2013 Glenn Kasten <gkasten@google.com> am 88e0f302: am feb6d27b: Merge "Workaround slow AudioTrack destruction" into klp-dev

* commit '88e0f302bf700a7b4d2b6e6a83838c1793508809':
Workaround slow AudioTrack destruction
88e0f302bf700a7b4d2b6e6a83838c1793508809 19-Sep-2013 Glenn Kasten <gkasten@google.com> am feb6d27b: Merge "Workaround slow AudioTrack destruction" into klp-dev

* commit 'feb6d27bf61cd266cf753215e9cae16b9bc9dbbd':
Workaround slow AudioTrack destruction
8bbbd7da02fac3de40139af19f7cf7a7cc3cc824 18-Sep-2013 Glenn Kasten <gkasten@google.com> Workaround slow AudioTrack destruction

Bug: 10809586
Change-Id: I5f30d4deb1233e8ade8967568e40684ef680c395
oundPool.cpp
362ebe187a39e063c7434bf3c002a0688fa27cdb 18-Sep-2013 Glenn Kasten <gkasten@google.com> am 684e0ae8: am 9a98b6de: Merge "Partial fix for SoundPool not terminating" into klp-dev

* commit '684e0ae8ac8cfb7c7a9709a7b4fc6caf485dfb8a':
Partial fix for SoundPool not terminating
684e0ae8ac8cfb7c7a9709a7b4fc6caf485dfb8a 18-Sep-2013 Glenn Kasten <gkasten@google.com> am 9a98b6de: Merge "Partial fix for SoundPool not terminating" into klp-dev

* commit '9a98b6de791aeb130192df10744f5b35f8b6ef1a':
Partial fix for SoundPool not terminating
8d0fda9660aee7059f802f400875247b01226084 18-Sep-2013 Glenn Kasten <gkasten@google.com> Partial fix for SoundPool not terminating

SoundPool was waiting for EVENT_UNDERRUN only to indicate end of clip. In
J, AudioTrack delivered both EVENT_UNDERRUN followed by EVENT_BUFFER_END.
However, as of K, AudioTrack is only delivering EVENT_BUFFER_END (this
lack of EVENT_UNDERRUN is another bug which still needs to be fixed).
The workaround is to also respond to EVENT_BUFFER_END in SoundPool.

Bug: 10787103
Change-Id: Id68a23bddd6dd9df6c49c55138197260d71ca468
oundPool.cpp
16f3201d2fe99a39a8a9bb478528ae9003645dfe 18-Sep-2013 Glenn Kasten <gkasten@google.com> am 11454092: am 18f86140: Merge "Fix underruns when fast track denied due to SRC" into klp-dev

* commit '11454092e4a94d3c8b4576c981595339abdfac0d':
Fix underruns when fast track denied due to SRC
11454092e4a94d3c8b4576c981595339abdfac0d 18-Sep-2013 Glenn Kasten <gkasten@google.com> am 18f86140: Merge "Fix underruns when fast track denied due to SRC" into klp-dev

* commit '18f861404efc054da0a2ea6c582e293940f63bc8':
Fix underruns when fast track denied due to SRC
44173e2805eba1c5812dd39c02e3964ebdd2104e 17-Sep-2013 Glenn Kasten <gkasten@android.com> am 440b5a49: am fc270954: am e56f3c96: Merge "strtok stores its values in thread local storage. So it can not guarantee works well when multithread environment. AudioFlinger has multithread. so strtok_r is more safe."

* commit '440b5a496ac4f10f1221ecb110f67bcd253ef70a':
strtok stores its values in thread local storage. So it can not guarantee works well when multithread environment. AudioFlinger has multithread. so strtok_r is more safe.
440b5a496ac4f10f1221ecb110f67bcd253ef70a 17-Sep-2013 Glenn Kasten <gkasten@android.com> am fc270954: am e56f3c96: Merge "strtok stores its values in thread local storage. So it can not guarantee works well when multithread environment. AudioFlinger has multithread. so strtok_r is more safe."

* commit 'fc270954192ef7e15ac2c88daadd8890d22096e3':
strtok stores its values in thread local storage. So it can not guarantee works well when multithread environment. AudioFlinger has multithread. so strtok_r is more safe.
fc270954192ef7e15ac2c88daadd8890d22096e3 17-Sep-2013 Glenn Kasten <gkasten@android.com> am e56f3c96: Merge "strtok stores its values in thread local storage. So it can not guarantee works well when multithread environment. AudioFlinger has multithread. so strtok_r is more safe."

* commit 'e56f3c96fa6e7550b67e8b049f999aaa2ada1192':
strtok stores its values in thread local storage. So it can not guarantee works well when multithread environment. AudioFlinger has multithread. so strtok_r is more safe.
ce8828a016b082f730152af2204b8ea3610dc1ec 17-Sep-2013 Glenn Kasten <gkasten@google.com> Fix underruns when fast track denied due to SRC

OpenSL ES requests a fast track. If sample rate conversion is needed,
the request is denied by server, and a larger client buffer is used
to handle the higher latency of a normal track. However the client
notification period was calculated based on buffer being divided into
2 sub-buffers. That resulted in the notification period being too long.
The server pulls chunks that are smaller than half the total buffer.
So now the client uses 3 sub-buffers when there is SRC.

Also removed the 'defer wake' optimization because it was incorrect.
This optimization attempted to reduce the number of wakeups of client,
when server releaseBuffer knows that another releaseBuffer will be
following. But there is no way for the first releaseBuffer to predict
how soon the second releaseBuffer will occur. In some cases it was
a long time, and the client underran. So now the client is woken up
immediately if the total number of available frames to client is >=
the minimum number the client wants to see (the notification period).

Also fix bug where minimum frame count was not being used in the
calculation of notification period.

Bug: 10342804
Change-Id: I3c246f4e7bc3684a344f2cf08268dc082e338e2a
udioTrack.cpp
udioTrackShared.cpp
ff7455c0c1df0c316a306fb81ee660840d08b6d0 07-Sep-2013 seunghak.han <seunghak.han@lge.com> strtok stores its values in thread local storage.
So it can not guarantee works well when multithread environment.
AudioFlinger has multithread.
so strtok_r is more safe.

Change-Id: I6d77ef9cc49a4478dd856dcdca14e4920ce955c6
udioParameter.cpp
d09752c849e9a66a7af5f92797874d16a09f8507 14-Sep-2013 Glenn Kasten <gkasten@google.com> am 617e2a1c: am d176ec1e: Merge "Fix SoundPool.play() looping" into klp-dev

* commit '617e2a1c9fe56e4f92146a1ec8b14a7726ff7c31':
Fix SoundPool.play() looping
8973c0439984f85870dffa7a100580271933c964 11-Sep-2013 Glenn Kasten <gkasten@google.com> Fix SoundPool.play() looping

This is done by configuring SoundPool for shared memory and fast track.
Previously SoundPool used a streaming track, and looping in streaming
mode relied on the ability to loop the most recently enqueued data.
That 'feature' was lost in the new implementation of streaming, so we're
now switching from streaming mode to shared memory mode. Shared memory
mode had always been desired, but was blocked by bug 2801375 which is fixed now.

Bug: 10171337
Change-Id: I2a938e3ffafa2a74d5210b4198b50db20ad5da0e
oundPool.cpp
83da1fcb120a2d09642be74cf9091ab321a60c8f 05-Sep-2013 Chong Zhang <chz@google.com> am c74630bc: am a1991255: Merge "wifi-display: do not use HDCP\'s encryptNative method if its unsupported" into klp-dev

* commit 'c74630bcbdc6f9a88a019b7ced6fbe7a58675ea2':
wifi-display: do not use HDCP's encryptNative method if its unsupported
a19912554f3779fac0c341ac702227bf4b5fe399 05-Sep-2013 Chong Zhang <chz@google.com> Merge "wifi-display: do not use HDCP's encryptNative method if its unsupported" into klp-dev
344202e13a91c9d3d109fd8f4a67f5b23efa7800 04-Sep-2013 Glenn Kasten <gkasten@google.com> am 55817ab9: am fe346c70: Fix miscellanous AudioTrack::getTimestamp() bugs

* commit '55817ab9c1868f1e6a59155f55c768f01509cda5':
Fix miscellanous AudioTrack::getTimestamp() bugs
fe582a379aa775b34b6aba387eea046b6c4632f1 04-Sep-2013 Glenn Kasten <gkasten@google.com> am 1a3a8078: am a07a1c2c: Instantiate SingleStateQueue<AudioTimestamp>

* commit '1a3a8078462e52b450dbad7443abaca1ca9cbfb8':
Instantiate SingleStateQueue<AudioTimestamp>
ec3acca4a75fc4adc076b56751124f507b419622 03-Sep-2013 Chong Zhang <chz@google.com> wifi-display: do not use HDCP's encryptNative method if its unsupported

Bug: 10609422
Change-Id: I005f1d04a4191b1503b5f3e895a98b8d6560c402
HDCP.cpp
fe346c707f59d763ded93bc3d27b51f0c0408258 30-Aug-2013 Glenn Kasten <gkasten@google.com> Fix miscellanous AudioTrack::getTimestamp() bugs

Check that get_presentation_position is non-NULL before calling.

AudioTrack::getTimestamp not implemented for fast tracks.

Fix typo in Track::getTimestamp().

Fix bugs in AudioTrack::getTimestamp after stop:
- getTimestamp while stopped is not allowed.
- stop, start, getTimestamp now returns the correct value.

Change-Id: Ie8d9dc1f28d8927634e04175a68b147ffc2ea8eb
udioTrack.cpp
a07a1c2c91dc7ee6ded319262499f20cd01edcf7 23-Aug-2013 Glenn Kasten <gkasten@google.com> Instantiate SingleStateQueue<AudioTimestamp>

as typedef AudioTimestampSingleStateQueue and use it in MonoPipe.

Change-Id: Idaebb362bd9d0a81a7ed83792ab9369dc37c0e74
ndroid.mk
ingleStateQueueInstantiations.cpp
ec9ad1b0947f5d6b465281312dbe92f096a8f881 30-Aug-2013 Glenn Kasten <gkasten@google.com> am f94b2946: am 56b59224: Merge "Add IAudioTrack::getTimestamp()" into klp-dev

* commit 'f94b2946a511c5cbb6b9001449ca8278cb332bda':
Add IAudioTrack::getTimestamp()
56b592240073b1ab116c6e23a9c4c34ef5ad80d8 30-Aug-2013 Glenn Kasten <gkasten@google.com> Merge "Add IAudioTrack::getTimestamp()" into klp-dev
6dc365f0d5a92084517f0c3846e4f07fc7206bab 30-Aug-2013 Glenn Kasten <gkasten@google.com> am 73e4f3d4: am 865f6f24: Merge "New AudioTrack C++ API for audio timestamps" into klp-dev

* commit '73e4f3d44f7022b03943ae34f08363e049e4b46f':
New AudioTrack C++ API for audio timestamps
865f6f248bf10189272020ebfdbf4827433caf0f 30-Aug-2013 Glenn Kasten <gkasten@google.com> Merge "New AudioTrack C++ API for audio timestamps" into klp-dev
0c9abdf4d71ef01a48c8b988bfec86559a773fb9 30-Aug-2013 Eric Laurent <elaurent@google.com> am 697e50e4: am ed474f37: Merge "AudioTrack: fix write retries for compressed audio" into klp-dev

* commit '697e50e4558e23606dc28773de6dd75ebc5f8af8':
AudioTrack: fix write retries for compressed audio
42a6f422c09ca6a960673e0e805ddf71a9b51bef 29-Aug-2013 Eric Laurent <elaurent@google.com> AudioTrack: fix write retries for compressed audio

When the amount of frames that can be written to the buffer
is less than requested, AudioTrack::processAudioBuffer() estimates
the time needed to free the missing amount of frames and asks the
callback thread to sleep.
This behavior is not possible for compressed audio and should not
be enabled for offloaded tracks.

Change-Id: I5b657283cfba06254c9ac0ea9b447467cce7eb61
udioTrack.cpp
53cec22821072719ee02c856e9ac2dda2496c570 29-Aug-2013 Glenn Kasten <gkasten@google.com> Add IAudioTrack::getTimestamp()

with dummy implementation in AudioFlinger::TrackHandle, and
implement AudioTrack::getTimestamp() using IAudioTrack.

Also document invariant that mAudioTrack and control block are always
non-0 after successful initialization.

Change-Id: I9861d1454cff7decf795d5d5898ac7999a9f3b7e
udioTrack.cpp
AudioTrack.cpp
ce70374bf105f8a6160bf5dd70affea012b2a464 20-Jul-2013 Glenn Kasten <gkasten@google.com> New AudioTrack C++ API for audio timestamps

This new API is intended to replace latency(), especially for A/V sync.
The application will receive periodic timestamp notifications. The period
is unspecified, but will likely be more frequent after a pause or stop,
set position, underrun, display on/off change, route change, or when audio
framework notices drift. It will be up to the higher level application
(e.g. Stagefright) to reconstruct a clock that updates more frequently.

The current latency() method doesn't indicate when latency changes
due to screen on/off state, route changes, etc.

Includes squahsed change-Id: I2082f8752040be0c234b1a6f1be2e269abf2ce7c
Dummy implementation of AudioTrack:getTimestamp()
Rename AudioTrack::Timestamp to AudioTimestamp.
Renaming and pulling up to a higher level allows more modules to use it.

Change-Id: Ibf7f6a207c3f8d8697f25ede2cd5200697fadb86
(cherry picked from commit dd69eb893867634fd169c03204a6ad7c74b351e7)
udioTrack.cpp
876e62329e9ef9e6522c451413270a4258bbcabf 28-Aug-2013 Eric Laurent <elaurent@google.com> am 21b0ab8b: am c063c175: Merge "AudioTrack: fix unwanted underrun when restarting" into klp-dev

* commit '21b0ab8b2de355673606c3751ce4cdcba28fe8ca':
AudioTrack: fix unwanted underrun when restarting
ec9a032c2e104ab1e3b5bf73e69dab1408ced0ad 28-Aug-2013 Eric Laurent <elaurent@google.com> AudioTrack: fix unwanted underrun when restarting

When restarting an AudioTrack from stopped state, it is necessary
to force refresh of mRemainingFrames by processAudioBuffer() as
the last write before stop() could be partial. No doing so will lead
into unnecessary sleep before filling the non contiguous part
of the buffer returned by obtainBuffer() when processAudioBuffer()
is executed for the first time after start().

Change-Id: Id703f8dc092a6f07c905eee194054b4a978f979d
udioTrack.cpp
733ba4dc9161741930464818618855962bdb1297 27-Aug-2013 Chong Zhang <chz@google.com> am f79d6e44: am 33142e1e: Merge "wifi-display: pass session info to wifi display settings" into klp-dev

* commit 'f79d6e44ffd427cf9d331a95777cfbbcc99f72f1':
wifi-display: pass session info to wifi display settings
6e74cc78e3e16686b895958d2a623abc3f5a775f 27-Aug-2013 Chong Zhang <chz@google.com> am 24850793: am 2484040e: Merge "MediaPlayer: add listener for raw track data" into klp-dev

* commit '24850793d3ca7e29d2ef553639d2e133c3983f7e':
MediaPlayer: add listener for raw track data
33142e1e318c0c766a385d88d2434f62f9e2dfe7 24-Aug-2013 Chong Zhang <chz@google.com> Merge "wifi-display: pass session info to wifi display settings" into klp-dev
2484040e0f413989e4edbe26ba3bf71122382af6 23-Aug-2013 Chong Zhang <chz@google.com> Merge "MediaPlayer: add listener for raw track data" into klp-dev
c398c1a9a8296c20dcc566e9f6f148de9d2b0342 23-Aug-2013 Jeff Tinker <jtinker@google.com> am 6c6dc760: am 62c1a46e: Merge "Add ability to test supported content types to MediaDrm" into klp-dev

* commit '6c6dc760006b14a63c839a15d5612c7e19d16bc5':
Add ability to test supported content types to MediaDrm
62c1a46eec047eb5fbc4b90432ec1ce65b76fb75 23-Aug-2013 Jeff Tinker <jtinker@google.com> Merge "Add ability to test supported content types to MediaDrm" into klp-dev
9cf69e0fc110f17c28e988ed0f9bf91abfaf710d 21-Aug-2013 Jeff Tinker <jtinker@google.com> Add ability to test supported content types to MediaDrm

bug: 10244066
Change-Id: I317f05b146db962c271893f6208890a5a6c396f1
Drm.cpp
87ecf19404586672008e98babc225e094292ceb5 06-Jun-2013 Chong Zhang <chz@google.com> wifi-display: pass session info to wifi display settings

Bug: 9371882

Change-Id: I9e4b8c2154b03ce8ff3e14c465a5224bb6e8db9a
RemoteDisplayClient.cpp
d6a2f3f03197998f44374e68ba1d838a7ebb180d 20-Aug-2013 Eric Laurent <elaurent@google.com> am 9f178e70: am 99ad37a4: Merge "AudioSystem: new audioflinger restart detection" into klp-dev

* commit '9f178e705836d9ac8de64487929732c302644bee':
AudioSystem: new audioflinger restart detection
46291616486979986cba3ab83e894728ef53063f 18-Jul-2013 Eric Laurent <elaurent@google.com> AudioSystem: new audioflinger restart detection

Add a specific method to AudioSystem for AudioService to poll
for AudioFlinger service restart instead of relying on current
callback mechanism which is flaky.

Bug: 9693068.
Change-Id: Ie88bc9d25033503bc5cd2fa9d8c754d0f8045b8f
udioSystem.cpp
dcb89b3b505522efde173c105a851c412f947178 06-Aug-2013 Chong Zhang <chz@google.com> MediaPlayer: add listener for raw track data

Bug: 10326117

Change-Id: I2c0bdf8adc67b11f8dc633423bee66897548f181
ediaplayer.cpp
8845337fff1c8faa4296b3bcafcefb41e07fc3ad 13-Aug-2013 Jeff Brown <jeffbrown@google.com> am 82278b2c: am fe9611bd: Merge "Fix potential leak of audio input handle." into klp-dev

* commit '82278b2ceeebbcf345ed81413eeffa82fa82e05b':
Fix potential leak of audio input handle.
ac0bbe16f3eba46b3d8057b66c2aff9101fc6f7d 10-Aug-2013 Jeff Brown <jeffbrown@google.com> Fix potential leak of audio input handle.

The audio input handle is ultimately owned by the audio recorder
object but it could be dropped on the floor if an error occurred
before that object was fully initialized.

Rearranged some of the argument validation and merged getInput_l
with openRecord_l to simplify the code and prevent such a leak
from occurring.

Bug: 10265163
Change-Id: I124dce344b1d11c2dd66ca5e2c9aec0c52c230e2
udioRecord.cpp
a0d77cd6bf5f4ee3ee9d67ad26e7f9981991d4e7 09-Aug-2013 Glenn Kasten <gkasten@google.com> Fix SoundPool.play() looping regression in 4.3 DO NOT MERGE

The change I7370d6e59a7ef26dfb284a8b058d5ab2e0a42ccf caused a regression
in SoundPool looping when using SoundPool's streaming implementation.
This reverts a portion of that change.

Bug: https://code.google.com/p/android/issues/detail?id=58113
Bug: 10171337
Change-Id: I8af0dc8683a7c7f225c80f0eb4d39770667b52e5
udioTrack.cpp
3cb40d7882b93c242267de0b8db10ef8957b3a24 09-Aug-2013 Glenn Kasten <gkasten@google.com> am 1b832c3d: Merge "Fix regression for AudioRecord streaming callback mode" into klp-dev

* commit '1b832c3d8f2b1b24f9bc7025afd2b4a8b4e6c6f9':
Fix regression for AudioRecord streaming callback mode
4a0efb77198c69df711ab369ac482a42dbdfab07 09-Aug-2013 Glenn Kasten <gkasten@google.com> Fix regression for AudioRecord streaming callback mode

The notification period (frequency of client wakeups) was broken in
streaming callback mode. Fast tracks were OK, but non-fast tracks with
normal latency weren't getting woken up at all.

Bug: 10222943
Change-Id: Ife9a2f57fa73c6eb921f1c5ba62de0bfcc20557b
udioRecord.cpp
6b682a20b66322bf673f575f8c4fd9e45f3e8183 08-Aug-2013 Glenn Kasten <gkasten@google.com> Merge "Consistent style for comparisons of raw pointers to NULL"
89a70f71cef61d10437b3901e8efc1f082a857c5 07-Aug-2013 Lajos Molnar <lajos@google.com> Merge "IOMX: add updateGraphicBufferInMeta method for metadata mode"
d0715867861c216e88a4a7523b6da8a3cb128724 22-Jul-2013 Lajos Molnar <lajos@google.com> IOMX: add updateGraphicBufferInMeta method for metadata mode

This is used to set the handle in the metadata buffer that is
valid in the mediaserver process, as well as to keep a reference
for the graphic buffers in BufferMeta.

Change-Id: I46bb68d8bed894f357eeeb25368360d11b276634
Signed-off-by: Lajos Molnar <lajos@google.com>
OMX.cpp
230c5bde2779c618b26edc73443280b2d9371c70 06-Aug-2013 Glenn Kasten <gkasten@google.com> Merge "AudioRecord notification frames"
33f3177c08d238285b296d137e527ec99e34228f 06-Aug-2013 Glenn Kasten <gkasten@google.com> Merge "AudioRecord::openRecord_l use flags"
b85187332e740be337ce2e3e0d8d21c5c8651bf8 06-Aug-2013 Marco Nelissen <marcone@google.com> Merge "Reject unprepared MediaPlayers"
743649fa70392b668377fb507d251b346c7b2769 06-Aug-2013 Glenn Kasten <gkasten@google.com> Merge "AudioRecord::openRecord_l now take flags"
507b2860cfe0bb4a712064f1c503caa9a7325886 01-Aug-2013 Glenn Kasten <gkasten@google.com> Consistent style for comparisons of raw pointers to NULL

Change-Id: Iec102a5ccb2fe69229887b5432cd1fb66f26f0cf
AudioFlinger.cpp
3aa03e40668dd90390d9f1702f8c576e15b366c3 06-Aug-2013 Glenn Kasten <gkasten@google.com> Merge "IAudioFlinger::openRecord track_flags_t flags is in/out"
77baebfe89c99415a0ee4c2ea87bfd8a0f9e51f1 05-Aug-2013 Glenn Kasten <gkasten@google.com> Merge "AudioRecord::set and constructor now take flags"
f86b18b1ce3cf20a39aea1fcaf90ec66f9d6d63e 05-Aug-2013 Glenn Kasten <gkasten@google.com> Merge "AudioRecord callback thread waits for priority boost"
b13820ffafcb6bcdd33b6272676535afb4dff479 05-Aug-2013 Marco Nelissen <marcone@google.com> Reject unprepared MediaPlayers

Don't allow a MediaPlayer that has been reset() or release()d to be
used as the argument to setNextMediaPlayer.

Change-Id: I47da1460ec3742f5b2bd7b79e7998b290032d5a1
ediaplayer.cpp
6c104a4a245ea72b7bdf8c7c016121189045d4bc 05-Aug-2013 Glenn Kasten <gkasten@google.com> Merge "AudioRecord has no default sample rate"
7cd9cf70e36ad4b8eb12e24f9adbbe6fd69edebd 01-Aug-2013 Glenn Kasten <gkasten@google.com> AudioRecord notification frames

Change-Id: I76ec536d1504eb9a558178b62bf225aace4b40d1
udioRecord.cpp
3151427b6b0adf99929433715bab6f1e505100c1 01-Aug-2013 Glenn Kasten <gkasten@google.com> AudioRecord::openRecord_l use flags

Use the flags to determine input parameters for IAudioFlinger::openRecord.

Change-Id: I98d2726503af75c8830ce80ceaf3b94a755b342f
udioRecord.cpp
73493688f4190f790ee15d9ca54831cd64f4e195 01-Aug-2013 Glenn Kasten <gkasten@google.com> AudioRecord::openRecord_l now take flags

The new parameter 'flags' of type audio_input_flags_t will be used for
requesting a fast track, but is currently ignored.

Change-Id: If68dfda8b2d4eaaca42927d721b4630c47f71f3b
udioRecord.cpp
eeca32671896739e84050da5992d5f151a1629de 01-Aug-2013 Glenn Kasten <gkasten@google.com> IAudioFlinger::openRecord track_flags_t flags is in/out

This will allow AudioFlinger to tell client it is denying a request.

Change-Id: Iff2be3ad6636371bbda9c9899a283c94620c1f06
udioRecord.cpp
AudioFlinger.cpp
27f7b2a8fe899565487d8a326676a5f7d0a05a37 01-Aug-2013 Glenn Kasten <gkasten@google.com> AudioRecord::set and constructor now take flags

The new optional parameter 'flags' of type audio_input_flags_t will be
used for requesting a fast track.

Change-Id: Ia7e070cb57c833e608352da354fb30dc26df6918
udioRecord.cpp
28f1351369682801e1bb40a835bdae3c97b73c1c 31-Jul-2013 Glenn Kasten <gkasten@google.com> AudioRecord callback thread waits for priority boost

Change-Id: Iae38fa4ac20a45751566169213a08a15deb0a2f6
udioRecord.cpp
954315a10089fa3684ac94db5be77c6655c08fc0 02-Aug-2013 Glenn Kasten <gkasten@google.com> Recording of non-linear formats is not supported

Such formats are already rejected in AudioRecord::set()

Change-Id: I5ba1fd9e4cd659e5226c75aa4f63e52f655e0521
udioRecord.cpp
f0f33c4acd231fa95deb9eeef2c46b0129e64463 31-Jul-2013 Glenn Kasten <gkasten@google.com> AudioRecord has no default sample rate

Change-Id: I72feefdd6f3a623fd3669b80d4b264518fdc0929
udioRecord.cpp
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
udioTrackShared.cpp
d054c32443a493513ab63529b0c8b1aca290278c 12-Jul-2013 Glenn Kasten <gkasten@google.com> Move control block mName to createTrack() output

This is part of a series of CLs to clean up the shared memory
control block, by removing any fields that don't have to be there.

Change-Id: I6e51003a1293b6800258c31b22cff2eba42162e7
udioTrack.cpp
udioTrackShared.cpp
AudioFlinger.cpp
96f60d8f04432a1ed503b3e24d5736d28c63c9a2 12-Jul-2013 Glenn Kasten <gkasten@google.com> Rename control block flags to mFlags

Change-Id: I7b6d31e24531954ab1ecdf3ed56c19433700bd89
udioRecord.cpp
udioTrack.cpp
udioTrackShared.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
udioTrackShared.cpp
eced2daaa6c91a3731eef978ce65c6ec319c5e6a 17-Jul-2013 Glenn Kasten <gkasten@google.com> Use correct type for OutputDescriptor::format

Change-Id: Ide608ef452d57da29b708180d90470361c123d1d
AudioFlingerClient.cpp
7f249fa9bcb64da324d19f551943fac7686d221c 29-Jul-2013 Glenn Kasten <gkasten@google.com> Merge "Use standard name and type for channel mask"
3dcd00dddec86a1c5133083ad7ba2265d49c048c 17-Jul-2013 Glenn Kasten <gkasten@google.com> Declare methods in binder opcode order

Change-Id: I5f624b7a51ffe1a17a67c056cf984f74e4c56eac
AudioRecord.cpp
b1a270d1e926fb9a01b4265a7675ed0c2c8f4868 14-May-2013 Richard Fitzgerald <rf@opensource.wolfsonmicro.com> libmedia: offloaded playback support

- start() returns a status so that upper layers can
recreate a non offloaded track in case of error.

- Added states to handle offloaded tracks specific:
- waiting for stream end (drain) notification by
audio flinger
- allow pause while waiting for stream end notification

- getPosition() queries the render position directly from
audio HAL.

- disable APIs not applicable to offloaded tracks

- Modified track restoring behavior for invalidated
offloaded tracks: just send the callback and wait for
upper layers to create a new track.

- Added wait for stream end management in audio track client
proxy. Similar to obtainBuffer and should be factored in.

Change-Id: I0fc48117946364cb255afd653195498891f622bd
Signed-off-by: Eric Laurent <elaurent@google.com>
udioTrack.cpp
udioTrackShared.cpp
AudioFlinger.cpp
AudioPolicyService.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
udioTrackShared.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
udioSystem.cpp
AudioFlingerClient.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
udioRecord.cpp
4182c4e2a07e2441fcd5c22eaff0ddfe7f826f61 15-Jul-2013 Glenn Kasten <gkasten@google.com> Use AudioSystem::setLowRamDevice() to configure memory

Bug: 9798886
Change-Id: I9321e3f369f1ed9429ae222e3926ebdeb012b8b0
udioSystem.cpp
AudioFlinger.cpp
0b83a15d97f61d575a7cffbf42f9ed6edfa25ccc 18-Jul-2013 Andreas Huber <andih@google.com> Merge "Support "suspension" of a video encoder in "surface-input" mode."
e40cda70eec141fa05cbcca1de420fdb22b98be6 17-Jul-2013 Andreas Huber <andih@google.com> Support "suspension" of a video encoder in "surface-input" mode.

i.e. feed no more input frames to the encoder while suspended.

Change-Id: I51391e18c1517548e869f8ddece19f4af37e78f9
OMX.cpp
cff1b2359b8a302f19539c0bc5d25c98a52733fd 17-Jul-2013 Glenn Kasten <gkasten@google.com> Merge "Add comments"
bb849b5d1a0364b69aa15ed00709edf4b7e348fc 17-Jul-2013 Glenn Kasten <gkasten@google.com> Merge "Fix typo in logs"
ce177bb31493d3cd4450f9d4760fa1fd32ec6bf4 11-Jul-2013 Glenn Kasten <gkasten@google.com> Merge "AudioTrackShared cleanup"
050501d11d944dcb256d37d3b86bd658d94f6a7f 11-Jul-2013 Glenn Kasten <gkasten@google.com> Fix AudioTrack::flush()

It was only flushing at a surface level, and even then only the first time
the server observed the client's flush request. Now it flushes at a
deeper level, but there may be even deeper device-specific flushing.

Bug: 9770947
Change-Id: I687cc3410ff9e5e5d4a5dcb9e3b129501e53d247
udioTrackShared.cpp
fb1fdc9d6603aa228362e7349451f6455c9849c2 11-Jul-2013 Glenn Kasten <gkasten@google.com> Add comments

Change-Id: Ifbf3a46a4183c8abc0feee1c588953ab10303cc1
udioSystem.cpp
udioTrack.cpp
b0dfd4613225a3b2a17bdf8d85e89a4b04d65ef3 11-Jul-2013 Glenn Kasten <gkasten@google.com> Fix type error in AudioTrack::processAudioBuffer

It returned a bool instead of nsecs_t

Change-Id: If0c096dac411afc0a4142ec1e59c1fdd36d4867c
udioTrack.cpp
0bc32ae1a8ef45f98101b78bfe64798875b569e3 08-Jul-2013 Glenn Kasten <gkasten@google.com> Merge "Explicitly compare raw pointers to NULL"
7c5977f0322204240b3d1874a44c1f3911275ae5 02-Jul-2013 Glenn Kasten <gkasten@google.com> Explicitly compare raw pointers to NULL

Change-Id: Id2c7828a36a6912333465475b21fa87e294c83c7
AudioFlinger.cpp
7db7df0e8d9d7cee8ba374468cdbfa0108e3337c 26-Jun-2013 Glenn Kasten <gkasten@google.com> AudioTrackShared cleanup

Maintain unreleased frame count on client side also (was already there on server side).
Assertion failure instead of BAD_VALUE status for incorrect usage of APIs.
Clean up error handling code.

Change-Id: I23ca2f6f8a7c18645309ee5d64fbc844429bcba8
udioTrackShared.cpp
85007a9bd3c310f96fed47208dfee566fd00351f 14-Nov-2012 Glenn Kasten <gkasten@google.com> Fix typo in logs

Change-Id: I889e31ea3a45a3d8d34fdfb54ebc3947de51d2be
udioSystem.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
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
etPlayer.cpp
oundPool.cpp
oneGenerator.cpp
isualizer.cpp
ad3af3305f024bcbbd55c894a4995e449498e1ba 25-Mar-2013 Richard Fitzgerald <rf@opensource.wolfsonmicro.com> Public API changes for audio offload support.

NOTE: this does _not_ include all private member variables added
to classes as part of offload support. Only public/protected functions
and stubs functions/variables needed to make the changes buildable.

- isOffloadSupported() added to audio policy service
A stub implementation is required to build, this always returns false
- setParameters() added to IAudioTrack
A stub implementation is required to build, this always returns
INVALID_OPERATION

- CBlk flag for stream end

- Change AudioSystem::getRenderPosition() to take an audio_output_t
so caller can specify which output to query

- Add AudioSystem::isOffloadSupported()
This is fully implemented down to the AudioFlinger function
AudioPolicyServer::isOffloadSupported() which is just a stub
that always returns false.

- Add EVENT_STREAM_END to AudioTrack interface.
STREAM_END is used to signal when the hardware has actually finished
playing all the data it was sent.

- Add event type enumeration to media player interface AudioSink callbacks
so that the same callback can be used to handle multiple types of
event. For offloaded tracks we also have to handle STREAM_END and
TEAR_DOWN events

- Pass audio_offload_info_t to various functions used for opening outputs,
tracks and audio players. This passes additional information about the
compressed stream down to the HAL when using offload.
For publicly-available APIs this is an optional parameter (for some of
the internal and low-level APIs around the HAL interface it is mandatory)

- Add getParameters() and setParameters() API to AudioTrack
Currently dummy implementations.

- Change AudioPlayer contructor so that it takes a set of bitflags defining what
options are required. This replaces the original bool which only specified
whether to use deep buffering.

- Changes to StageFright class definition related to handling tearing-down of
an offloaded track when we need to switch back to software decode

- Define new StageFright utility functions used for offloaded tracks
Currently dummy implementations.

- AudioFlinger changes to use extended audio_config_t.
Fills in audio_offload_info_t member if this info is passed in when
opening an output.

- libvideoeditor changes required to add the new event type parameter
to AudioSink callback functions

- libmediaplayerservice changes required to add the new event type parameter
to AudioSink callback functions

Change-Id: I3ab41138aa1083d81fe83b886a9b1021ec7320f1
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Signed-off-by: Eric Laurent <elaurent@google.com>
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
AudioPolicyService.cpp
AudioTrack.cpp
93bb77da5481ab75c2cd6e3aa681839273c6e43d 24-Jun-2013 Glenn Kasten <gkasten@google.com> Workaround AudioRecord bug for large buffer sizes

Bug: 9556436
Change-Id: I92d1238b623d2cfd648e0a684d0e710fb0bd8b43
udioTrackShared.cpp
0d09a9bec07b3bec78bd473ff0bfcf0a261f3f25 24-Jun-2013 Glenn Kasten <gkasten@google.com> Use mFutex as an event flag rather than semaphore

An event flag can be more fault-tolerant in case of loss of synchronization,
as it cannot overflow. It also allows more bits to be used in the future.
See http://en.wikipedia.org/wiki/Event_flag

Change-Id: I01ca25d951eb263124da54bb4738f0d94ec4a48b
udioTrackShared.cpp
224309a0f21e37d58fa62ed2aef8b444421cdc0f 14-Jun-2013 Glenn Kasten <gkasten@android.com> am 767227fc: am 82fc2ca6: am d5018116: Merge "Fix typo."

* commit '767227fcac7be843b338473954420d390e354bf7':
Fix typo.
82fc2ca6905978b4f49f2c6bf948a6872575f2cc 14-Jun-2013 Glenn Kasten <gkasten@android.com> am d5018116: Merge "Fix typo."

* commit 'd5018116252a3ecb491e2eaddad12180b85d1e78':
Fix typo.
d5018116252a3ecb491e2eaddad12180b85d1e78 14-Jun-2013 Glenn Kasten <gkasten@android.com> Merge "Fix typo."
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
udioRecord.cpp
udioTrack.cpp
udioTrackShared.cpp
oneGenerator.cpp
da5b509fd8323bacf4043e2c29c6ee1d0716be60 27-Feb-2013 Ming Zhou <b42586@freescale.com> Noise will be heard if audio sample rate not matched with audio track

When audio sample rate which set to audio track is not the same with
the actual pcm data, noise will be heard. Fix the bug when write 8 bit
pcm samples.

Change-Id: Idcb0d7b0e9aaa250dd22b758c8337e23d1706049
Signed-off-by: Ming Zhou <b42586@freescale.com>
Signed-off-by: guoyin.chen <guoyin.chen@freescale.com>
udioTrack.cpp
f65fa170b28f97503df3c309ecdaab377a042ba6 06-Jun-2013 Masaki Muranaka <monaka@monami-software.com> Fix typo.

Change-Id: Ia72ed2bef54751dc2d6c3379a58de95a0e9ebfdd
ediaplayer.cpp
bb6f0a0bb413817d707cfb4c4a30847fda520787 04-Jun-2013 Glenn Kasten <gkasten@google.com> Fix underruns when sample rate != native sample rate

This forces a minimum of 3 application buffers when the sample rates
don't match, using the normal mixer and low latency HAL.

There is still an issue that the latency() varies depending on whether
screen was off or on at the time of creating the AudioTrack.

With screen on:
I/AudioTrack( 2028): afFrameCount=960, minBufCount=2, afSampleRate=48000, afLatency=50
I/AudioTrack( 2028): minFrameCount: 2646, afFrameCount=960, minBufCount=3, sampleRate=44100, afSampleRate=48000, afLatency=50

With screen off:
I/AudioTrack( 2817): afFrameCount=960, minBufCount=4, afSampleRate=48000, afLatency=84
I/AudioTrack( 2817): minFrameCount: 3528, afFrameCount=960, minBufCount=4, sampleRate=44100, afSampleRate=48000, afLatency=84

Change-Id: Ib45515edff2afcd672dda34881b658c800ffc25a
udioTrack.cpp
2799d743ee2ae5a25fe869a7f9c052acc029559f 30-May-2013 Glenn Kasten <gkasten@google.com> Use sp<AudioTrack> instead of raw AudioTrack *

This change prepares for the new implementation of AudioTrack client, which
will require clients to use only sp<AudioTrack>, not raw AudioTrack *.
A raw delete will cause a race condition during AudioTrack destruction.

AudioTrack was made a RefBase by commit b68a91a70bc8d0d18e7404e14443d4e4020b3635
on 2011/11/15, when it was needed by OpenSL ES (for the callback protector).
At that time, the only other client that was also converted from
AudioTrack * to sp<AudioTrack> was android.media.AudioTrack JNI in
project frameworks/base (file android_media_AudioTrack.cpp).

Details:
* Use .clear() instead of delete followed by = NULL.
* ALOG %p need .get().
* sp<> don't need to be listed in constructor initializer, if initially 0.
* Use == 0 for sp<> vs == NULL for raw pointers.
* Use if (sp != 0) instead of if (raw).

Change-Id: Ic7cad25795d6e862e112abdc227b6d33afdfce17
etPlayer.cpp
oundPool.cpp
oneGenerator.cpp
7c684c622110af460025eff85082030947278430 03-Jun-2013 Andreas Huber <andih@google.com> am f9bb8358: am b7319a7e: Update HTTP proxy configuration for all media playback inside stagefright.

* commit 'f9bb8358e454be6dc88403171db7e0e182407f17':
Update HTTP proxy configuration for all media playback inside stagefright.
b7319a7eb0a06ef4fd3a0c9157ee63e637ad7aa1 29-May-2013 Andreas Huber <andih@google.com> Update HTTP proxy configuration for all media playback inside stagefright.

Change-Id: Ie0dd00045aba668d8b49da73224e7a7c9c04f69b
related-to-bug: 8873723
(cherry picked from commit 2704965b8a1ff3b7450ff58ccecf86d8ec688c40)
MediaPlayerService.cpp
ediaplayer.cpp
7c027248e1a4ccd5b22bc4deafb03e2d87ac8f38 26-Dec-2012 Glenn Kasten <gkasten@google.com> Consistent whitespace

Change-Id: I118cce68d3b777f9ec9b6bfb70367496422a40f2
udioRecord.cpp
udioTrack.cpp
MediaDeathNotifier.cpp
308bcaa44e578279e61be32b572fdb0b11b1e4c7 04-May-2013 Chong Zhang <chz@google.com> wifi-display: add support for metadata mode on encoder output

pass buffer_handle_t from encoder output to HDCP encryptor input

Bug: 8968123

Change-Id: Iea8007ce568641e213fd2e3cf6947a6f7a95746c
HDCP.cpp
754995dc19159d5dd00095aca27d42f3bc8b3e5b 14-May-2013 Eric Laurent <elaurent@google.com> am a83b9767: am 375379a4: Merge "Fix unreleased mutex in ToneGenerator stopTone()" into jb-mr2-dev

* commit 'a83b9767bc81d13101cad1df080ffeadedca2887':
Fix unreleased mutex in ToneGenerator stopTone()
704455a5a6cd22f03bb8984e0c7f46108eb1afb7 13-May-2013 Eric Laurent <elaurent@google.com> Fix unreleased mutex in ToneGenerator stopTone()

Commit 09108ade introduced a regression by not releasing
the ToneGenerator mutex before exiting in case of error.

Bug: 8852855
Change-Id: I8ba2755b218842e2034ed8dbd54b18bf2a5fc571
oneGenerator.cpp
1e27c22a3a024a7ba193ec48b9ec13d1ea0f03c6 13-May-2013 Eric Laurent <elaurent@google.com> Fix unreleased mutex in ToneGenerator stopTone()

Commit 09108ade introduced a regression by not releasing
the ToneGenerator mutex before exiting in case of error.

Bug: 8852855
Change-Id: I8ba2755b218842e2034ed8dbd54b18bf2a5fc571
oneGenerator.cpp
1ba7c0abc004333be7768df03553b6ffaa242d0a 11-May-2013 Marco Nelissen <marcone@google.com> am 780dbd33: am 0d24eb5e: Merge "Don\'t purge effects we\'re about to start using" into jb-mr2-dev

* commit '780dbd3357511770d655e55f69036d63c90089a9':
Don't purge effects we're about to start using
082aa3f335ffeedacafeb8982684cbb371a18c32 10-May-2013 Marco Nelissen <marcone@google.com> Don't purge effects we're about to start using

By acquiring the new session id before releasing the old, we prevent
purging existing effects with the new session id that aren't currently
attached but will be once the player is switched to the new session id.
b/8767565

Change-Id: I703881b69c5accd8832ac834246925a20ada4c21
ediaplayer.cpp
8bdb01c279828e286a6e8b22ff0c1bcb6aa6ee8f 10-May-2013 Marco Nelissen <marcone@google.com> Don't purge effects we're about to start using

By acquiring the new session id before releasing the old, we prevent
purging existing effects with the new session id that aren't currently
attached but will be once the player is switched to the new session id.
b/8767565

Change-Id: I703881b69c5accd8832ac834246925a20ada4c21
ediaplayer.cpp
1f7d356fa094b975ad2ebf9217be6abba2c70825 07-May-2013 Mathias Agopian <mathias@google.com> libutils clean-up

Change-Id: I3bf32d72aa8eec627249a675c130c91a8aff6710
ndroid.mk
ediaScannerClient.cpp
tringArray.cpp
tringArray.h
61aa989a5768b9b0571ca14edaf15886509a0ec8 03-May-2013 Eric Laurent <elaurent@google.com> am 1641f328: am 4170f515: Merge "Remove timing jitter during startup of audio" into jb-mr2-dev

* commit '1641f328d4de3b2b61481607dc482ccaefe808a9':
Remove timing jitter during startup of audio
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
udioTrack.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
udioTrack.cpp
7a3cb8963cc5cb21cd90e41edfc0e812ff93b7d8 17-Apr-2013 Jeff Tinker <jtinker@google.com> am 65e0123c: am 9e0727ca: Merge "Added CTS test for secure stop APIs" into jb-mr2-dev

* commit '65e0123ced0a1891fc66e631de5ba3d1d5a515bf':
Added CTS test for secure stop APIs
423e33ce6569cb14ecf772e9670208517f7b30c4 09-Apr-2013 Jeff Tinker <jtinker@google.com> Added CTS test for secure stop APIs

bug: 8604418

Change-Id: I173fa1ec904ba11dc4cff0343462b3f4bac0d365
Drm.cpp
1808736b17073b2fdb82a87abf103cbd31aba4fc 09-Apr-2013 Jeff Tinker <jtinker@google.com> Added CTS test for secure stop APIs

bug: 8604418

Change-Id: I173fa1ec904ba11dc4cff0343462b3f4bac0d365
Drm.cpp
0011777d54148dc84a923dda21b25f4f5a99ffed 15-Apr-2013 Andreas Huber <andih@google.com> am 2dd69cfc: am 5ce9c299: Merge "Instead of returning an error, return an invalid duration (-1 ms)" into jb-mr2-dev

* commit '2dd69cfca3e2a2b7c398198366d03ba1801e1bd9':
Instead of returning an error, return an invalid duration (-1 ms)
d85929f6086e050d7cb33bfe0d29f339ad7279e5 11-Apr-2013 Andreas Huber <andih@google.com> Instead of returning an error, return an invalid duration (-1 ms)

if no duration information was available. This prevents us from
entering ERROR state, effectively rendering the player instance useless.

Change-Id: I602d2661ae8b8633360306c0ea9208fb11e2bf17
related-to-bug: 8596285
ediaplayer.cpp
2070254f241f52cadb69bc2323f56df72704f1ca 11-Apr-2013 Andreas Huber <andih@google.com> Instead of returning an error, return an invalid duration (-1 ms)

if no duration information was available. This prevents us from
entering ERROR state, effectively rendering the player instance useless.

Change-Id: I602d2661ae8b8633360306c0ea9208fb11e2bf17
related-to-bug: 8596285
ediaplayer.cpp
844ebdef8c73b98ec29c75f1fd7940624e70d14d 10-Apr-2013 Ying Wang <wangying@google.com> am e63f850b: am da0dc0af: Add liblog

* commit 'e63f850b179a43a344d438f202ad34ec7566f955':
Add liblog
da0dc0af0effe9fbfb3ce3187c8472fca2baf3c6 10-Apr-2013 Ying Wang <wangying@google.com> Add liblog

Bug: 8580410
Change-Id: If493d87d60d71be664ad75b140c62acadb75b0d0
ndroid.mk
ecba7488c5cceaacef95836b1b476433451e7761 10-Apr-2013 Ying Wang <wangying@google.com> Add liblog

Bug: 8580410
Change-Id: If493d87d60d71be664ad75b140c62acadb75b0d0
ndroid.mk
d76fcd616b9d049cb658cb7502a2325db8d20344 05-Apr-2013 Jeff Tinker <jtinker@google.com> am c2ccb7d9: am d5ef30b2: Merge "Implement async event callout from drm plugin to Java app" into jb-mr2-dev

* commit 'c2ccb7d9948c01551dbb5ceb0f3d06004b86ce7c':
Implement async event callout from drm plugin to Java app
d5ef30b223b627c21b11f2850eeb48426c74220d 05-Apr-2013 Jeff Tinker <jtinker@google.com> Merge "Implement async event callout from drm plugin to Java app" into jb-mr2-dev
505208dd38ab2f143e6a3ff6a2c262d0fab76b7e 05-Apr-2013 Jeff Tinker <jtinker@google.com> Merge "Implement async event callout from drm plugin to Java app" into jb-mr2-dev
c0d5f1f8405de861ed6f1725f26cd6601e7103ab 02-Apr-2013 Jeff Tinker <jtinker@google.com> Implement async event callout from drm plugin to Java app

Change-Id: I007f147d693664e777b8758be2bb8a4c7ec0236b
ndroid.mk
Drm.cpp
DrmClient.cpp
0cb126a34fe32f81c830858102471e7be2ce85b1 02-Apr-2013 Jeff Tinker <jtinker@google.com> Implement async event callout from drm plugin to Java app

Change-Id: I007f147d693664e777b8758be2bb8a4c7ec0236b
ndroid.mk
Drm.cpp
DrmClient.cpp
5309f59db078739e3eeb6992f0f11fe0818266cb 03-Apr-2013 Jeff Tinker <jtinker@google.com> am 1ef63d1a: am a56e1506: Merge "MediaDrm API update" into jb-mr2-dev

* commit '1ef63d1a6a03d713954acbdb4e4641f53ade1d66':
MediaDrm API update
a56e15065bc45082d913c8c8e71e60692ce8c8f0 03-Apr-2013 Jeff Tinker <jtinker@google.com> Merge "MediaDrm API update" into jb-mr2-dev
df41f485a9162407b32b7db1cea483f64bbd0c65 03-Apr-2013 Jeff Tinker <jtinker@google.com> Merge "MediaDrm API update" into jb-mr2-dev
5005a7c6ffc6b1013a6155a28e3e6eaff52e3273 02-Apr-2013 Eric Laurent <elaurent@google.com> am 0a2d8961: am 0fb6aabf: Merge "ToneGenerator: fix overflow in stopTone" into jb-mr2-dev

* commit '0a2d896126ffacdaa905694757bc193a6b4ea436':
ToneGenerator: fix overflow in stopTone
4c63a239c404af1e055e5f9939939ab0fd09d98a 31-Mar-2013 Jeff Tinker <jtinker@google.com> MediaDrm API update

Clarify offline usage of sessions and keys and implement
implement CryptoSession to support additional crypto use
cases.

Change-Id: I5d8000ce7e1dd7eba08969fc50296c9e1456c4fc
Drm.cpp
8856c8b8777d0e0de11b2de863a336b001024e29 31-Mar-2013 Jeff Tinker <jtinker@google.com> MediaDrm API update

Clarify offline usage of sessions and keys and implement
implement CryptoSession to support additional crypto use
cases.

Change-Id: I5d8000ce7e1dd7eba08969fc50296c9e1456c4fc
Drm.cpp
a8eccec73a40d4afcff505eb463a016c89aeed42 28-Mar-2013 Eric Laurent <elaurent@google.com> ToneGenerator: fix overflow in stopTone

Fix overflow in tone duration calculation introduced in
commit 681be039.

Bug 6607077

Change-Id: Ie12f13701345c2b2d3be0b3c4d71cbfa2394a29b
oneGenerator.cpp
b133a4cb2a5a310a7461050a2d96537c6ce2415e 28-Mar-2013 Eric Laurent <elaurent@google.com> ToneGenerator: fix overflow in stopTone

Fix overflow in tone duration calculation introduced in
commit 681be039.

Bug 6607077

Change-Id: Ie12f13701345c2b2d3be0b3c4d71cbfa2394a29b
oneGenerator.cpp
08b7c1ed00b04465e66fd6c14877d4b2784c4e30 28-Mar-2013 Eric Laurent <elaurent@google.com> am 2a2f0ece: am 681be039: ToneGenerator: fix truncated tones

* commit '2a2f0ecec93bac15eb58dcf643b11867baf51804':
ToneGenerator: fix truncated tones
681be0398a06da7e24db4ed934a92af64d1409b1 27-Mar-2013 Eric Laurent <elaurent@google.com> ToneGenerator: fix truncated tones

The first DTMF tone after a silent period is truncated.
This is because the phone app starts and stops the tone
when the user presses and releases the key.
This combined to the fact that the tones use the low latency path
and that when the output stream exists standby there is a period
of several milliseconds during which no audio is mixed until the
stream is "warmed up".
The result is that much less audio is generated than the actual
key press duration.

The fix consists in storing the tone start time and making sure that
the number of samples generated corresponds at least to the time difference
between the tone start and stop commands.

Bug 6607077

Change-Id: I070d20dd8600c25a9e5d5a60c1d3313b7917b00d
oneGenerator.cpp
857583fd2ecbeb8696ede1f93b7291449fb2d133 27-Mar-2013 Eric Laurent <elaurent@google.com> ToneGenerator: fix truncated tones

The first DTMF tone after a silent period is truncated.
This is because the phone app starts and stops the tone
when the user presses and releases the key.
This combined to the fact that the tones use the low latency path
and that when the output stream exists standby there is a period
of several milliseconds during which no audio is mixed until the
stream is "warmed up".
The result is that much less audio is generated than the actual
key press duration.

The fix consists in storing the tone start time and making sure that
the number of samples generated corresponds at least to the time difference
between the tone start and stop commands.

Bug 6607077

Change-Id: I070d20dd8600c25a9e5d5a60c1d3313b7917b00d
oneGenerator.cpp
16ba880fa8457f27a37467f405fe236e72032d44 28-Mar-2013 Eric Laurent <elaurent@google.com> am 7ffe7689: am 2d595c0e: Merge "ToneGenerator: fix stop/destroy concurrency" into jb-mr2-dev

* commit '7ffe76894f0b68f4af159c68053fcfd29ca2e6fa':
ToneGenerator: fix stop/destroy concurrency
09108adeca8cbbf3fbb21f8aea2a2ff250db9531 27-Mar-2013 Eric Laurent <elaurent@google.com> ToneGenerator: fix stop/destroy concurrency

There is a problem if the stopTone() method is called
from two different threads (for instance if the destructor is called
while stopTone() is waiting for the audio callback to finish).

In this case, the second call to stopTone() will not wait for the
condition to be signaled and call clearWaveGens() while the callback
can still be active, thus causing a crash.

There is a similar problem in case of concurrent calls to startTone()
and stopTone().

The fix consists in making sure that stopTone() always waits for call
back completion or timeout and exits before calling clearWaveGens()
if a concurrent start request is detected.

Bug 8163071

Change-Id: I9ddb4390407701dcad5bf83660fd9903f0d72268
oneGenerator.cpp
2af030214e08f76c796365b0f9e1aca3dc14a6ef 27-Mar-2013 Eric Laurent <elaurent@google.com> ToneGenerator: fix stop/destroy concurrency

There is a problem if the stopTone() method is called
from two different threads (for instance if the destructor is called
while stopTone() is waiting for the audio callback to finish).

In this case, the second call to stopTone() will not wait for the
condition to be signaled and call clearWaveGens() while the callback
can still be active, thus causing a crash.

There is a similar problem in case of concurrent calls to startTone()
and stopTone().

The fix consists in making sure that stopTone() always waits for call
back completion or timeout and exits before calling clearWaveGens()
if a concurrent start request is detected.

Bug 8163071

Change-Id: I9ddb4390407701dcad5bf83660fd9903f0d72268
oneGenerator.cpp
ee1203117c37db7546f0e5669555437394b46eb1 26-Mar-2013 Eric Laurent <elaurent@google.com> am 44ae449b: am 6386b50b: ToneGenerator: fix AudioTrack pointer init

* commit '44ae449bd1c85be87e7b1fa4ffac21dd7d1a5d8f':
ToneGenerator: fix AudioTrack pointer init
6386b50b67185a966d43ee761acdfe7add569d10 26-Mar-2013 Eric Laurent <elaurent@google.com> ToneGenerator: fix AudioTrack pointer init

The pointer to AudioTrack should be initialized before
early return from ToneGenerator constructor because
it is tested by the destructor.

Bug 8140963

Change-Id: I9a7dfb60ba162b75dfaa5630ab7fc9485afd0074
oneGenerator.cpp
db372594bf27390d2bee089e35c5fb8f67370026 26-Mar-2013 Eric Laurent <elaurent@google.com> ToneGenerator: fix AudioTrack pointer init

The pointer to AudioTrack should be initialized before
early return from ToneGenerator constructor because
it is tested by the destructor.

Bug 8140963

Change-Id: I9a7dfb60ba162b75dfaa5630ab7fc9485afd0074
oneGenerator.cpp
5787070c802a79b8f2a6615fd2afea91117a4b01 26-Mar-2013 Eric Laurent <elaurent@google.com> am ead8ae2a: am 19c11e1c: Merge "ToneGenerator: optimize silent tone" into jb-mr2-dev

* commit 'ead8ae2a46daa3aaf81094720477e5450af5c500':
ToneGenerator: optimize silent tone
19c11e1c854ae3c20bacf66fbb20d53dcdb8d100 26-Mar-2013 Eric Laurent <elaurent@google.com> Merge "ToneGenerator: optimize silent tone" into jb-mr2-dev
bbef2b3f42de20c7d2a920de62d3d1eca40e054f 26-Mar-2013 Eric Laurent <elaurent@google.com> Merge "ToneGenerator: optimize silent tone" into jb-mr2-dev
6eb954f54e4a92b3c4bfbee177a3259d1320500d 25-Mar-2013 Eric Laurent <elaurent@google.com> ToneGenerator: optimize silent tone

Do not create an AudioTrack and start playback when a silent
tone is requested to ToneGenerator.

Bug 7946399

Change-Id: Ib9282871a56f7a862af7d1504ce3fbd7c18e34e2
oneGenerator.cpp
3beec60725cf0e5cf8e365d6c85928160c2cb75e 25-Mar-2013 Eric Laurent <elaurent@google.com> ToneGenerator: optimize silent tone

Do not create an AudioTrack and start playback when a silent
tone is requested to ToneGenerator.

Bug 7946399

Change-Id: Ib9282871a56f7a862af7d1504ce3fbd7c18e34e2
oneGenerator.cpp
793cc53aaa6b46ccd5ad7c6acfe2e62b268c84d3 25-Mar-2013 Jeff Tinker <jtinker@google.com> am d247aa8c: am 351f28e2: Merge "Load crypto plugins from additional shared libraries" into jb-mr2-dev

* commit 'd247aa8cec243a0a49a44057749820149e826d1a':
Load crypto plugins from additional shared libraries
bafb682ec7f51486e751fea954169deb91846063 22-Mar-2013 Jeff Tinker <jtinker@google.com> Load crypto plugins from additional shared libraries

Currently crypto plugins are expected to be in libdrmdecrypt.so.
When there are multiple plugins supporting different schemes,
this approach requires source code integration across
vendors which is unmanagable. Also, for integration with
MediaDrm where the crypto keys are obtained from a drm server,
the MediaCrypto plugin needs to interoperate with the MediaDrm
plugin. This change allows {MediaCrypto, MediaDrm} pairs that
are logically related to be implemented in a common shared
library.

Change-Id: I7f6638f29171f91609fc2d944396365568630b56
Crypto.cpp
5beac28a34e557251bd4bbd77a6d9303a69d4319 22-Mar-2013 Jeff Tinker <jtinker@google.com> Load crypto plugins from additional shared libraries

Currently crypto plugins are expected to be in libdrmdecrypt.so.
When there are multiple plugins supporting different schemes,
this approach requires source code integration across
vendors which is unmanagable. Also, for integration with
MediaDrm where the crypto keys are obtained from a drm server,
the MediaCrypto plugin needs to interoperate with the MediaDrm
plugin. This change allows {MediaCrypto, MediaDrm} pairs that
are logically related to be implemented in a common shared
library.

Change-Id: I7f6638f29171f91609fc2d944396365568630b56
Crypto.cpp
a2bacf9dcb22243ffaa96a50a008694344fc5da0 20-Mar-2013 Jeff Tinker <jtinker@google.com> am 81c859d6: am de5cdcae: Merge "Implementing MediaDrm APIs" into jb-mr2-dev

* commit '81c859d64ae58c565b66afee6b6232b7bb4fd38b':
Implementing MediaDrm APIs
de5cdcae51d3afd9b14e818087be14288c0c6b8c 20-Mar-2013 Jeff Tinker <jtinker@google.com> Merge "Implementing MediaDrm APIs" into jb-mr2-dev
aab193b107e302e145b5c3d6e6c87f92ac296186 20-Mar-2013 Jeff Tinker <jtinker@google.com> Merge "Implementing MediaDrm APIs" into jb-mr2-dev
4757d457bb6943931253176b5ba63758d5ea44c2 14-Mar-2013 Mathias Agopian <mathias@google.com> am 1be720b5: am a32fd0e2: Merge "remove uses of Surface in favor or IGraphicBufferProducer" into jb-mr2-dev

* commit '1be720b5a2af2dfb2ef1cd2614ef2e7dfa3513dc':
remove uses of Surface in favor or IGraphicBufferProducer
441a78d5e224e0d67f9b52fa9adc795c6944159b 08-Feb-2013 Jeff Tinker <jtinker@google.com> Implementing MediaDrm APIs

Change-Id: I9ff8eeb7d0c383b5c0c68cd54eb54ce7d2d22fe6
ndroid.mk
Drm.cpp
MediaPlayerService.cpp
cc82dc6d500023eba6048616301a4b12682458db 08-Feb-2013 Jeff Tinker <jtinker@google.com> Implementing MediaDrm APIs

Change-Id: I9ff8eeb7d0c383b5c0c68cd54eb54ce7d2d22fe6
ndroid.mk
Drm.cpp
MediaPlayerService.cpp
99617adda9bc46c43f511f0940bc735c73de61de 13-Mar-2013 Mathias Agopian <mathias@google.com> remove uses of Surface in favor or IGraphicBufferProducer

Change-Id: I13d7a9553aa335bca790a3a59d389d7533c83d57
MediaRecorder.cpp
ediarecorder.cpp
33da402287605e40e189289b11a08b8f5d515818 13-Mar-2013 Mathias Agopian <mathias@google.com> remove uses of Surface in favor or IGraphicBufferProducer

Change-Id: I13d7a9553aa335bca790a3a59d389d7533c83d57
MediaRecorder.cpp
ediarecorder.cpp
660fbbb77f42745d2c05b436f1a09c5cbd3853c5 09-Mar-2013 Glenn Kasten <gkasten@google.com> Merge "Propose new interpretation for setPosition and setLoop"
2217a40453b4b13232be77121bde76d6f31be012 06-Mar-2013 Glenn Kasten <gkasten@google.com> Merge "Add template class SingleStateQueue" into jb-mr2-dev
060c68497a9ab59fd71ffbe7c9a7cd3e58489265 06-Mar-2013 Glenn Kasten <gkasten@google.com> Merge "Add template class SingleStateQueue" into jb-mr2-dev
e51d8b3ba4533b7f94345a97e3cc633dc7b31f12 05-Mar-2013 Andy McFadden <fadden@android.com> Merge "Implement Surface input to MediaCodec." into jb-mr2-dev
a7a5917a064710edea9cfacc8eda44532150e852 05-Mar-2013 Andy McFadden <fadden@android.com> Merge "Implement Surface input to MediaCodec." into jb-mr2-dev
5c4cc0d99d3b1cb35c5d7c237272ee53142745fb 26-Nov-2012 Glenn Kasten <gkasten@google.com> Add template class SingleStateQueue

Change-Id: If7e2bc9b2a216524ee9cbb68682e2634933b4973
ndroid.mk
ingleStateQueue.cpp
ingleStateQueueInstantiations.cpp
538f498bbd5a2da51c9037a2689afc97f8bded8f 26-Nov-2012 Glenn Kasten <gkasten@google.com> Add template class SingleStateQueue

Change-Id: If7e2bc9b2a216524ee9cbb68682e2634933b4973
ndroid.mk
ingleStateQueue.cpp
ingleStateQueueInstantiations.cpp
7cd58537932ef6f481f68be0b9c597a89cebdfec 19-Feb-2013 Andy McFadden <fadden@android.com> Implement Surface input to MediaCodec.

Also, renamed a CHECK_INTERFACE macro that was clashing with the
Binder version.

Bug 7991062

Change-Id: If5e6ed0a06d9f67975497676e4b05abe3aa3d6c0
OMX.cpp
f779bb50d9746d9526541c3e6dcdf619cac941b7 19-Feb-2013 Andy McFadden <fadden@android.com> Implement Surface input to MediaCodec.

Also, renamed a CHECK_INTERFACE macro that was clashing with the
Binder version.

Bug 7991062

Change-Id: If5e6ed0a06d9f67975497676e4b05abe3aa3d6c0
OMX.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
udioRecord.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
udioRecord.cpp
ea2839f133b989b770cc5f093aca4754e5523599 01-Mar-2013 Marco Nelissen <marcone@google.com> am c0048178: Merge "Avoid invalid memory access when using extractMetadata()"

* commit 'c0048178a1d312e7e05557ba99becd6a89b9e97a':
Avoid invalid memory access when using extractMetadata()
551bb75ae1bec8db8577febcf6faaa35a37947dc 01-Mar-2013 Marco Nelissen <marcone@google.com> am c0048178: Merge "Avoid invalid memory access when using extractMetadata()"

* commit 'c0048178a1d312e7e05557ba99becd6a89b9e97a':
Avoid invalid memory access when using extractMetadata()
c0048178a1d312e7e05557ba99becd6a89b9e97a 01-Mar-2013 Marco Nelissen <marcone@google.com> Merge "Avoid invalid memory access when using extractMetadata()"
1a76084dd8918533b00d76fbef15888742f752df 01-Mar-2013 Marco Nelissen <marcone@google.com> Merge "Avoid invalid memory access when using extractMetadata()"
d01c148195283d6bc68e2bd1486380f118d89e00 08-Feb-2013 Sangkyu Lee <sk82.lee@lge.com> Avoid invalid memory access when using extractMetadata()

BpMediaMetadataRetriever::extractMetadata() returns a string
which is returned by readCString() function of the reply parcel object.
However, the parcel object is destroyed at the end of the
extractMetadata() function, and so the returned pointer is invalid.
This patch fixes this problem by storing the metadata string value.

Change-Id: I2a2ccba78246175b2845a237679d6cebe881e83b
Signed-off-by: Sangkyu Lee <sk82.lee@lge.com>
MediaMetadataRetriever.cpp
d72b2aa86e19644bbaa72039b3a3044390ba0ecd 08-Feb-2013 Sangkyu Lee <sk82.lee@lge.com> Avoid invalid memory access when using extractMetadata()

BpMediaMetadataRetriever::extractMetadata() returns a string
which is returned by readCString() function of the reply parcel object.
However, the parcel object is destroyed at the end of the
extractMetadata() function, and so the returned pointer is invalid.
This patch fixes this problem by storing the metadata string value.

Change-Id: I2a2ccba78246175b2845a237679d6cebe881e83b
Signed-off-by: Sangkyu Lee <sk82.lee@lge.com>
MediaMetadataRetriever.cpp
ceb388d6c03c38b96dc41c0ea4804b749aa077c4 19-Feb-2013 Eino-Ville Talvala <etalvala@google.com> CameraService and Stagefright: Support AppOps

Camera:
- Signal to AppOpsService when camera usage starts and stops
- Listen to permissions revocations and act on them
- Currently just kill camera connection when permissions lost

Stagefright:
- Pass on client name, UID to camera as needed

Bug: 8181262
Change-Id: I9e33c9d05e9daa77dbb2d795045d08eb887ec8f0
MediaRecorder.cpp
ediarecorder.cpp
48af7e8dd40883d6154e7029d9500072b551b5fa 19-Feb-2013 Eino-Ville Talvala <etalvala@google.com> CameraService and Stagefright: Support AppOps

Camera:
- Signal to AppOpsService when camera usage starts and stops
- Listen to permissions revocations and act on them
- Currently just kill camera connection when permissions lost

Stagefright:
- Pass on client name, UID to camera as needed

Bug: 8181262
Change-Id: I9e33c9d05e9daa77dbb2d795045d08eb887ec8f0
MediaRecorder.cpp
ediarecorder.cpp
1a2952aee048ca7b1765e2bc09ebe9aeddaeafa3 15-Feb-2013 Mathias Agopian <mathias@google.com> Refactoring: Rename SurfaceTextureClient to Surface

Change-Id: I4e8a8b20914cb64edc37abe68233fbc9f2b5d830
ediaplayer.cpp
b1e7cd156ca3e1747374e0d20cdd1ce467210453 15-Feb-2013 Mathias Agopian <mathias@google.com> Refactoring: Rename SurfaceTextureClient to Surface

Change-Id: I4e8a8b20914cb64edc37abe68233fbc9f2b5d830
ediaplayer.cpp
272ab546940054ad7991bef4b3a36f15175721cd 05-Feb-2013 Jean-Michel Trivi <jmtrivi@google.com> Add support for querying if a stream is active remotely

Bug 7485803

Change-Id: I0744374f130fd2dd0714102354cffed2fa915361
udioSystem.cpp
AudioPolicyService.cpp
e336f9113bdd35119866a3c3f8008ca01c576660 05-Feb-2013 Jean-Michel Trivi <jmtrivi@google.com> Add support for querying if a stream is active remotely

Bug 7485803

Change-Id: I0744374f130fd2dd0714102354cffed2fa915361
udioSystem.cpp
AudioPolicyService.cpp
a416756864e2c7750d59d967ec2185532fa5c2e0 01-Feb-2013 Glenn Kasten <gkasten@google.com> Merge "Add media.log service based on NBLog"
0be9fe5864c39c11eefe335038cf6ce5473e4ec5 01-Feb-2013 Glenn Kasten <gkasten@google.com> Merge "Add media.log service based on NBLog"
a6a88d9c445e261972c2433254e0a996336e78a4 30-Jan-2013 Andreas Huber <andih@google.com> Plumbing to reflect minor changes in the HDCP module API that allow for

support of _decryption_ modules in addition to what we already supported.

Change-Id: Ic37b87dc170ba8def3817991d25df798f21e950b
HDCP.cpp
MediaPlayerService.cpp
279dcd89ab1d2de91dfe95e461412a0f577a6891 30-Jan-2013 Andreas Huber <andih@google.com> Plumbing to reflect minor changes in the HDCP module API that allow for

support of _decryption_ modules in addition to what we already supported.

Change-Id: Ic37b87dc170ba8def3817991d25df798f21e950b
HDCP.cpp
MediaPlayerService.cpp
6f1c1918d0dfece10f728711b055441e4d135c73 19-Jan-2013 Glenn Kasten <gkasten@google.com> Add media.log service based on NBLog

Change-Id: Ie45093df6ac9a739d05c8d408fab52a9a8a27e7f
ndroid.mk
MediaLogService.cpp
fdf4e4f1859771b95585cbc87f8cd038ea2815c6 19-Jan-2013 Glenn Kasten <gkasten@google.com> Add media.log service based on NBLog

Change-Id: Ie45093df6ac9a739d05c8d408fab52a9a8a27e7f
ndroid.mk
MediaLogService.cpp
2e4664677d72ce54201d3fd0beb0e10280add93c 10-Jan-2013 Glenn Kasten <gkasten@google.com> Fix AudioRecord

Bug: 7965744
Change-Id: Ic024e7fb32f7459b8093c2cf6cd5752aade21ddb
udioRecord.cpp
45490af027a15af9fe0fdfca21f423c74cd8e4e9 10-Jan-2013 Glenn Kasten <gkasten@google.com> Fix AudioRecord

Bug: 7965744
Change-Id: Ic024e7fb32f7459b8093c2cf6cd5752aade21ddb
udioRecord.cpp
9c6745f128648f6e0144b74ee593911a9fa10d51 30-Nov-2012 Glenn Kasten <gkasten@google.com> Propose new interpretation for setPosition and setLoop

Add new API getBufferPosition to return position relative
to start of fixed buffer.

Change-Id: I7aca8e392d45b988545f07b36b5032691057b03e
udioTrack.cpp
a589764c3c0617c7a8996e929ce2d6db1cc01d77 05-Jan-2013 Glenn Kasten <gkasten@google.com> Fix bug in AudioRecord() constructor

It was calling set() with wrong parameter list.
This goes back to commit be916aa1267e2e6b1c148f51d11bcbbc79cb864c from 2010.

Change-Id: I2f6917765baf58260bf35e89a2cc59c199734ff6
udioRecord.cpp
b438f008d958fbe3c1ef668822c128dfe5ce97ac 05-Jan-2013 Glenn Kasten <gkasten@google.com> Fix bug in AudioRecord() constructor

It was calling set() with wrong parameter list.
This goes back to commit be916aa1267e2e6b1c148f51d11bcbbc79cb864c from 2010.

Change-Id: I2f6917765baf58260bf35e89a2cc59c199734ff6
udioRecord.cpp
d5681bc9a38fe4cd1d591e6ae62b9c68fb851041 22-Dec-2012 Glenn Kasten <gkasten@google.com> Merge "Start isolating control block accesses in a proxy"
856ff4e4c3c43550f013e80277358fdf514342bf 22-Dec-2012 Glenn Kasten <gkasten@google.com> Merge "Start isolating control block accesses in a proxy"
49d24d3fcd01aef0ec1fa4abd9c1b85473f64c0f 21-Dec-2012 Glenn Kasten <gkasten@google.com> Merge "Remove unnecessary parameter"
5570227ac334479982a9dd8c1647c00f58f47c18 21-Dec-2012 Glenn Kasten <gkasten@google.com> Merge "Remove unnecessary parameter"
0fd58c9758d2083915864d3cc63df7495b497e52 20-Dec-2012 Glenn Kasten <gkasten@google.com> Merge "Fix bug with discarded AudioRecord::read count"
e30c14b48fb9c5f47802fce32a3a1115b374b357 20-Dec-2012 Glenn Kasten <gkasten@google.com> Merge "Fix bug with discarded AudioRecord::read count"
8d6cc842e8d525405c68e57fdf3bc5da0b4d7e87 03-Feb-2012 Glenn Kasten <gkasten@google.com> Remove unnecessary parameter

Just get the parameter on server side

Change-Id: I433a63104dbb257e0d862be2ab61847cb36d1c15
udioEffect.cpp
udioRecord.cpp
udioTrack.cpp
AudioFlinger.cpp
MediaPlayerService.cpp
ediametadataretriever.cpp
ediaplayer.cpp
ediarecorder.cpp
f37971f624164c3ed185d3f976404a6f60f49b9a 03-Feb-2012 Glenn Kasten <gkasten@google.com> Remove unnecessary parameter

Just get the parameter on server side

Change-Id: I433a63104dbb257e0d862be2ab61847cb36d1c15
udioEffect.cpp
udioRecord.cpp
udioTrack.cpp
AudioFlinger.cpp
MediaPlayerService.cpp
ediametadataretriever.cpp
ediaplayer.cpp
ediarecorder.cpp
8ba01021b573889802e67e029225a96f0dfa471a 18-Dec-2012 Andy McFadden <fadden@android.com> Rename ISurfaceTexture and SurfaceTexture

The C++ class names don't match what the classes do, so rename
ISurfaceTexture to IGraphicBufferProducer, and SurfaceTexture to
GLConsumer.

Bug 7736700

Change-Id: I64520a55f8c09fe6215382ea361c539a9940cba5
MediaPlayer.cpp
MediaRecorder.cpp
RemoteDisplayClient.cpp
ediaplayer.cpp
ediarecorder.cpp
484566c410afdfbc4b6bc5aa1732aef37428a5b8 18-Dec-2012 Andy McFadden <fadden@android.com> Rename ISurfaceTexture and SurfaceTexture

The C++ class names don't match what the classes do, so rename
ISurfaceTexture to IGraphicBufferProducer, and SurfaceTexture to
GLConsumer.

Bug 7736700

Change-Id: I64520a55f8c09fe6215382ea361c539a9940cba5
MediaPlayer.cpp
MediaRecorder.cpp
RemoteDisplayClient.cpp
ediaplayer.cpp
ediarecorder.cpp
89b629b398e87095cf262692f4e476d605fe87ed 17-Dec-2012 Glenn Kasten <gkasten@google.com> Fix bug with discarded AudioRecord::read count

Formerly, if an AudioRecord::read() got a timeout on obtainBuffer()
after already successfully transferring some data, then it returned zero.
This had the effect of discarding a partial transfer, which resulted in
a gap in the audio data delivered to the app. Now if a timeout occurs
after a partial transfer, it returns that partial transfer count so that
no data is lost.

Change-Id: I0d9c2f4e495a400b56ef916a06613ba26537ca97
udioRecord.cpp
74b8adfbec4b34da7904de544f1e549e21a90426 17-Dec-2012 Glenn Kasten <gkasten@google.com> Fix bug with discarded AudioRecord::read count

Formerly, if an AudioRecord::read() got a timeout on obtainBuffer()
after already successfully transferring some data, then it returned zero.
This had the effect of discarding a partial transfer, which resulted in
a gap in the audio data delivered to the app. Now if a timeout occurs
after a partial transfer, it returns that partial transfer count so that
no data is lost.

Change-Id: I0d9c2f4e495a400b56ef916a06613ba26537ca97
udioRecord.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
udioRecord.cpp
udioTrack.cpp
udioTrackShared.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
udioRecord.cpp
udioTrack.cpp
udioTrackShared.cpp
a8190fc518b6769257896605f3aee091aeb60b50 04-Dec-2012 Glenn Kasten <gkasten@google.com> Split off the current control block to separate file

Prepare for a new implementation of step() etc.

Change-Id: I268421976ba577aa1fb5d7015de5441c05861190
ndroid.mk
udioTrack.cpp
udioTrackShared.cpp
e6106dff611a0056495719c62e0c92abd9afe4c1 04-Dec-2012 Glenn Kasten <gkasten@google.com> Split off the current control block to separate file

Prepare for a new implementation of step() etc.

Change-Id: I268421976ba577aa1fb5d7015de5441c05861190
ndroid.mk
udioTrack.cpp
udioTrackShared.cpp
083d1c1492d496960d5b28f4664ff02101736677 01-Dec-2012 Glenn Kasten <gkasten@google.com> Emphasize distinction between streaming and static

Update comments and improve error checks to match

Change-Id: I7370d6e59a7ef26dfb284a8b058d5ab2e0a42ccf
udioTrack.cpp
8f7453f6770070f4789cb769bd2b6a3eabad7d68 01-Dec-2012 Glenn Kasten <gkasten@google.com> Emphasize distinction between streaming and static

Update comments and improve error checks to match

Change-Id: I7370d6e59a7ef26dfb284a8b058d5ab2e0a42ccf
udioTrack.cpp
4bae3649d504d590a546717a8e49f96a30d9a745 30-Nov-2012 Glenn Kasten <gkasten@google.com> flush() comments and checks

flush() is only useful for streaming mode.
It is a no-op if track is active or uses a static buffer.

Change-Id: I918ac181ffae3d16a0d67d8a7208f4aec61b5bd6
udioTrack.cpp
ec7dcac79c121ef015ee237891a5c90e67a977ab 30-Nov-2012 Glenn Kasten <gkasten@google.com> flush() comments and checks

flush() is only useful for streaming mode.
It is a no-op if track is active or uses a static buffer.

Change-Id: I918ac181ffae3d16a0d67d8a7208f4aec61b5bd6
udioTrack.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
udioTrack.cpp
AudioTrack.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
udioTrack.cpp
AudioTrack.cpp
391f1bb93d5720bfe1a025307178b3208a3ce7d7 03-Dec-2012 Glenn Kasten <gkasten@google.com> Merge "AudioTrack inline short const methods"
9862e8f3ba69c46efbafdc8438bd88848a9d55da 03-Dec-2012 Glenn Kasten <gkasten@google.com> Merge "AudioTrack inline short const methods"
01437b7cdaecf53acb46b50ff8b5d86b9d36eb20 29-Nov-2012 Glenn Kasten <gkasten@google.com> AudioTrack inline short const methods

Change-Id: I142917edb454d510bbe545e94e6eaea30b650fae
udioTrack.cpp
ab5bfb15f63887f999f11239e12d78a7babcd112 29-Nov-2012 Glenn Kasten <gkasten@google.com> AudioTrack inline short const methods

Change-Id: I142917edb454d510bbe545e94e6eaea30b650fae
udioTrack.cpp
5876f2f28f31c1bd99864ba3bb1590e3d6765018 30-Nov-2012 Glenn Kasten <gkasten@google.com> Remove last bits of IAudioFlinger::channel_count

Change-Id: I9e13678e0aa32a86eb27367a4aff4b32b8aec8cc
AudioFlinger.cpp
217916f47c77870200856941480b5861ac7e2424 30-Nov-2012 Glenn Kasten <gkasten@google.com> Remove last bits of IAudioFlinger::channel_count

Change-Id: I9e13678e0aa32a86eb27367a4aff4b32b8aec8cc
AudioFlinger.cpp
37a9e8e13bcc9ac614c1b733ec2c66764c29679a 29-Nov-2012 Andreas Huber <andih@google.com> am 2f6107ec: am b64def9a: Merge "[wfd] Support a low(er) power state by triggering PAUSE/RESUME." into jb-mr1.1-dev

* commit '2f6107ec8e67eea1f73b9558a5ad34caec52867f':
[wfd] Support a low(er) power state by triggering PAUSE/RESUME.
f59ab0eb162cc32df4fc0af8d1a4500c5bce3ecc 29-Nov-2012 Andreas Huber <andih@google.com> am 2f6107ec: am b64def9a: Merge "[wfd] Support a low(er) power state by triggering PAUSE/RESUME." into jb-mr1.1-dev

* commit '2f6107ec8e67eea1f73b9558a5ad34caec52867f':
[wfd] Support a low(er) power state by triggering PAUSE/RESUME.
2f6107ec8e67eea1f73b9558a5ad34caec52867f 29-Nov-2012 Andreas Huber <andih@google.com> am b64def9a: Merge "[wfd] Support a low(er) power state by triggering PAUSE/RESUME." into jb-mr1.1-dev

* commit 'b64def9a555bfbf533a2da41ba0189b9842a76fb':
[wfd] Support a low(er) power state by triggering PAUSE/RESUME.
53faa7ee457eb9b27be1fd814e42ffe43c8520a0 29-Nov-2012 Andreas Huber <andih@google.com> am b64def9a: Merge "[wfd] Support a low(er) power state by triggering PAUSE/RESUME." into jb-mr1.1-dev

* commit 'b64def9a555bfbf533a2da41ba0189b9842a76fb':
[wfd] Support a low(er) power state by triggering PAUSE/RESUME.
5131d127a042ee88f903370be88845dc8c9f8578 16-Nov-2012 Andreas Huber <andih@google.com> [wfd] Support a low(er) power state by triggering PAUSE/RESUME.

Change-Id: Ibe42bfa73816bbfeb7e652d435254d0171b89727
related-to-bug: 7638150
RemoteDisplay.cpp
bf4950aa265ec7b54777d122b27037461638af0f 16-Nov-2012 Andreas Huber <andih@google.com> [wfd] Support a low(er) power state by triggering PAUSE/RESUME.

Change-Id: Ibe42bfa73816bbfeb7e652d435254d0171b89727
related-to-bug: 7638150
RemoteDisplay.cpp
2546219a54970e0ad53bd218586cdc48d6039b20 28-Nov-2012 Andreas Huber <andih@google.com> am 7b7f17dc: am b7c8e918: Add support for HLS playlists of type \'event\'.

* commit '7b7f17dc9b30ff4ecdf0aea9bcfa1c518d4ac1e7':
Add support for HLS playlists of type 'event'.
1bfcf04b27bdd5320ab70b74285b855380e83f26 28-Nov-2012 Andreas Huber <andih@google.com> am 7b7f17dc: am b7c8e918: Add support for HLS playlists of type \'event\'.

* commit '7b7f17dc9b30ff4ecdf0aea9bcfa1c518d4ac1e7':
Add support for HLS playlists of type 'event'.
7b7f17dc9b30ff4ecdf0aea9bcfa1c518d4ac1e7 28-Nov-2012 Andreas Huber <andih@google.com> am b7c8e918: Add support for HLS playlists of type \'event\'.

* commit 'b7c8e91880463ff4981e3e53e98e45d68e2fe374':
Add support for HLS playlists of type 'event'.
61c195615176903bb077a10d6b88ba112fefa250 28-Nov-2012 Andreas Huber <andih@google.com> am b7c8e918: Add support for HLS playlists of type \'event\'.

* commit 'b7c8e91880463ff4981e3e53e98e45d68e2fe374':
Add support for HLS playlists of type 'event'.
b7c8e91880463ff4981e3e53e98e45d68e2fe374 28-Nov-2012 Andreas Huber <andih@google.com> Add support for HLS playlists of type 'event'.

related-to-bug: 6870049

Squashed commit of the following:

commit eee2f3ba6bb7335f4e285632726db85645669929
Author: Andreas Huber <andih@google.com>
Date: Tue Nov 27 15:02:01 2012 -0800

Make everything a lot less verbose by default.

Change-Id: I884d7a7901aa1e7d4ff590f065ca57a79d2af8b3

commit 6bbdb837ed5bd88008e45efb8faf595e4051ba26
Author: Andreas Huber <andih@google.com>
Date: Tue Nov 27 14:34:46 2012 -0800

HLS now properly signals media time changes at discontinuities including

the start of playback (which may not necessarily be at time 0 if the playlist
is of type 'event' and hasn't completed yet).

Change-Id: I5ab747d024f9b8d0df72a4e06a12ebb29f62802e

commit 1555589832b1878a144a976a643e1af4d61f877c
Author: Andreas Huber <andih@google.com>
Date: Tue Nov 27 14:32:28 2012 -0800

As part of a time discontinuity, clients of IStreamListener can now

signal the corresponding media time after the discontinuity, i.e. the first PTS
timestamp following the discontinuity will be considered equivalent to the
specified media time and media buffers timestamped accordingly.

Change-Id: Id7db7679b7faa6efd6270620ff52e34e884f3e92

commit 5c24c605c073a11c426d025b1e7478fc1ad8365a
Author: Andreas Huber <andih@google.com>
Date: Tue Nov 27 13:00:56 2012 -0800

NuPlayer sources now expose flags() and can announce

that duration may change (increase) dynamically, in which case duration
will be polled at 1 second intervals and communicated to the upper layers.

Change-Id: I45102909b7a19eed0dda576747e3814d742a0eea

commit ecb71de8e281e61971a2cd73e7161a97540bc357
Author: Andreas Huber <andih@google.com>
Date: Tue Nov 27 12:57:47 2012 -0800

Stop caching duration in MediaPlayer, duration could increase dynamically.

Change-Id: I7bb2f16c0abe49debdf45c776d2266aa069d7791

commit 544aec5823e6d7a3e97e15b6b23546616bcd343e
Author: Andreas Huber <andih@google.com>
Date: Tue Nov 27 08:46:28 2012 -0800

An attempt to add support for "event" style HLS playlists.

Change-Id: I3dfb2e801ecaff8f5d8bdb3a4fca1b18aeeb2c60

Change-Id: I48cf7f65a654d33f2f49ded74f8be22aed9e3b98
StreamSource.cpp
ediaplayer.cpp
a4c5bc0f18fe272146426ab2eccad6215279c9f3 28-Nov-2012 Andreas Huber <andih@google.com> Add support for HLS playlists of type 'event'.

related-to-bug: 6870049

Squashed commit of the following:

commit eee2f3ba6bb7335f4e285632726db85645669929
Author: Andreas Huber <andih@google.com>
Date: Tue Nov 27 15:02:01 2012 -0800

Make everything a lot less verbose by default.

Change-Id: I884d7a7901aa1e7d4ff590f065ca57a79d2af8b3

commit 6bbdb837ed5bd88008e45efb8faf595e4051ba26
Author: Andreas Huber <andih@google.com>
Date: Tue Nov 27 14:34:46 2012 -0800

HLS now properly signals media time changes at discontinuities including

the start of playback (which may not necessarily be at time 0 if the playlist
is of type 'event' and hasn't completed yet).

Change-Id: I5ab747d024f9b8d0df72a4e06a12ebb29f62802e

commit 1555589832b1878a144a976a643e1af4d61f877c
Author: Andreas Huber <andih@google.com>
Date: Tue Nov 27 14:32:28 2012 -0800

As part of a time discontinuity, clients of IStreamListener can now

signal the corresponding media time after the discontinuity, i.e. the first PTS
timestamp following the discontinuity will be considered equivalent to the
specified media time and media buffers timestamped accordingly.

Change-Id: Id7db7679b7faa6efd6270620ff52e34e884f3e92

commit 5c24c605c073a11c426d025b1e7478fc1ad8365a
Author: Andreas Huber <andih@google.com>
Date: Tue Nov 27 13:00:56 2012 -0800

NuPlayer sources now expose flags() and can announce

that duration may change (increase) dynamically, in which case duration
will be polled at 1 second intervals and communicated to the upper layers.

Change-Id: I45102909b7a19eed0dda576747e3814d742a0eea

commit ecb71de8e281e61971a2cd73e7161a97540bc357
Author: Andreas Huber <andih@google.com>
Date: Tue Nov 27 12:57:47 2012 -0800

Stop caching duration in MediaPlayer, duration could increase dynamically.

Change-Id: I7bb2f16c0abe49debdf45c776d2266aa069d7791

commit 544aec5823e6d7a3e97e15b6b23546616bcd343e
Author: Andreas Huber <andih@google.com>
Date: Tue Nov 27 08:46:28 2012 -0800

An attempt to add support for "event" style HLS playlists.

Change-Id: I3dfb2e801ecaff8f5d8bdb3a4fca1b18aeeb2c60

Change-Id: I48cf7f65a654d33f2f49ded74f8be22aed9e3b98
StreamSource.cpp
ediaplayer.cpp
2b691b90507ec45a98636a855c46de5dbe27c84a 11-Oct-2012 Zbigniew Mazur <zbigniew.mazur@sonyericsson.com> AudioTrack::dump null mCblk check test

This fix is protecting AudioTrack::dump from SIGSEGEV
when calling dumpsys shell command.

Change-Id: I30d136e195a12d6fdad41e14f557b0ad9e59b8a2
udioTrack.cpp
3ac30b696d8f3ae2c6ee87d58acfd71db7c2e808 11-Oct-2012 Zbigniew Mazur <zbigniew.mazur@sonyericsson.com> AudioTrack::dump null mCblk check test

This fix is protecting AudioTrack::dump from SIGSEGEV
when calling dumpsys shell command.

Change-Id: I30d136e195a12d6fdad41e14f557b0ad9e59b8a2
udioTrack.cpp
4d9cef6c007afd195a8f36d35d46b359bf909331 19-Nov-2012 Glenn Kasten <gkasten@google.com> Merge "Clean up channel count and channel mask"
a81a88597138de226da88fe10456d46289107e8a 19-Nov-2012 Glenn Kasten <gkasten@google.com> Merge "Clean up channel count and channel mask"
a42ff007a17d63df22c60dd5e5fd811ee45ca1b3 14-Nov-2012 Glenn Kasten <gkasten@google.com> Clean up channel count and channel mask

Channel count is uint32_t.
Remove redundant mask parameter to AudioTrack::createTrack_l()
and AudioRecord::openRecord_l().

Change-Id: I5dc2b18eb609b2c0dc3091994cbaa4628062c17f
udioRecord.cpp
udioTrack.cpp
c45128af9231a6e26c4deef798b79e74e4fad904 14-Nov-2012 Glenn Kasten <gkasten@google.com> Clean up channel count and channel mask

Channel count is uint32_t.
Remove redundant mask parameter to AudioTrack::createTrack_l()
and AudioRecord::openRecord_l().

Change-Id: I5dc2b18eb609b2c0dc3091994cbaa4628062c17f
udioRecord.cpp
udioTrack.cpp
a6b47a17fb1288936b491f30cd751172a572df5c 19-Nov-2012 Marco Nelissen <marcone@google.com> delete -> free

Strings duplicated with strdup() should be free()d, not deleted.

Change-Id: I42bb3df9625bb8d35f80b02d15364b94c36496f8
oundPool.cpp
40b13798d735429d1f00d8a89113e9ab2ef88fca 19-Nov-2012 Marco Nelissen <marcone@google.com> delete -> free

Strings duplicated with strdup() should be free()d, not deleted.

Change-Id: I42bb3df9625bb8d35f80b02d15364b94c36496f8
oundPool.cpp
aa25c0321bd4b9eb46a4d1cb4ac5fa47af30eeb4 17-Nov-2012 Glenn Kasten <gkasten@google.com> Merge ""if" statements use curly braces per media style"
7aeff3f2197de81271c3e5547486f3407be56182 17-Nov-2012 Glenn Kasten <gkasten@google.com> Merge ""if" statements use curly braces per media style"
77035d10a740914313500811b31a90ab948bd267 17-Nov-2012 Glenn Kasten <gkasten@google.com> Merge "Fix time vs. bytes units bug in getRenderPosition"
645f38376b042759ee3cfe78b7e97a6867b65814 17-Nov-2012 Glenn Kasten <gkasten@google.com> Merge "Fix time vs. bytes units bug in getRenderPosition"
67ba2b6b8018ce7556cdd880dbf28d06a92ebb78 17-Nov-2012 Glenn Kasten <gkasten@google.com> Merge "Don't use control block frame count after create"
0dec3d6af5ad8783149134e594aadbe5dc339b4d 17-Nov-2012 Glenn Kasten <gkasten@google.com> Merge "Don't use control block frame count after create"
b603744e96b07b1d5bf745bde593fb2c025cefcf 14-Nov-2012 Glenn Kasten <gkasten@google.com> Don't use control block frame count after create

This is part of a series to clean up the control block.

Change-Id: I7f4cb05aef63053f8e2ab05b286d302260ef4758
udioRecord.cpp
udioTrack.cpp
d7101432aa28f18b1510d9c186a27eecbeba46b2 14-Nov-2012 Glenn Kasten <gkasten@google.com> Don't use control block frame count after create

This is part of a series to clean up the control block.

Change-Id: I7f4cb05aef63053f8e2ab05b286d302260ef4758
udioRecord.cpp
udioTrack.cpp
d65d73c4ae74d084751b417615a78cbe7a51372a 23-Jun-2012 Glenn Kasten <gkasten@google.com> "if" statements use curly braces per media style

Change-Id: I130e7849fd1da7a0b7fe56c3c53919d26e3843b8
udioRecord.cpp
udioTrack.cpp
a204922b4c04633a4e9896db3c40763bcf921ade 23-Jun-2012 Glenn Kasten <gkasten@google.com> "if" statements use curly braces per media style

Change-Id: I130e7849fd1da7a0b7fe56c3c53919d26e3843b8
udioRecord.cpp
udioTrack.cpp
827e5f1237757aee78b677efcf0f7c44fd0dd3d8 02-Nov-2012 Glenn Kasten <gkasten@google.com> Don't explicitly log tid

If needed, it can be obtained with adb logcat -v threadtime

Change-Id: I91b3911d20f7bcfc3361db4052db21ff9181f1cf
udioTrack.cpp
411e447c4b90298f5ff635429c53f94fbce4fff9 02-Nov-2012 Glenn Kasten <gkasten@google.com> Don't explicitly log tid

If needed, it can be obtained with adb logcat -v threadtime

Change-Id: I91b3911d20f7bcfc3361db4052db21ff9181f1cf
udioTrack.cpp
26c77556efc30800466b60b3975bc35a70c8c28b 16-Nov-2012 Glenn Kasten <gkasten@google.com> Fix time vs. bytes units bug in getRenderPosition

Rename correctLatency since it requires thread to be locked.
Use size_t for byte and frame counts.

Change-Id: I178fdd18bdb823813b9563927bdff8c0d28ca5a5
AudioFlinger.cpp
b59a5026ecdb3dc283c448e5bbd51b1c6d42b946 16-Nov-2012 Glenn Kasten <gkasten@google.com> Fix time vs. bytes units bug in getRenderPosition

Rename correctLatency since it requires thread to be locked.
Use size_t for byte and frame counts.

Change-Id: I178fdd18bdb823813b9563927bdff8c0d28ca5a5
AudioFlinger.cpp
e33054eb968cbf8ccaee1b0ff0301403902deed6 14-Nov-2012 Glenn Kasten <gkasten@google.com> Use size_t for frame counts

Also fix typo: bufferCount should be frameCount.

Change-Id: Ibed539504db75ef99dc21c8ff1bf2987122063a5
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
oundPool.cpp
7da35f231725aa6e0b2ac8714a7d66471368df77 14-Nov-2012 Glenn Kasten <gkasten@google.com> Use size_t for frame counts

Also fix typo: bufferCount should be frameCount.

Change-Id: Ibed539504db75ef99dc21c8ff1bf2987122063a5
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
oundPool.cpp
60a839204713e0f8258d082af83262b1eb33a6c3 21-Jun-2012 Glenn Kasten <gkasten@google.com> Clean up frame size in AudioTrack and AudioFlinger

TrackBase::mFrameSize, mChannelMask, and mChannelCount are now const.
Use TrackBase::mFrameSize instead of re-calculating frame size.
AudioFlinger only sees 16-bit PCM format, conversion from 8-bit is
now entirely on the client side. Previously a small part of the
responsibility was on server side also.
size_t is unsigned, so use %u in logs.
Fix theoretical bug where TrackBase constructor was over-allocating space
for non-linear AudioTrack or 8-bit PCM AudioRecord (probably benign).

Change-Id: I7cbbba0bf4dba29ea751d8af341ab8e5cbbdc206
udioTrack.cpp
520a9af9438c29b24e328dd2b7a287c7a96a4e6b 21-Jun-2012 Glenn Kasten <gkasten@google.com> Clean up frame size in AudioTrack and AudioFlinger

TrackBase::mFrameSize, mChannelMask, and mChannelCount are now const.
Use TrackBase::mFrameSize instead of re-calculating frame size.
AudioFlinger only sees 16-bit PCM format, conversion from 8-bit is
now entirely on the client side. Previously a small part of the
responsibility was on server side also.
size_t is unsigned, so use %u in logs.
Fix theoretical bug where TrackBase constructor was over-allocating space
for non-linear AudioTrack or 8-bit PCM AudioRecord (probably benign).

Change-Id: I7cbbba0bf4dba29ea751d8af341ab8e5cbbdc206
udioTrack.cpp
3b16c766d1ae2cfd8487e8ffb2b23936fc0a8e17 14-Nov-2012 Glenn Kasten <gkasten@google.com> Use uint32_t for sample rate

Change-Id: Ie240b48fb54b08359f69ecd4e5f8bda3d15cbe80
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
oundPool.cpp
1127d65d536ebbe447ee17ce0926a7ce4a2a3c08 14-Nov-2012 Glenn Kasten <gkasten@google.com> Use uint32_t for sample rate

Change-Id: Ie240b48fb54b08359f69ecd4e5f8bda3d15cbe80
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
oundPool.cpp
b4a17e834b718eff1ba2eac4232de6e73a4bf9f5 15-Nov-2012 Glenn Kasten <gkasten@google.com> Merge "Update audio comments"
1513ad2d2de0962cc3b3121e6fae73d8ee1a4639 15-Nov-2012 Glenn Kasten <gkasten@google.com> Merge "Update audio comments"
6d92e415c6551d881429151c1902d301a7bf7cf0 15-Nov-2012 Glenn Kasten <gkasten@google.com> Merge "Remove deprecated AudioSystem methods"
8f1c74943c454fec3f1adf87312c4a4c89829d90 15-Nov-2012 Glenn Kasten <gkasten@google.com> Merge "Remove deprecated AudioSystem methods"
22eb4e239fbe9103568147d566d7482e480350b8 07-Nov-2012 Glenn Kasten <gkasten@google.com> Update audio comments

Change-Id: I85d7d2f6381b251db5695202fec75128883a8662
udioTrack.cpp
020f79fd967736d36c7ec860814e2e93866a020f 07-Nov-2012 Glenn Kasten <gkasten@google.com> Update audio comments

Change-Id: I85d7d2f6381b251db5695202fec75128883a8662
udioTrack.cpp
b26e3e9f2ab0334bff21a4fa4851dbf6e57fba5d 14-Nov-2012 Glenn Kasten <gkasten@google.com> Fix build warnings

Change-Id: Ic43bcca166a529a6431711b05a7fa21849b6a38b
AudioFlinger.cpp
98d9922247ef21b0faf8c7d817650b8327052a4a 14-Nov-2012 Glenn Kasten <gkasten@google.com> Fix build warnings

Change-Id: Ic43bcca166a529a6431711b05a7fa21849b6a38b
AudioFlinger.cpp
a552d6049ccf674b083d011ce7b8a443a9cd68a4 14-Nov-2012 Glenn Kasten <gkasten@google.com> Remove deprecated AudioSystem methods

Change-Id: I952d504e03af9a1d3e1e0aa379c82dfb00197d9f
udioSystem.cpp
f6fd99cc07deb0fa4f3e8fc278836bd90649964f 14-Nov-2012 Glenn Kasten <gkasten@google.com> Remove deprecated AudioSystem methods

Change-Id: I952d504e03af9a1d3e1e0aa379c82dfb00197d9f
udioSystem.cpp
b36a7a68af073b1e7fd5cad6aa2c52223fd30efd 13-Nov-2012 Glenn Kasten <gkasten@google.com> Simplify AudioRecord::restoreTrack_l()

Finish removing CBLK_RESTORING and CBLK_RESTORED from control block flags,
and remove constant RESTORE_TIMEOUT_MS.

Also minor cleanup:
- Cache mCblk in local variable cblk and make cblk allocatable in a register.
- Use "iMem" for sp<IMemory>.
- Add missing error log to AudioRecord; it was already in AudioTrack.

This is part of a series to clean up the control block.

Change-Id: Ia5f5ab4763c392bc06a45851b167ddaee29e3455
udioRecord.cpp
55186024431cda03aa4a9960a1c90b6954412e98 13-Nov-2012 Glenn Kasten <gkasten@google.com> Simplify AudioRecord::restoreTrack_l()

Finish removing CBLK_RESTORING and CBLK_RESTORED from control block flags,
and remove constant RESTORE_TIMEOUT_MS.

Also minor cleanup:
- Cache mCblk in local variable cblk and make cblk allocatable in a register.
- Use "iMem" for sp<IMemory>.
- Add missing error log to AudioRecord; it was already in AudioTrack.

This is part of a series to clean up the control block.

Change-Id: Ia5f5ab4763c392bc06a45851b167ddaee29e3455
udioRecord.cpp
83a0382dc17364567667a4e6135db43f5bd92efc 12-Nov-2012 Glenn Kasten <gkasten@google.com> Move frame size out of the control block

This is part of a series to clean up the control block.

Change-Id: Ifab1c42ac0f8be704e571b292713cd2250d12a3f
udioRecord.cpp
udioTrack.cpp
5aab59a2bd0a2cd80240ffd66c1b963b5fe06d65 12-Nov-2012 Glenn Kasten <gkasten@google.com> Move frame size out of the control block

This is part of a series to clean up the control block.

Change-Id: Ifab1c42ac0f8be704e571b292713cd2250d12a3f
udioRecord.cpp
udioTrack.cpp
bc0f6b92bba33ca9c2e76f2a520d290f055da6b2 12-Nov-2012 Glenn Kasten <gkasten@google.com> Fix regression for AudioTrack::write() 8-bit PCM

Bug: 7526532
Change-Id: I8ddd1f0e9d035b54401788dcc422591281dcd97a
udioTrack.cpp
9c6c02eb5badf4ffcd44fc88f2587def2fd628b6 12-Nov-2012 Glenn Kasten <gkasten@google.com> Fix regression for AudioTrack::write() 8-bit PCM

Bug: 7526532
Change-Id: I8ddd1f0e9d035b54401788dcc422591281dcd97a
udioTrack.cpp
b929e417853694e37aba1ef4399f188987b709d9 08-Nov-2012 Glenn Kasten <gkasten@google.com> Move buffers pointer out of the control block

This is part of a series to clean up the control block.

Change-Id: Ie474557db7cb360f2d9a0f11600a68f5a3d46f07
udioRecord.cpp
udioTrack.cpp
2f6226ad7a3fa81dc102001fbc1d1288e55a0947 08-Nov-2012 Glenn Kasten <gkasten@google.com> Move buffers pointer out of the control block

This is part of a series to clean up the control block.

Change-Id: Ie474557db7cb360f2d9a0f11600a68f5a3d46f07
udioRecord.cpp
udioTrack.cpp
a47f3165f53c8e8fb8907a94de7417e2c3047eeb 07-Nov-2012 Glenn Kasten <gkasten@google.com> Simplify AudioTrack::restoreTrack_l()

Remove CBLK_RESTORING and CBLK_RESTORED from control block flags,
for AudioTrack only. They are still used by AudioRecord.

This is part of a series to clean up the control block.

Change-Id: Iae4798f5b527c492bdaf789987ff3a1dadd0cb37
udioTrack.cpp
e0461d1d47c3e3cac625ce062b641519da37ba94 07-Nov-2012 Glenn Kasten <gkasten@google.com> Simplify AudioTrack::restoreTrack_l()

Remove CBLK_RESTORING and CBLK_RESTORED from control block flags,
for AudioTrack only. They are still used by AudioRecord.

This is part of a series to clean up the control block.

Change-Id: Iae4798f5b527c492bdaf789987ff3a1dadd0cb37
udioTrack.cpp
659004c2949620d8adb29e1d950a2dd1c75ba9a9 08-Nov-2012 Glenn Kasten <gkasten@google.com> Merge "Add all-channel AudioTrack::setVolume() API"
1ec74dab269d21535a89d058da82a7d28aacbb12 08-Nov-2012 Glenn Kasten <gkasten@google.com> Merge "Add all-channel AudioTrack::setVolume() API"
755e8e1dcf36f282b727ff22d87d3c2fac70d30a 08-Nov-2012 Glenn Kasten <gkasten@google.com> Merge "Fix call to restoreTrack_l() without lock held"
4f3ebe4090a3be3bb7622cc01b2f9af476914798 08-Nov-2012 Glenn Kasten <gkasten@google.com> Merge "Fix call to restoreTrack_l() without lock held"
d5ed6e88a9bea1879e41d7defaf1edea7c09f554 02-Nov-2012 Glenn Kasten <gkasten@google.com> Fix call to restoreTrack_l() without lock held

Also document lock order

Change-Id: I2c1f273a0a51fa79ee3dd766de8d23083e270051
udioTrack.cpp
a96bd95dcfe886436652debbda77ceb634729da0 02-Nov-2012 Glenn Kasten <gkasten@google.com> Fix call to restoreTrack_l() without lock held

Also document lock order

Change-Id: I2c1f273a0a51fa79ee3dd766de8d23083e270051
udioTrack.cpp
864585df53eb97c31e77b3ad7c0d89e4f9b42588 07-Nov-2012 Glenn Kasten <gkasten@google.com> Remove CBLK_DIRECTION from control block flags

This is part of a series to clean up the control block.

Change-Id: I0265fece3247356b585d4d48fbda6f37aea8a851
udioRecord.cpp
udioTrack.cpp
ba85098eb31bd2637db49816f0591361211024f2 07-Nov-2012 Glenn Kasten <gkasten@google.com> Remove CBLK_DIRECTION from control block flags

This is part of a series to clean up the control block.

Change-Id: I0265fece3247356b585d4d48fbda6f37aea8a851
udioRecord.cpp
udioTrack.cpp
8fa3ad0e4c77f7868348ad2a4cacc34c34e7c39e 07-Nov-2012 Glenn Kasten <gkasten@google.com> Merge "Remove CBLK_FAST from control block flags"
891b11da870ad3f860c1d2610ef4d8836ed6c590 07-Nov-2012 Glenn Kasten <gkasten@google.com> Merge "Remove CBLK_FAST from control block flags"
9d91e2a52b74380dae2662c8c00477c013b83c2c 07-Nov-2012 Glenn Kasten <gkasten@google.com> Merge "Remove unused fields in AudioTrack::Buffer"
b2800e8f1360cbc3c5af2bea228b9622b1ddc9dd 07-Nov-2012 Glenn Kasten <gkasten@google.com> Merge "Remove unused fields in AudioTrack::Buffer"
e0b07179a48ee50fda931d2aa1b3c751d167e4d7 07-Nov-2012 Glenn Kasten <gkasten@google.com> Remove CBLK_FAST from control block flags

This is part of a series to clean up the control block.

Change-Id: Ic881a3560d9547cb63fcc0cefec87aa3da480e0d
udioTrack.cpp
AudioFlinger.cpp
c26741598a840f7c1d12ee457fb26f68fcdbcc70 07-Nov-2012 Glenn Kasten <gkasten@google.com> Remove CBLK_FAST from control block flags

This is part of a series to clean up the control block.

Change-Id: Ic881a3560d9547cb63fcc0cefec87aa3da480e0d
udioTrack.cpp
AudioFlinger.cpp
05d499958e4030938ed77a924ebdd9899f36752e 06-Nov-2012 Glenn Kasten <gkasten@google.com> Remove unused fields in AudioTrack::Buffer

Change-Id: Iab75f6e2348d8b6d1f3cec95aeb3fcd5135dfb50
udioTrack.cpp
8424361609e0a94b9a240b43920529a84a63ed15 06-Nov-2012 Glenn Kasten <gkasten@google.com> Remove unused fields in AudioTrack::Buffer

Change-Id: Iab75f6e2348d8b6d1f3cec95aeb3fcd5135dfb50
udioTrack.cpp
26ba972eafde73a26271ecf027a1d5988ce50eb8 22-Jun-2012 Glenn Kasten <gkasten@google.com> Removed unused fields in AudioRecord::Buffer

Change-Id: I89fc6d8f695b48516d956b0a9a4a43d408f369f9
udioRecord.cpp
6608582c5fc4dc4041d18d0e619fb3042380607b 22-Jun-2012 Glenn Kasten <gkasten@google.com> Removed unused fields in AudioRecord::Buffer

Change-Id: I89fc6d8f695b48516d956b0a9a4a43d408f369f9
udioRecord.cpp
d2c38fc4d5dc742d7441444316849510dd2b7363 01-Nov-2012 Glenn Kasten <gkasten@google.com> Cache mCblk in local variable cblk

Use "iMem" for sp<IMemory>

Change-Id: I2f1fbbc517fbd77cfc92f6c3b1f253c26bae93b0
udioTrack.cpp
c9f872e69889d0cffd1a7d74fe2a84f92368e1ff 01-Nov-2012 Glenn Kasten <gkasten@google.com> Cache mCblk in local variable cblk

Use "iMem" for sp<IMemory>

Change-Id: I2f1fbbc517fbd77cfc92f6c3b1f253c26bae93b0
udioTrack.cpp
8e825a57202ce6cb2ddac67683ee5885334ce75d 06-Nov-2012 Glenn Kasten <gkasten@google.com> Merge "Simplify control block flag names"
fda32926cfbdad0aae5a3e0bf88b2a218f9e7f6c 06-Nov-2012 Glenn Kasten <gkasten@google.com> Merge "Simplify control block flag names"
b1c0993b215c5c3eebd1c6bafc22bba23d57a70b 28-Feb-2012 Glenn Kasten <gkasten@google.com> Add all-channel AudioTrack::setVolume() API

Add combined channel APIs setVolume to AudioTrack,
and remove obsolete getVolume.

Change-Id: I0c87bfdbff4f4292259fa33e65f67badbafd270b
udioTrack.cpp
oneGenerator.cpp
164d6539e0620d08b0395efcdd0e4aaf437daf54 28-Feb-2012 Glenn Kasten <gkasten@google.com> Add all-channel AudioTrack::setVolume() API

Add combined channel APIs setVolume to AudioTrack,
and remove obsolete getVolume.

Change-Id: I0c87bfdbff4f4292259fa33e65f67badbafd270b
udioTrack.cpp
oneGenerator.cpp
847d05dc8fa144dcf8f4f435d6a6ac1727f00937 28-Feb-2012 Glenn Kasten <gkasten@google.com> Remove deprecated AudioTrack APIs

Change-Id: I88be6525f3e33df529c0c3cb701d12a484809477
udioTrack.cpp
7c28540fccf996bed1744686aca1ee9e67b9cf22 28-Feb-2012 Glenn Kasten <gkasten@google.com> Remove deprecated AudioTrack APIs

Change-Id: I88be6525f3e33df529c0c3cb701d12a484809477
udioTrack.cpp
9c5fdd83f9b9f49be35107971feb33528d60b945 05-Nov-2012 Glenn Kasten <gkasten@google.com> Simplify control block flag names

Use only one symbol per flag

Change-Id: Ia3582e2134abd60c896d11337face65383e79c7c
udioRecord.cpp
udioTrack.cpp
d12b033552585cd8761ba6241f21e4cea4a21878 05-Nov-2012 Glenn Kasten <gkasten@google.com> Simplify control block flag names

Use only one symbol per flag

Change-Id: Ia3582e2134abd60c896d11337face65383e79c7c
udioRecord.cpp
udioTrack.cpp
9a08ebc8de71e260efb86cd1a04559b075b38ebc 02-Nov-2012 Glenn Kasten <gkasten@google.com> Fix spurious wakeup waiting for new IAudioTrack

If there was a spurious wakeup while waiting for another thread to create
a new IAudioTrack, we assumed that the track has been created when it
might not have been.

Change-Id: I5f3999b4f7a06a00aabd65a746cc7222fff396ab
udioTrack.cpp
36665ac2e7edae3e733b7f52145b80dfed9821a6 02-Nov-2012 Glenn Kasten <gkasten@google.com> Fix spurious wakeup waiting for new IAudioTrack

If there was a spurious wakeup while waiting for another thread to create
a new IAudioTrack, we assumed that the track has been created when it
might not have been.

Change-Id: I5f3999b4f7a06a00aabd65a746cc7222fff396ab
udioTrack.cpp
85ab62c4b433df3f1a9826bed1c9bec07a86c750 01-Nov-2012 Glenn Kasten <gkasten@google.com> Line length 100

Change-Id: Ib28fd7b9ce951a6933f006e7f8812ba617625530
udioEffect.cpp
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
AudioFlingerClient.cpp
AudioPolicyService.cpp
isualizer.cpp
8af901cdea0af7e536579dee6d56e69987035a01 01-Nov-2012 Glenn Kasten <gkasten@google.com> Line length 100

Change-Id: Ib28fd7b9ce951a6933f006e7f8812ba617625530
udioEffect.cpp
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
AudioFlingerClient.cpp
AudioPolicyService.cpp
isualizer.cpp
c41590251aa84c078c942d258e838aad814b73a5 30-Oct-2012 Glenn Kasten <gkasten@google.com> Remove obsolete references to libmedia_native

Bug: 6654403
Change-Id: I3993d62987cf0dd85db10bf002a5cce53d4f01bd
ndroid.mk
faa4420344216ccbad15a49aa7c1cd6141532fcb 30-Oct-2012 Glenn Kasten <gkasten@google.com> Remove obsolete references to libmedia_native

Bug: 6654403
Change-Id: I3993d62987cf0dd85db10bf002a5cce53d4f01bd
ndroid.mk
18a6d9029e18a93748d3d9c33f04c1b360aeb7ae 24-Sep-2012 Glenn Kasten <gkasten@google.com> Fix typo

Change-Id: I8cc2969eb329a830ee866622a8633adcb4e967cc
udioSystem.cpp
d7823e49c324a76e1e3a5e51e244aabe8eecdfca 24-Sep-2012 Glenn Kasten <gkasten@google.com> Fix typo

Change-Id: I8cc2969eb329a830ee866622a8633adcb4e967cc
udioSystem.cpp
b1eb1a0dd38a36dd0c0626d3d57043dbd0042a92 23-Oct-2012 Eric Laurent <elaurent@google.com> stagefright: discard audio at start of capture

The new camcorder start sound is longer than previous one and we
must discard more audio when capture starts.

Ideally, camcorder should use synchronous record start.

Bug 7394330.

Change-Id: I219b4e231aba706776dc7ccc4f1c996eaf22f61a
ediaProfiles.cpp
31988edd4c346bc0b19f4e96670afce5cb056037 23-Oct-2012 Eric Laurent <elaurent@google.com> stagefright: discard audio at start of capture

The new camcorder start sound is longer than previous one and we
must discard more audio when capture starts.

Ideally, camcorder should use synchronous record start.

Bug 7394330.

Change-Id: I219b4e231aba706776dc7ccc4f1c996eaf22f61a
ediaProfiles.cpp
d7086030fcf731e4bcef6c033cc6418cd04e6b91 10-Oct-2012 Jean-Michel Trivi <jmtrivi@google.com> Support querying active record sources

Add support for querying whether there is currently a recording
underway from the specified audio source.

Bug 7314859

Change-Id: I986b231a10ffd368b08ec2f9c7f348d28eaeb892
udioSystem.cpp
AudioPolicyService.cpp
e3f641fd9348bf7f4c07f6cc707347fccea1439c 10-Oct-2012 Jean-Michel Trivi <jmtrivi@google.com> Support querying active record sources

Add support for querying whether there is currently a recording
underway from the specified audio source.

Bug 7314859

Change-Id: I986b231a10ffd368b08ec2f9c7f348d28eaeb892
udioSystem.cpp
AudioPolicyService.cpp
cc0f1cfb69ce8b8985fc2c0984847a06a13ad22d 24-Sep-2012 Glenn Kasten <gkasten@google.com> Implement android.media.AudioManager.getProperty()

Bug: 6635041
Change-Id: I3386a4a6c226bc4eceaf65556119e4fb15f73224
udioSystem.cpp
AudioFlinger.cpp
4c6db4ce1e2760682d1c9e66448dbb39bb5d14d8 24-Sep-2012 Glenn Kasten <gkasten@google.com> Implement android.media.AudioManager.getProperty()

Bug: 6635041
Change-Id: I3386a4a6c226bc4eceaf65556119e4fb15f73224
udioSystem.cpp
AudioFlinger.cpp
207e18540fefbaf530a4fdf506d266f34ddec84f 21-Sep-2012 Andreas Huber <andih@google.com> Remove legacy code and APIs in wifi display related code.

Change-Id: Ia010e7a00534f9356b3247369d0ffd65591d91aa
MediaPlayerService.cpp
45d76bb6c8f15335f89c287dbae04cc38f79d0a8 21-Sep-2012 Andreas Huber <andih@google.com> Remove legacy code and APIs in wifi display related code.

Change-Id: Ia010e7a00534f9356b3247369d0ffd65591d91aa
MediaPlayerService.cpp
efbb781c15abf8e085f5ab8d39710bd58ea0b6e4 18-Sep-2012 Andreas Huber <andih@google.com> HDCP module binderized

Change-Id: I866768b1e3f3b232f1934a35b65f66befc12f3f6
MediaPlayerService.cpp
59451f8ced48874427ff1550391c4f3cd2ba2e35 18-Sep-2012 Andreas Huber <andih@google.com> HDCP module binderized

Change-Id: I866768b1e3f3b232f1934a35b65f66befc12f3f6
MediaPlayerService.cpp
896adcd3ae6a1c7010e526327eff54e16179987b 13-Sep-2012 Eric Laurent <elaurent@google.com> audioflinger: send priority request from a thread

When creating a fast AudioTrack, a request is sent to SchedulingPolicyService
to elevate the requesting thread priority. This generates a binder
call into system_server process and to a JAVA service via JNI.
If the thread from which the track was created is in the system_server
process and does not have the "can call java" attribute, a crash occurs because
the binder optimization reuses the same thread to process the returning binder
call and no JNI env is present.

The fix consists in sending the priority change request from the AudioFlinger
mixer thread, not from the binder thread.

This also reverts the workaround in commit 73431968

Bug 7126707.

Change-Id: I3347adf71ffbb56ed8436506d4357eab693078a3
udioTrack.cpp
ef6be0bb71c08db7e9e9274d70edffb95f0da25f 13-Sep-2012 Eric Laurent <elaurent@google.com> audioflinger: send priority request from a thread

When creating a fast AudioTrack, a request is sent to SchedulingPolicyService
to elevate the requesting thread priority. This generates a binder
call into system_server process and to a JAVA service via JNI.
If the thread from which the track was created is in the system_server
process and does not have the "can call java" attribute, a crash occurs because
the binder optimization reuses the same thread to process the returning binder
call and no JNI env is present.

The fix consists in sending the priority change request from the AudioFlinger
mixer thread, not from the binder thread.

This also reverts the workaround in commit 73431968

Bug 7126707.

Change-Id: I3347adf71ffbb56ed8436506d4357eab693078a3
udioTrack.cpp
73431968e3c5cf420b5d63c54cf72d10ff7ee7bc 13-Sep-2012 Jean-Michel Trivi <jmtrivi@google.com> Workaround for track recreation bug

Ignore thread can call Java parameter to work around bug where
AudioTrack instance gets recreated when key clicks are enabled
and WFD gets turned on, with the wrong parameters.

Change-Id: Ia42c8704b46fe3ffea560b05b60939fa2e4b29e1
udioTrack.cpp
8645717388acc74efd9127b84da121be8bf733ba 13-Sep-2012 Jean-Michel Trivi <jmtrivi@google.com> Workaround for track recreation bug

Ignore thread can call Java parameter to work around bug where
AudioTrack instance gets recreated when key clicks are enabled
and WFD gets turned on, with the wrong parameters.

Change-Id: Ia42c8704b46fe3ffea560b05b60939fa2e4b29e1
udioTrack.cpp
fd48021dfc3278b048ba99ecffe7f996751fb440 10-Sep-2012 Elliott Hughes <enh@google.com> am e7c992c6: am 5abc91d6: Merge "Fix libmedia and libstagefright to get expat header files from the approved location."

* commit 'e7c992c675e0075cd60b0b11c06d5956e3ddd7a3':
Fix libmedia and libstagefright to get expat header files from the approved location.
947be6bf6700d07e148f6fbf6308e86b08d3c926 10-Sep-2012 Elliott Hughes <enh@google.com> am e7c992c6: am 5abc91d6: Merge "Fix libmedia and libstagefright to get expat header files from the approved location."

* commit 'e7c992c675e0075cd60b0b11c06d5956e3ddd7a3':
Fix libmedia and libstagefright to get expat header files from the approved location.
e7c992c675e0075cd60b0b11c06d5956e3ddd7a3 10-Sep-2012 Elliott Hughes <enh@google.com> am 5abc91d6: Merge "Fix libmedia and libstagefright to get expat header files from the approved location."

* commit '5abc91d61718e334e05c6d4858bd868bd5a5769c':
Fix libmedia and libstagefright to get expat header files from the approved location.
e8057dd8208f0a185109992339a995c518b12780 09-Sep-2012 Elliott Hughes <enh@google.com> Fix libmedia and libstagefright to get expat header files from the approved location.

Found during a libexpat upgrade.

Change-Id: I9e5abd502a884975d898486edde374fb2519164e
ndroid.mk
ediaProfiles.cpp
261fd2119c70fda3af64453881a6346dd48eb956 07-Sep-2012 Eric Laurent <elaurent@google.com> Merge "AudioRecord: Fix minimum frame count calculation." into jb-mr1-dev
741b47db87db45dad47d115ffcc67553184ffbe3 07-Sep-2012 Eric Laurent <elaurent@google.com> Merge "AudioRecord: Fix minimum frame count calculation." into jb-mr1-dev
6f744d75d3439f7984245e3c489cc7cf91cea41c 06-Sep-2012 Eric Laurent <elaurent@google.com> AudioRecord: Fix minimum frame count calculation.

AudioRecord::set() was calling getMinFrameCount() with
a channel count instead of a channel mask.

Change-Id: Iabace7686426430fd53deac0c71b0c36aa64171c
udioRecord.cpp
75b9bb09a7cde18a31b68f6aef96e5182d652e8d 06-Sep-2012 Eric Laurent <elaurent@google.com> AudioRecord: Fix minimum frame count calculation.

AudioRecord::set() was calling getMinFrameCount() with
a channel count instead of a channel mask.

Change-Id: Iabace7686426430fd53deac0c71b0c36aa64171c
udioRecord.cpp
455d02eca342d8159637af317a5d83219d267812 06-Sep-2012 Jeff Brown <jeffbrown@google.com> Update remote display API.

Renamed disconnect() to dispose() to emphasize the fact that
this method is intended to clean up the IRemoteDisplay
completely, not just temporarily disconnect the current client
(which might be useful someday).

Other minor tweaks.

Change-Id: I1209639eb0cd8af09c724206642d7e52aab48257
RemoteDisplay.cpp
ced24b36bbeed1ddd086a9304a9639c04ffe0962 06-Sep-2012 Jeff Brown <jeffbrown@google.com> Update remote display API.

Renamed disconnect() to dispose() to emphasize the fact that
this method is intended to clean up the IRemoteDisplay
completely, not just temporarily disconnect the current client
(which might be useful someday).

Other minor tweaks.

Change-Id: I1209639eb0cd8af09c724206642d7e52aab48257
RemoteDisplay.cpp
e104596061b219e9bce6d4db49a9d15242f8d2e5 05-Sep-2012 Jeff Brown <jeffbrown@google.com> Implement remote display service stubs.

Change-Id: I582ed000026bba6d116db8304e15a3c52f8a9a01
ndroid.mk
MediaPlayerService.cpp
RemoteDisplay.cpp
RemoteDisplayClient.cpp
2013a54981d4ffb036dff279b88cc9f08c0ee1c2 05-Sep-2012 Jeff Brown <jeffbrown@google.com> Implement remote display service stubs.

Change-Id: I582ed000026bba6d116db8304e15a3c52f8a9a01
ndroid.mk
MediaPlayerService.cpp
RemoteDisplay.cpp
RemoteDisplayClient.cpp
cd89e8014368af1bbdfa08406d5d2eb0bbbfcca1 31-Aug-2012 Andreas Huber <andih@google.com> Merge "Added an additional virtual method IStreamSource::flags()." into jb-mr1-dev
3e76a27a5e57435369794016494093b5b1b29513 31-Aug-2012 Andreas Huber <andih@google.com> Merge "Added an additional virtual method IStreamSource::flags()." into jb-mr1-dev
da7ff5321539ac07ec76d0d03bd1b9b09a1823bf 31-Aug-2012 Andreas Huber <andih@google.com> Added an additional virtual method IStreamSource::flags().

Change-Id: I89e62d84328e12f08c8f73cbfd53cfb42569de97
StreamSource.cpp
330accb419ebfb1d8b9d7dcc3b616f56f737f29a 31-Aug-2012 Andreas Huber <andih@google.com> Added an additional virtual method IStreamSource::flags().

Change-Id: I89e62d84328e12f08c8f73cbfd53cfb42569de97
StreamSource.cpp
c3ae93f21280859086ae371428ffd32f39e76d50 30-Jul-2012 Glenn Kasten <gkasten@google.com> Update audio comments

Change-Id: Ie7504d0ddb252f7e4d4f99ed0b44cfc7b1049816
udioTrack.cpp
2662ac9220c9e07cd343e78bf3a0c21ca3e4ffd1 30-Jul-2012 Glenn Kasten <gkasten@google.com> Update audio comments

Change-Id: Ie7504d0ddb252f7e4d4f99ed0b44cfc7b1049816
udioTrack.cpp
bcf09f8c995221e75c7cd328f25c7cc6d2b5f7c9 30-Aug-2012 Andreas Huber <andih@google.com> Only run the wifi display RTSP server on demand, and only on the wifi direct

interface.

Change-Id: I7d3c44cb79cd40e73499f2d7ccf35c69b628e6d7
MediaPlayerService.cpp
ab1bd84889273bc21efdabe5ff6f4633eb918a85 30-Aug-2012 Andreas Huber <andih@google.com> Only run the wifi display RTSP server on demand, and only on the wifi direct

interface.

Change-Id: I7d3c44cb79cd40e73499f2d7ccf35c69b628e6d7
MediaPlayerService.cpp
d8ee4e56f92eeb44ddc0997efe280b9f28ad814d 30-Aug-2012 Andreas Huber <andih@google.com> Merge "Initial checkin of support for acting as a wifi display source" into jb-mr1-dev
a2c31a786cfea83f4028c4c5ae00386ae96542e9 30-Aug-2012 Andreas Huber <andih@google.com> Merge "Initial checkin of support for acting as a wifi display source" into jb-mr1-dev
d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480c 29-Aug-2012 Andreas Huber <andih@google.com> Initial checkin of support for acting as a wifi display source

Change-Id: I08f17efa0c7d007e17408feb7d4fbef0a19f531a
MediaPlayerService.cpp
35213f1420c669f43314cb75eadea450d21a75cb 29-Aug-2012 Andreas Huber <andih@google.com> Initial checkin of support for acting as a wifi display source

Change-Id: I08f17efa0c7d007e17408feb7d4fbef0a19f531a
MediaPlayerService.cpp
1b19c9d120869c3182373a9b06a1ed98898df882 29-Aug-2012 Andreas Huber <andih@google.com> Preliminary support for HDCP as a binder service for wifi display support.

Change-Id: Ie0de1c086c629a668d1c7863992eef56fb94157c
ndroid.mk
HDCP.cpp
9bd5a93ed8b4c4b3361c35dd1acdc3f1f49ede33 29-Aug-2012 Andreas Huber <andih@google.com> Preliminary support for HDCP as a binder service for wifi display support.

Change-Id: Ie0de1c086c629a668d1c7863992eef56fb94157c
ndroid.mk
HDCP.cpp
6a8ea471a9f3b001bd0ffa3381eba12975dfc59f 21-Aug-2012 Glenn Kasten <gkasten@google.com> Merge "Revert "Swap the order of creating IAudioTrack and thread"" into jb-mr1-dev
44a7e42f0310831e6a846d1b6bb40bf3a399bf6d 22-Jun-2012 John Grossman <johngro@google.com> Add the ability to dynamicaly register MediaPlayer types.

Add the ability to dynamically register low level MediaPlayer
factories which will be probed at setDataSource time to determine the
proper MediaPlayerBase to instantiate.

This change is in preparation for moving libaah_rtp out of
frameworks/base and into phantasm platform directory.

Change-Id: Icf8904db3ab9e3c85df6e780d5546d9988cb9076
Signed-off-by: John Grossman <johngro@google.com>
MediaPlayer.cpp
a997e7a7c5aa2fc7e95316218316f8b7b98786ba 07-Aug-2012 Glenn Kasten <gkasten@google.com> Revert "Swap the order of creating IAudioTrack and thread"

This reverts commit 5d464eb0b8cffb994a754ff108795e858a882414.
It caused the wrong thread ID -1 to be passed to IAudioFlinger::createTrack().

Change-Id: Ic221d2bb4af572d3d2d752af19238c52f6728e3a
udioTrack.cpp
5d464eb0b8cffb994a754ff108795e858a882414 23-Jun-2012 Glenn Kasten <gkasten@google.com> Swap the order of creating IAudioTrack and thread

Simplifies the error recovery in case IAudioTrack fails.

Change-Id: I6aee41a2ac747a5689fb4836b04174e6107bf32f
udioTrack.cpp
0ec23ce0d1ff79566c402bc30df3074f6e25a22b 10-Jul-2012 Glenn Kasten <gkasten@google.com> Clean up start() parameters

Document where int is used instead of AudioSystem::sync_event_t
(probably because of a header file dependency).
TrackBase::start() and RecordTrack::start() don't need default parameters.

Change-Id: I82f4a4d078be900f3aa4bd926697e32f5ed68ec8
AudioRecord.cpp
58e5aa34f01d663654d8bafad65db1dda42161ff 20-Jun-2012 Glenn Kasten <gkasten@google.com> effect_descriptor_t const correctness

Change-Id: Iad008f20d35a18acf500f773900164552fd0c19e
udioSystem.cpp
AudioPolicyService.cpp
955e78180ac6111c54f50930b0c4c12395e86cf7 21-Feb-2012 Glenn Kasten <gkasten@google.com> AudioRecord locking

Fix race conditions for EVENT_MARKER and EVENT_NEW_POS callbacks.
Marker and new position update fields are protected by lock.

getSampleRate() doesn't need a lock because it reads from shared memory
control block.

Enforce that the parameter passed with EVENT_MARKER and EVENT_NEW_POS
cannot not be changed by the callback handler, and will not change during
the call by another thread.

Session ID should never change; log if it does.

Change-Id: Ia2c63cf1a71b10bb06c37981bd76437f83fffa91
udioRecord.cpp
a189a6883ee55cf62da1d7bf5bf5a8ab501938a4 20-Feb-2012 Glenn Kasten <gkasten@google.com> Use struct assignment instead of explicit memcpy

for POD structs effect_descriptor_t and effect_config_t

Change-Id: Ib2fc47f85fb65ed91b0abb1f87217c49b5eb571d
udioEffect.cpp
28b76b334f92a15a2be3cc9e2f7d229a3275d1ac 04-Jul-2012 Glenn Kasten <gkasten@google.com> Use audio_channel_mask_t for channel mask

Change-Id: I1c1896da48983aa9f1462a4b471f910498816f60
udioTrack.cpp
AudioFlinger.cpp
dcda3b325f465aa6ec2be11db1c56c8a5e867f33 16-Jul-2012 Glenn Kasten <gkasten@google.com> Merge "AudioRecord::stop() return void"
2bdb2f25861f3a3ac9cf3b7af561975fc9b9eead 14-Jul-2012 Edwin Wong <edwinwong@google.com> am 190313ec: am 65e8d62a: Merge "Fixed sample video corrupted in MediaCodec mode." into jb-dev

* commit '190313ec68e81c10d200ff3c20ac152cf90760d6':
Fixed sample video corrupted in MediaCodec mode.
d64cd233eef39430561c1e1df423336a199cc5d7 21-Feb-2012 Glenn Kasten <gkasten@google.com> AudioRecord::stop() return void

like AudioTrack::stop()

Change-Id: Iab62f4665151345f1ad5874c97a21d1a331f0154
udioRecord.cpp
190313ec68e81c10d200ff3c20ac152cf90760d6 14-Jul-2012 Edwin Wong <edwinwong@google.com> am 65e8d62a: Merge "Fixed sample video corrupted in MediaCodec mode." into jb-dev

* commit '65e8d62a5b243518795cdafa498df4a49baf6940':
Fixed sample video corrupted in MediaCodec mode.
68337edf595a0c345ba4b8adcd4f1e541a1d7eb7 12-Jul-2012 Glenn Kasten <gkasten@google.com> AudioRecord client threading cleanup

Rename ClientRecordThread to AudioRecordThread to be more similar to
AudioTrack naming.

Only create the thread once, and use resume() and pause() for start()
and stop(). This will allow us to have a known client callback thread
tid that we can pass to AudioFlinger before start().

mActive:
Made mActive a bool not int.
mActive is protected by mLock; volatile is meaningless.
Fixed a few places where mActive was accessed without a lock:
- stopped()
- processAudioBuffer()
These aren't used internally, so no need for _l() versions.

Change-Id: I4b8a5c90f3a22d3894b344564cb1c5aef4f1fda2
udioRecord.cpp
fa2b8f243eb048fb2b8e5a14356190f69eb31a36 11-Jul-2012 Edwin Wong <edwinwong@google.com> Fixed sample video corrupted in MediaCodec mode.

Change-Id: I50c5660072d40f6e297e58fd026ea04c89d6a70a
related-to-bug: 6732061
Crypto.cpp
04cd0186305e2b59d23c9147787046c6662029cc 25-Jun-2012 Glenn Kasten <gkasten@google.com> getMinFrameCount error handling

Convention is for "get" APIs that directly return status_t and indirectly
return a value via a pointer, to return BAD_VALUE if the pointer is NULL.
Also indirectly return 0 for other errors.

Change-Id: I1599f20ecb26e9723f9fb384ffbf911ff3a2ce1c
udioRecord.cpp
udioTrack.cpp
5f0033d27b75fead593ed7ca2b86f5b6f5adf6cc 13-Jul-2012 Glenn Kasten <gkasten@google.com> Merge "Remove dead code in libmedia"
1879fff068422852c1483dcf8365c2ff0e2fadfc 12-Jul-2012 Glenn Kasten <gkasten@google.com> Add tid parameter to IAudioFlinger::openRecord

Not yet implemented

Change-Id: I35523fb15ad71727ecc9f4bb870f07e4b7397dc4
udioRecord.cpp
AudioFlinger.cpp
d4070955e28ae62aa4be1657f9d32acde104bb86 12-Jul-2012 Glenn Kasten <gkasten@google.com> Remove dead code in libmedia

Change-Id: I7d8201590cda29c9fa99662a4fdba222091febfe
udioTrack.cpp
isualizer.cpp
bf04a5d7f287fc712e0ed91849dc85c90c1e182d 12-Jul-2012 Glenn Kasten <gkasten@google.com> Simplify AudioRecord::getInputFramesLost()

This also fixes a benign race in reading mActive without a lock.

Change-Id: I19e953d4f275e5c266ca1ca3fece7b6c02ad1707
udioRecord.cpp
254af180475346b6186b49c297f340c9c4817511 03-Jul-2012 Glenn Kasten <gkasten@google.com> Use audio_channel_mask_t more places

Use it in AudioSystem::getOutput(), AudioSystem::getInput(),
IAudioPolicyService::getOutput(), IAudioPolicyService::getInput(),
and various other places in AudioFlinger.

Not done: AudioTrack and OutputDescriptor.

Change-Id: I70e83455820bd8f05dafd30c63d636c6a47cd172
udioSystem.cpp
AudioPolicyService.cpp
f89a0deef1ecafcba164045b76d4d6c7bf8eb24d 10-Jul-2012 Glenn Kasten <gkasten@google.com> Merge "Move declarations of local variables to first use"
dd8104cc5367262f0e5f13df4e79f131e8d560bb 02-Jul-2012 Glenn Kasten <gkasten@google.com> Use audio_channel_mask_t more consistently

In IAudioFlinger::createTrack() and IAudioFlinger::openRecord(),
declare input parameter to use correct type audio_channel_mask_t.

In IAudioFlinger::getInputBufferSize(), input parameter is now channel mask
instead of channel count.

Remove unused IAudioFlinger::channelCount(audio_io_handle_t).

In AudioRecord::getMinFrameCount() and AudioSystem::getInputBufferSize(),
input parameter is channel mask instead of channel count.

Change-Id: Ib2f1c29bea70f016b3cfce83942ba292190ac965
udioRecord.cpp
udioSystem.cpp
AudioFlinger.cpp
20010053daabfa43fcfe781bbf004473b4c08538 22-Jun-2012 Glenn Kasten <gkasten@google.com> Remove acoustics from AudioSystem::getInput()

Change-Id: I29fb3ee5664c1f0ee0409c1bb2be087ecca637db
udioRecord.cpp
udioSystem.cpp
AudioPolicyService.cpp
624a7fcb377f2a40109c16de5109ae8ea1f67a69 22-Jun-2012 Glenn Kasten <gkasten@google.com> Use audio_channel_mask_t in AudioRecord

Change-Id: I9e1b918b2635d961604a4a9d88eb1c7179a167a7
udioRecord.cpp
868a6a357018e5872e064b7a13a9b891e2078962 22-Jun-2012 Glenn Kasten <gkasten@google.com> Include what you use

Change-Id: I12ef9367d05dbe069c037b1b4acd6347a8cf3ece
udioRecord.cpp
f92eec53f886f43e4374a36195be55f2a7bbcf36 07-Mar-2012 Glenn Kasten <gkasten@google.com> Remove AudioRecord record_flags

Change-Id: I021ddcc1bcb63132a4597d13e3d09db2a5f2c628
udioRecord.cpp
d3a9ff4b725de612bf0354c035ba8f8564dbc6e8 21-Jun-2012 Glenn Kasten <gkasten@google.com> Move declarations of local variables to first use

Change-Id: I48b193a742b32b6746aa938b84dc405124a6a5c3
udioTrack.cpp
4ebbabda6584aeb5ad2714e7db1702d00e84dad4 14-Jun-2012 Eric Laurent <elaurent@google.com> am 192cbbad: Fix audio track pause.

* commit '192cbbad773979a6fe3b5a0c223356de4fc3309c':
Fix audio track pause.
192cbbad773979a6fe3b5a0c223356de4fc3309c 13-Jun-2012 Eric Laurent <elaurent@google.com> Fix audio track pause.

AudioTrack::pause() should signal the control block condition
to release threads waiting for available buffers in obtainBuffer().
Otherwise the behavior relies on the timout on the condition
or the fact that audioflinger will mix a new audio buffer while executing
the pause.

Bug 6653769.

Change-Id: I5f8f73c471fe306070f30b814f32fd4b4dc1d575
udioTrack.cpp
48a0bfa6f731386f2794ff36d6677d56e98fc6ea 14-Jun-2012 Glenn Kasten <gkasten@google.com> am 49dd5cf3: Merge "Log track name on obtain/releaseBuffer warnings" into jb-dev

* commit '49dd5cf3469cd755321f8ec10013ad4fcfaf723d':
Log track name on obtain/releaseBuffer warnings
0c9d26d187017f7fb028ab52a0fbc6395142faa4 31-May-2012 Glenn Kasten <gkasten@google.com> Log track name on obtain/releaseBuffer warnings

This should help diagnose problems by allowing us to correlate
the logs with the dumpsys media.audio_flinger output.

Change-Id: I8c7c592b4f87d13b0f29c66ce7a2f301a0f063c9
udioTrack.cpp
ea5008d8abfdf1479b4efa266cdb7c842d168aa9 08-Jun-2012 Glenn Kasten <gkasten@google.com> am 28ed2f93: Reduce underruns in screen off, esp. with EQ

* commit '28ed2f93324988767b5658eba7c1fa781a275183':
Reduce underruns in screen off, esp. with EQ
28ed2f93324988767b5658eba7c1fa781a275183 07-Jun-2012 Glenn Kasten <gkasten@google.com> Reduce underruns in screen off, esp. with EQ

Add MonoPipe APIs to specify setpoint.
Use screen state to configure pipe setpoint.
Fix a long-standing bug where pipe sleep time was excessive,
which interacted poorly with governor and low clock frequencies.
Now it deducts the elapsed time since last write(),
which was significant when there was EQ and low clock frequency.

Bug: 6618373
Change-Id: I6f3b0072c2244aeb033ef0795ad164491a164ff5
udioParameter.cpp
721e18b75824eae3f3e79c915f4800ecad5dac80 01-Jun-2012 Eric Laurent <elaurent@google.com> am 27d33134: Merge "Do not keep audio wake lock when apps underrun." into jb-dev

* commit '27d33134130379cc91d936cdc742700311901a9d':
Do not keep audio wake lock when apps underrun.
df839841d2db4cb8e2acb10205b3942622b3e7a2 31-May-2012 Eric Laurent <elaurent@google.com> Do not keep audio wake lock when apps underrun.

Do not automatically restart an AudioTrack after an underrun
if the callback is executed but no data is written by the app.

Bug 6541286.

Change-Id: I11e7ab8dc968d7ff087058fec68f44490d3a7731
udioTrack.cpp
3c8889e827d95b195fe5ba077a01cb5b6042e534 29-Mar-2012 Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org> libmedia: Fix build with gcc 4.7

gcc 4.7 doesn't like the redefinition of n in the same
scope:
for(size_t n=...;;) {
size_t n = 2; // <-- duplicate definition
}

Change-Id: Idfc2e768a0eb85a3dacccd3431b4ad44775432a4
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
ediaProfiles.cpp
2986460984580833161bdaabc7f17da1005a8961 09-May-2012 Eric Laurent <elaurent@google.com> Fix issues with synchronous record start.

- Added a timeout in case the trigger event is never fired.
- Extend AudioRecord obtainBuffer() timeout in case of
synchronous start to avoid spurious warning.
- Make sure that the event is triggered if the track is
destroyed.
- Reject event if the triggering track is in an incompatible state.

Also fix a problem when restoring a static AudioTrack after
a mediaserver crash.

Bug 6449468.

Change-Id: Ib36e11111fb88f73caa31dcb0622792737d57a4b
udioRecord.cpp
udioTrack.cpp
093000f7d11839b920e8dfaa42ed1d09f48e24b8 03-May-2012 Glenn Kasten <gkasten@google.com> Don't allow AudioTrack frameCount to decrease

This is a workaround for bug that client can cache return value of
frameCount(), and is not notified when this value changes due to automatic
re-recreation of the underlying IAudioTrack.

A better long-term fix would be to notify clients when these kinds of
parameters change, and to fix assumptions in client code that they are
constant (e.g. in SoundPool and maybe obtainBuffer).

Also, once a fast track request is denied, don't request it again.

Bug: 6431187
Change-Id: I55b4ff30bbd9ed3a402e39452a38de52cdea53a9
udioTrack.cpp
f4022f90db5acb680870db8c1150b673cdd211d9 02-May-2012 Glenn Kasten <gkasten@google.com> Fix race in AudioTrack destruction

Bug: 6427369
Change-Id: Id3b4487406235b881f6f0b4b95c5a02a9b797e75
udioTrack.cpp
31dfd1db7a4d2228d9642008af6f3dd744368eb6 01-May-2012 Glenn Kasten <gkasten@google.com> Disable fast track log spam

except for "denied by client" and "denied by server"

Change-Id: I133ab747933729cc1f386813ee06ece055bdb294
udioTrack.cpp
1477e92867a950016579a644e74f803ed1d90cbb 01-May-2012 Glenn Kasten <gkasten@google.com> Enable fast track for SoundPool

Change-Id: Ia80b3a7738e4c5dbe2bd5b0f55f0ca49943e2f64
oundPool.cpp
98f153091e8f4190b35b9ce15250f308baf4805c 25-Apr-2012 Glenn Kasten <gkasten@google.com> Re-enable fast track for ToneGenerator

Change-Id: If4152169778df124c750dc45023322ee23c80587
oneGenerator.cpp
f60c660f048d5f5e2458cff243c20400d73757a7 29-Apr-2012 Dave Burke <daveburke@google.com> Added support for HE-AAC recording

Fixed bug in decoder related to sample rates / channel counts
Made decoder follow Fraunhofer pattern
Log if bitrate not available
Bug: 6275957

Change-Id: I47a8e29358fa4a88ebc73fe02d46a2bfb96c64fe
ediaProfiles.cpp
aeb8fd460ed87d032b3fb8bb61e21eb542ce0f5b 19-Apr-2012 Dave Burke <daveburke@google.com> Add Fraunhofer AAC encoder with AAC-ELD support.

Change-Id: I6cd499d257d72f50a5b508bed97796a591a51506
ediaProfiles.cpp
e0fa467e1150c65a7b1b1ed904c579b40f97c9df 24-Apr-2012 Glenn Kasten <gkasten@google.com> Move frame count calculations for fast tracks

For fast tracks: move the default and minimum frame count calculations
from client to server. If accepted, the default and minimum frame count
is the fast mixer (HAL) frame count. If denied, the default and minimum
frame count is the same as it currently is for normal tracks.

For normal tracks: there is no change yet, preserve legacy behavior for
now but add a FIXME to change this later.

Bug fix: the test for buffer alignment matches channelCount was wrong.

Bug fix: check for 8-bit data in shared memory, which isn't supported.

Optimizations:
- in set(), only call AudioSystem::getOutputSamplingRate() when needed
- in createTrack_l(), only call AudioSystem::getSamplingRate() and
AudioSystem::getFrameCount() when needed

Change-Id: I79d2fe507db1a8f7bb094c71da8a129951dbb82f
udioTrack.cpp
a636433cbd09c0708b85f337ef45c0cdef3bcb4d 19-Apr-2012 Glenn Kasten <gkasten@google.com> Use C APIs instead of C++ APIs for policy

The C++ APIs are going away.

Note: we use tid == 0 which is not supported yet by the C APIs,
do not submit this until that is added.

Change-Id: I0e90789e6c81c69f2544e899c52421ea5d1342be
udioRecord.cpp
udioTrack.cpp
ca8b28013c0558a4a3323a1a0f58520277200086 23-Apr-2012 Glenn Kasten <gkasten@google.com> Fix regression in AudioTrack::pause()

Bug: 6379646
Change-Id: I12b53bc4118499ddc73a53a981f3f56328140868
udioTrack.cpp
1d685d767a5dd1003eb62f6ad1a26b39645a474f 23-Apr-2012 Glenn Kasten <gkasten@google.com> Fix ToneGenerator regression

Bug: 6378847
Change-Id: Ib3324c7a5951ac95f99993bfae27ea02bfda08ff
oneGenerator.cpp
3acbd053c842e76e1a40fc8a0bf62de87eebf00f 28-Feb-2012 Glenn Kasten <gkasten@google.com> Configure policy of mediaserver threads

Change-Id: Ifd825590ba36996064a458f64453a94b84722cb0
udioRecord.cpp
udioTrack.cpp
AudioFlinger.cpp
AudioRecord.cpp
AudioTrack.cpp
1948eb3ea6eee336e8cdab9b0c693f93f5f19993 14-Apr-2012 Eric Laurent <elaurent@google.com> Add support for deep audio buffers

Allow AudioSink to use deep audio buffering when the
source is audio only and its duration is more than
a certain threshold.
This helps improve battery life but implies higher
audio latency.

Change-Id: Ie79915b61c370292f05aabda9779356570e03cbb
udioTrack.cpp
5b8987e7de9d04b09153f329c680d2316cdb44ec 19-Apr-2012 Andreas Huber <andih@google.com> Allow propagation of error information and description from the CryptoPlugin to

the higher layers.

Change-Id: I9f434ad55cdf575803c208bedf47b607baff2330
related-to-bug: 6365261
Crypto.cpp
2d359a85ef5b72f1cb47df227b44fe4f3c5fbd60 19-Apr-2012 Jean-Michel Trivi <jmtrivi@google.com> Merge "Add support for scaling mode parameter"
3476de62fb10e76412452ef4c6bd71936c9f7db1 16-Apr-2012 Jean-Michel Trivi <jmtrivi@google.com> Add support for scaling mode parameter

Support VISUALIZER_PARAM__SCALING_MODE parameter.

Modify process() function to use new volume scaling parameter,
used to set whether captured values are maximized by current
headroom in the buffer (default existing behaviora) or left
as is and thus affected by volume.

Modify AudioEffect to allow subclasses to override the following
events: control status changed, enable status changed, command
executed.
In Visualizer class (a subclass of AudioEffect), reset the
scaling mode and capture size on the actual effect
as cached when control is regained.
This will allow the effect to be properly
configured whenever Visualizers with different scaling
modes or capture sizes are released (e.g. from java
release() method).

Change-Id: I05cb9f925a296dceca91bafa9fe294ef2b2c2bd5
isualizer.cpp
0ca3cf94c0dfc173ad7886ae162c4b67067539f6 18-Apr-2012 Eric Laurent <elaurent@google.com> rename audio policy output flags

Change-Id: I27c46bd1d1b2b5f96b87af7d05b951fef18a1312
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
AudioPolicyService.cpp
etPlayer.cpp
oundPool.cpp
oneGenerator.cpp
eee482b84bb456e87fa42e8ad02fd2d803839586 17-Apr-2012 Glenn Kasten <gkasten@google.com> Merge "ToneGenerator requests fast track"
2120fe5bd4e14b53d8bef4a220e8a32830cf8cf9 11-Apr-2012 Glenn Kasten <gkasten@google.com> ToneGenerator requests fast track

Also add comments to AudioTrack::set() parameter list

Change-Id: I28c76e9d813778d86b15d75cf7f01a17c258b6d9
oneGenerator.cpp
77d837ae86c791c46ce019b58e09ac62780bf973 16-Apr-2012 Glenn Kasten <gkasten@google.com> Order of evaluation of parameters is not specified

Change-Id: Id545e54c2ec8ed2f70ede630542ed999a9b2c5e2
AudioRecord.cpp
705868c0f2a6e85a39addefe4db9f2130627c219 12-Apr-2012 Andreas Huber <andih@google.com> Make it possible to pass empty opaque data as (NULL, 0) to ICrypto.

Change-Id: Ifee1744890b645e008c9aff3783625a7bfbcff27
related-to-bug: 6275919
Crypto.cpp
4b75a9c8b93a90749bc5d22912ad0d96c12f4ecf 06-Apr-2012 Andreas Huber <andih@google.com> New API to support submitting encrypted buffers to the decoder.

Change-Id: I69dd60e43078c4211c6123cf6e0ce90e676bf873
related-to-bug: 6275919
Crypto.cpp
a4c5a550e2a3bc237179b8684e51718e05894492 29-Mar-2012 Eric Laurent <elaurent@google.com> audio policy: load audio hw modules.

Audio HW modules are now loaded upon request from audio policy manager
according to the configuration in audio_policy.conf.
Removed hard coded HW module loading by AudioFlinger at init time.
Added methods to IAudioFlinger and AudioPolicyInterface
to control the loading of audio HW modules.
Added methods to open an output or input stream on a specific hw module.

Change-Id: I361b294ece1a9b56b2fb39cc64259dbb73b804f4
AudioFlinger.cpp
1a9ed11a472493cac7f6dfcbfac2064526a493ed 21-Mar-2012 Eric Laurent <elaurent@google.com> audio policy: add configuration file

removed outputs to stream mapping cache in audio system: the output for a
given stream type must always be queried from audio policy manager as the cache
is not always updated fast enough by audioflinger callback.

removed AudioFlinger::PlaybackThread::setStreamValid() not used anymore if
stream to output mapping is not cached.

Change-Id: Ieca720c0b292181f81247259c8a44359bc74c66b
udioSystem.cpp
udioTrack.cpp
1bd139a2a68690e80398b70b27ca59550fea0e65 03-Apr-2012 Andreas Huber <andih@google.com> New Crypto services talking to the new crypto "HAL".

Change-Id: I69ed31e7a8b4d69d1209d2d516f94d258f072566
related-to-bug: 6275919
Crypto.cpp
2d6486f9112a6f0d23f17eaaad94bac62e16caab 02-Apr-2012 Glenn Kasten <gkasten@google.com> Merge "Update AudioParameter"
4a4a0959bca78e03e3c3f486ba17829c28314d8c 19-Mar-2012 Glenn Kasten <gkasten@google.com> AudioTrack client fast policy

Change-Id: I42ce691df3f586ac061b62237f35a263a0116f1f
udioTrack.cpp
edf47a8cba2d1d8985b64bf4a4fac661ba34f35a 01-Apr-2012 Glenn Kasten <gkasten@google.com> Update AudioParameter

Use definitions for AUDIO_PARAMETER_STREAM_* from <hardware/audio.h>
instead of repeating these constants.

String constants are const char * const.

Change-Id: I1c9ebe0bc9c827d719d3181aea55251c6db28ec4
udioParameter.cpp
a1472d9883e35edd280201c8be3191695007dfd4 30-Mar-2012 Marco Nelissen <marcone@google.com> Make AudioTrack/AudioRecord handle more than 2^32 frames

b/6160363
Change-Id: I471815012c6a113ec2c4dd7676e8fa288a70bc76
udioRecord.cpp
udioTrack.cpp
a011e35b22f95f558d81dc9c94b68b1465c4661d 30-Mar-2012 Eric Laurent <elaurent@google.com> implemented synchronous audio capture

Added the infrastructure to support the synchronization of playback and
capture actions on specific events.
The first requirement for this feature is to synchronize the audio capture
start with the full rendering of a given audio content.
The applications can further be extended to other use cases
(synchronized playback start...) by adding new synchronization events and
new synchronous control methods on player or recorders.

Also added a method to query the audio session from a ToneGenerator.

Change-Id: I51f1167290d9cafdf2fbcdf9e4785156973af44c
udioRecord.cpp
AudioRecord.cpp
559bf2836f5da25b75bfb229fec0d20d540ee426 28-Mar-2012 James Dong <jdong@google.com> AV Android make files changes

o plus a few file relocation: ActivityManager.cpp/h, SoundPool.h, etc
o remove some runtime dependencies to libandroid, libandroid_runtime, etc

Change-Id: I047a47c5fb361dd5cf85cd98798c39f629a75d10
oundPool.cpp
oundPool.h
oundPoolThread.h
15147270aa1c56503902b424f946389294875665 26-Mar-2012 Andreas Huber <andih@google.com> Merge "Provisional support for secure decryption of media streams."
ed3e3e046840d5bf1ca84a8c0cc097425e89d6d6 26-Mar-2012 Andreas Huber <andih@google.com> Provisional support for secure decryption of media streams.

Change-Id: Ib3982a9c960bfdb0cb7e1b174440b141b194cfbe
ndroid.mk
Crypto.cpp
MediaPlayerService.cpp
131c36ef343a604e9aee10c830ebe9c55a743379 26-Mar-2012 Eric Laurent <elaurent@google.com> Merge "reorganize SoundPool and JetPlayer code."
1f08900408927bd2b3bef59aaa15ab68ec765c06 26-Mar-2012 Colin Cross <ccross@android.com> Merge changes Ib4d0e0c0,Iea8f4a23

* changes:
libmedia: remove skia include
stagefright: remove dependency on skia
2e66a7896c9a9da3a15fc6cff9be28b4174d8719 26-Mar-2012 Eric Laurent <elaurent@google.com> 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
ndroid.mk
etPlayer.cpp
oundPool.cpp
oundPool.h
oundPoolThread.cpp
oundPoolThread.h
b83d38feeeb88a8a2a6219e1fca2480b5a14fb0d 26-Mar-2012 Glenn Kasten <gkasten@google.com> Merge "IAudioFlinger::createTrack and openRecord flags"
60d3a4160f3edb38fa6168237f3275f4d6d9e019 25-Mar-2012 Colin Cross <ccross@android.com> libmedia: remove skia include

skia is not used in this file, remove the unnecessary include.

Change-Id: Ib4d0e0c0090c6b37ff8cfb816c0d8ba82a9638a4
MediaMetadataRetriever.cpp
3ee26944b082def647fe5bb2b75116ffb0267059 24-Mar-2012 James Dong <jdong@google.com> Remove JNI in LOCAL_C_INCLUDE from non-JNI related Android.mk files.

o related-to-bug: 6214141

Change-Id: Ic88d1732b3e014af47532a0809e01f6086e8464d
ndroid.mk
ef36d496477d1e2ae99c3cd43eee5cf7e82b0883 23-Mar-2012 Glenn Kasten <gkasten@google.com> Merge "Revert "Split libmedia into libmedia and libmedia_native""
78b5e82f421bfdf5c1c72bd0ca2fb7f3bc1a45ff 23-Mar-2012 Glenn Kasten <gkasten@google.com> Revert "Split libmedia into libmedia and libmedia_native"

This reverts commit 0a3edd38df0743dcc7091bb7ebf29e7e7dadc7cb
ndroid.mk
a411f779465504ff3e1a59c8ffa43d18385852b8 22-Mar-2012 Glenn Kasten <gkasten@google.com> Merge "Remove enforceFrameCount"
c524ffda17017d8467a237a1eddfd7e7c03c6617 21-Mar-2012 Glenn Kasten <gkasten@google.com> Split libmedia into libmedia and libmedia_native

This is still in the old location

Change-Id: Ic1be549b5b607cfd519cb4cecc581624510a4ee1
ndroid.mk
291f4d505aff81969e6666049d3cc3446f836af2 19-Mar-2012 Glenn Kasten <gkasten@google.com> Remove enforceFrameCount

It was only used to decide whether to issue a warning.
The warning was issued the first time track was created but
not at re-creation. Now it is a verbose message every time,
not a warning since it happens all the time with key clicks on A2DP.

Change-Id: I9d39f53c0a7eb84b666e55b1b76ff830cf8f37ba
udioTrack.cpp
63c1faa8dea7feb90255d31ef2a133d8f2818844 21-Mar-2012 Glenn Kasten <gkasten@google.com> Merge "Update comments"
7153494670bdac8b650cb10b8b1838651e0ca418 21-Mar-2012 Glenn Kasten <gkasten@google.com> Merge "Whitespace"
ea7939a079b3600cab955760839b021326f8cfc3 14-Mar-2012 Glenn Kasten <gkasten@google.com> Whitespace

Fix indentation, and add blank lines in key places for clarity

Change-Id: I57a0a8142394f83203161aa9b8aa9276abf3ed7c
udioTrack.cpp
1bb8e81b066a2311fd238fc6dae8f026e33ed99e 20-Mar-2012 Glenn Kasten <gkasten@google.com> Merge "Add libmedia_native"
17a736c3e1d062d7fc916329eb32aef8935614af 14-Feb-2012 Glenn Kasten <gkasten@google.com> Update comments

Change-Id: I327663a020670d0a72ff57bd0b682e2ce0528650
udioTrack.cpp
etPlayer.cpp
a075db4ff9b086ac2885df77bb6da0869293df92 06-Mar-2012 Glenn Kasten <gkasten@google.com> IAudioFlinger::createTrack and openRecord flags

createTrack and openRecord don't need the "old" flags parameter,
which was either audio_policy_output_t or audio_in_acoustics_t
shifted left by 16 bits. But they do need "new" flags, which
are defined by the application use case. Initially, the only
application use case flag is timed output, but others are planned.

For output, the audio_policy_output_t flags are passed to
AudioSystem::getOutput, which returns an audio_io_handle_t, and that
handle is then passed to createTrack. So createTrack doesn't need the
old flags parameter.

For input, the audio_in_acoustics_t flags are passed to
AudioSystem::getInput, which returns an audio_io_handle_t, and that
handle is then passed to openRecord. So openRecord doesn't need the
old flags parameter.

Change-Id: I18a9870911846cca69d420c19fe6a9face2fe8c4
udioRecord.cpp
udioTrack.cpp
AudioFlinger.cpp
b12153e36ae5e514d96c77d660b327d1a8f5000f 16-Mar-2012 Glenn Kasten <gkasten@google.com> Add libmedia_native

Change-Id: Ib8cff8abd73723b793f08da99ad59549f219e0e7
ndroid.mk
ab334fd351ae5a0e18903da123d63e565b536874 14-Mar-2012 Glenn Kasten <gkasten@google.com> audio_channel_in/out_mask_from_count

and avoid ambiguous term "channels" where it might be confusing
as to whether it is a channel mask or channel count

Change-Id: I744fa08ccb6001a98c97bd638d2c9d56836c4234
etPlayer.cpp
33b383948e8f270bff30378476f00dce289004eb 13-Mar-2012 Glenn Kasten <gkasten@google.com> Remove dependency on audio_* location

Change-Id: I4bc66115fcb9ba22b057bd72db3f561dcb18a0d8
ndroid.mk
36a4d2cc7a44eb42d0d9ef5fe50b6747a7a34cab 13-Mar-2012 Marco Nelissen <marcone@google.com> Merge "Gapless playback, step 1."
6b74d671a1321a6ecc4a40b6c87beedfecc1ec44 29-Feb-2012 Marco Nelissen <marcone@google.com> Gapless playback, step 1.

Currently able to play Ogg Vorbis, PCM WAV and other lossless files seamlessly
by reusing the initial AudioTrack for subsequent players.

Change-Id: Ie7cf6b9076bdf4f9211574456d192c02c04fecc7
MediaPlayer.cpp
ediaplayer.cpp
5e7616cc0e5493241211333134555d74aec89982 13-Mar-2012 James Dong <jdong@google.com> Merge "Switched to use the header files in /frameworks/native and deleted the duplicate header files in /frameworks/base"
e53b9ead781c36e96d6b6f012ddffc93a3d80f0d 13-Mar-2012 Glenn Kasten <gkasten@google.com> Whitespace and indentation

Fix indentation to be multiple of 4.
Make it easier to search:
sp< not sp < to
"switch (...)" instead of "switch(...)" (also "if" and "while")
Remove redundant blank line at start or EOF.
Remove whitespace at end of line.
Remove extra blank lines where they don't add value.

Use git diff -b or -w to verify.

Change-Id: I966b7ba852faa5474be6907fb212f5e267c2874e
udioEffect.cpp
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
AudioFlingerClient.cpp
AudioPolicyService.cpp
AudioRecord.cpp
AudioTrack.cpp
Effect.cpp
EffectClient.cpp
MediaDeathNotifier.cpp
MediaPlayer.cpp
MediaPlayerClient.cpp
MediaPlayerService.cpp
MediaRecorder.cpp
MediaRecorderClient.cpp
etPlayer.cpp
ediaProfiles.cpp
ediaScanner.cpp
ediaScannerClient.cpp
etadata.cpp
oneGenerator.cpp
isualizer.cpp
ediametadataretriever.cpp
ediaplayer.cpp
ediarecorder.cpp
6c6b4d0d2b98a7ceee8b697daaf611f8df3254fb 12-Mar-2012 James Dong <jdong@google.com> Switched to use the header files in /frameworks/native
and deleted the duplicate header files in /frameworks/base

o related-to-bug: 6044887

Change-Id: I17e0692d9a9b5c8796ded36677c833ca8ab36795
ndroid.mk
ediaProfiles.cpp
18868c5db2f90309c6d11e5837822135e4a0c0fa 07-Mar-2012 Glenn Kasten <gkasten@google.com> Use audio_policy_output_flags_t consistently

This affects:
- IAudioFlinger::openOutput
- AudioTrack::AudioTrack
- AudioTrack::set
- apps that call these

Change-Id: I26fb281bac6cb87593d17697bc9cb37a835af205
udioTrack.cpp
AudioFlinger.cpp
etPlayer.cpp
oneGenerator.cpp
f2015b625cd6bea86da7401e725332c35b90e7cf 10-Mar-2012 Glenn Kasten <gkasten@google.com> Merge "Use AudioRecord::record_flags consistently"
679ab0b0792846a89162ce41c953819d70030112 07-Mar-2012 Glenn Kasten <gkasten@google.com> Use AudioRecord::record_flags consistently

Change-Id: I6f369a2b99eb515603bc7d5629a07db2b96783fe
udioRecord.cpp
a19ffb656616feec70613ba67ddfe15a504a4e76 09-Mar-2012 Eric Laurent <elaurent@google.com> Merge "audio policy: use audio_devices_t when appropriate"
6374252107fd6539397598195ea6defd5870fafb 08-Mar-2012 Eric Laurent <elaurent@google.com> audio policy: use audio_devices_t when appropriate

Change-Id: I1b3a5879e81c789fb53d356af3d3a1ee2dca955f
udioSystem.cpp
AudioPolicyService.cpp
b81cc8c6f3eec9edb255ea99b6a6f243585b1e38 01-Mar-2012 Glenn Kasten <gkasten@google.com> IAudioFlingerClient::ioConfigChanged param2 const

The 3rd parameter (param2) to AudioFlingerClient::ioConfigChanged
is used as an input. So changed it from void * to const void *.
It is then cast to const OutputDescriptor *
or const audio_stream_type_t * depending on the event.

Change-Id: Ieec0d284f139b74b3389b5ef69c7935a8e5650ee
udioSystem.cpp
AudioFlingerClient.cpp
d8d6185c978c9b27ca69e7791785e0983ed9e8b8 06-Mar-2012 Eric Laurent <elaurent@google.com> AudioTrack: relax check on minimum buffer size

Current AudioTrack implementation enforces that the requested audio
buffer size is at least corresponding the audio latency.
This requirement is too strong and leads to problems with current
stagefright and AudioSink implementations when playing over output
streams with long latency.

Ultimately, the AudioSink design should be changed to specify a minimum
buffer size in time or frames units but not in buffer count units.

Change-Id: I8ba603956f92ac49143a8249572665aa548f2f0f
udioTrack.cpp
c795b64060c3af9d7961fc1371e4ccfa8ee3e450 23-Feb-2012 John Grossman <johngro@google.com> Switch the way we configure for MediaPlayer retransmission.

This is a cherry-pick of I6ab07d89b2eeb0650e634b8c3b7a0b36aba4e7dd
with merge conflicts addressed by hand and additional changes made in
response to code review feedback.

Move in the direction of a more publishable API for configuring a
media player for retransmission. It used to be that we used a custom
invoke and a modified URL (prefixed with aahTX://). There are many
issues with this technique and it was never meant to stand the test of
time.

This CL gets rid of all that. A new (but currently hidden) method was
introduced to the java level MediaPlayer API, called
setRetransmitTarget(InetSocketAddress), which allows an app writer to
set the retransmit target. For now, this method needs to be called
before a call to setDataSource (which is pretty unusual for the
MediaPlayer API) because this mid level code uses this as a cue to
instantiate an aahTX player instead of relying on the data source to
select a player. When retranmit functionality becomes part of the
existing android player implemenation, this
set-retrans-before-set-data-source behavior can go away, along with
the aahTX player itself.

Change-Id: I3b46c5227bbf69acb2f3cc4f93cfccad9777be98
Signed-off-by: John Grossman <johngro@google.com>
MediaPlayer.cpp
ediaplayer.cpp
e8286332f3817a8b7cc4cfd8f6450a3913533660 29-Feb-2012 Glenn Kasten <gkasten@google.com> Merge "Shorten thread names"
480b46802bef1371d5caa16ad5454fce04769c57 28-Feb-2012 Glenn Kasten <gkasten@google.com> Shorten thread names

prctl(PR_SET_NAME) limits to 15 characters. Before we had names like
"Binder Thread #" and the counter was cut off :-( Also remove redundant
"thread" at end of name; it's always a thread.

Change-Id: I1f99c2730ba0787ed9b59c15914356cddf698e2f
udioRecord.cpp
udioTrack.cpp
606ee61616efdba4696ae591ad10a4be33d8c946 25-Feb-2012 Glenn Kasten <gkasten@google.com> AudioRecord const methods

Change-Id: Ifae4fd7820b650aaca2b13c8658c292db1c46c0f
udioRecord.cpp
df712ea86e6350f7005a02ab0e1c60c28a343ed0 26-Feb-2012 Mathias Agopian <mathias@google.com> fix libgui header location

Change-Id: Iec71706cdd4f29c6904993648ce873e83ef9cafe
MediaPlayer.cpp
MediaRecorder.cpp
OMX.cpp
ediaplayer.cpp
ediarecorder.cpp
f063b49e95c28d63a58215ebda892a5fee4204cc 18-Feb-2012 Glenn Kasten <gkasten@google.com> Fix build warning

warning: pointer of type 'void *' used in arithmetic
warning: enumeral and non-enumeral type in conditional expression

Change-Id: I7b8d626a636145ef648e3b5d0e77068216dd012e
udioEffect.cpp
af7d8189f91c45ab919a6c9ac386b268c8d91168 11-Jan-2012 John Grossman <johngro@google.com> Enhance Visualizer behavior in the case of mediaserver death.

Bring the Visualizer class into line with the SDK documentation by
returning ERROR_DEAD_OBJECT instead of ERROR_INVALID_OPERATION when
the Visualizer loses its binder connection to the mediaserver because
of a mediaserver restart.

Also add a new callback interface to allow clients to be
asynchronously notified in the case of server death. Right now, the
interface definition and the registration method are flagged as hidden
pending API council review/approval.

See http://b/issue?id=5717519 for details.

Change-Id: Ic15856f27ed5a950a583ac11ca81f79bd7e9b1a0
Signed-off-by: John Grossman <johngro@google.com>
udioEffect.cpp
Effect.cpp
isualizer.cpp
4ff14bae91075eb274eb1c2975982358946e7e63 09-Feb-2012 John Grossman <johngro@google.com> Upintegrate Audio Flinger changes from ICS_AAH

Bring in changes to audio flinger made to support timed audio tracks
and HW master volume control.

Change-Id: Ide52d48809bdbed13acf35fd59b24637e35064ae
Signed-off-by: John Grossman <johngro@google.com>
udioTrack.cpp
AudioFlinger.cpp
AudioTrack.cpp
d9b9b8d09e7471b0ffa21cfa9f944ef4ad300a71 14-Feb-2012 Glenn Kasten <gkasten@google.com> Merge "Update comments"
99e53b86eebb605b70dd7591b89bf61a9414ed0e 19-Jan-2012 Glenn Kasten <gkasten@google.com> Update comments

We no longer put the filename at start of file.

Change-Id: Ic435b159a23105681e3d4a6cb1ac097bc853302e
udioTrack.cpp
AudioTrack.cpp
oneGenerator.cpp
ediaplayer.cpp
ed15977476a3d53103866e6d527fa3fb65d4166c 14-Feb-2012 Glenn Kasten <gkasten@google.com> Merge "Remove dead code AudioTrack::getLoop"
6dbc1359f778575d09d6da722b060a6d72c2e7c5 02-Feb-2012 Glenn Kasten <gkasten@google.com> AudioRecord and AudioTrack client tid

Inform AudioFlinger of the tid of the callback thread.

Change-Id: I670df92dd06749b057238b48ed1094b13aab720b
udioRecord.cpp
udioTrack.cpp
AudioRecord.cpp
AudioTrack.cpp
9f1d4448050a4df7118c90c0c0d3e6f9c4b82f3b 10-Feb-2012 James Dong <jdong@google.com> Merge "Move away from MediaDebug and use ADebug instead"
9d1f02d74fd395ec4de6861147da289423f0ab6f 09-Feb-2012 Glenn Kasten <gkasten@google.com> 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
AudioFlinger.cpp
etPlayer.cpp
oneGenerator.cpp
f1d5aa162c02a16b7195a43a9bcea4d592600ac4 07-Feb-2012 James Dong <jdong@google.com> Move away from MediaDebug and use ADebug instead

Change-Id: I963a3b6f79a7292891973cbeeaf3378b38629f08
ediaProfiles.cpp
90bebef5669a9385c706b042d146a31dca2e5d9b 28-Jan-2012 Glenn Kasten <gkasten@google.com> No newline or space at end of ALOG format string

Change-Id: I0bef580cbc818cb7c87aea23919d26f1446cec32
udioEffect.cpp
ediaProfiles.cpp
ediaScanner.cpp
ediaScannerClient.cpp
oneGenerator.cpp
38f5d71e72f3b76c5b519614d27f051d53cd2712 08-Feb-2012 Glenn Kasten <gkasten@google.com> Remove dead code AudioTrack::getLoop

Change-Id: I868329c52f31bc20125f068500d8f892b4ec9796
udioTrack.cpp
72ef00de10fa95bfcb948ed88ab9b7a177ed0b48 17-Jan-2012 Glenn Kasten <gkasten@google.com> Use audio_io_handle_t consistently instead of int

Other:
- add a comment to nextUniqueId
- made ThreadBase::mId const, since it is only assigned in constructor.

Change-Id: I4e8b7bec4e45badcde6274d574b8a9aabd046837
udioSystem.cpp
AudioFlinger.cpp
AudioFlingerClient.cpp
5e92a7861196ddae14638d4b7a63fc4892b7ef59 30-Jan-2012 Glenn Kasten <gkasten@google.com> Effect UUID inputs passed by pointer are const

Change-Id: I1f5c338bcb7368e3dd8cd5f804b2e6d9fbe087f8
udioEffect.cpp
AudioFlinger.cpp
4f9b0c54011eb8fd2ccfb393c2dcd51cd07800e0 08-Feb-2012 Glenn Kasten <gkasten@google.com> Merge "Remove dead mutex in AudioTrack/AudioRecord thread"
f22147e5d2982e0c461f7ce8058c2d596d518bd4 08-Feb-2012 Glenn Kasten <gkasten@google.com> Merge "AudioTrack declare more methods const"
a5224f319e2ba4b51ddb4287705ccf8d4b8ecc51 04-Jan-2012 Glenn Kasten <gkasten@google.com> AudioTrack declare more methods const

Change-Id: I4999e984460893961d0d8092cff17f3cf07d7214
udioTrack.cpp
f587ba5b991c7cd91e4df093d0d796bd419e5d67 27-Jan-2012 Glenn Kasten <gkasten@google.com> Declare more IAudioFlinger methods const

This is just documentation, as C++ method const-ness doesn't mean anything
for a binder API. Instead, here const means "no side effects".

Change-Id: Iaa9cd2fe477db10ae9a40cac4f79f0faa9b4e5e6
udioEffect.cpp
AudioFlinger.cpp
787bae0578fbaab6219ebf23494866b224d01438 03-Feb-2012 Glenn Kasten <gkasten@google.com> Merge "Use audio_in_acoustics_t consistently"
ff3c83e04ae459c4252b86dd4440b4e37ee92c16 03-Feb-2012 Glenn Kasten <gkasten@google.com> Merge "Use ToneGenerator::tone_type consistently"
a0d68338a88c2ddb4502f95017b546d603ef1ec7 28-Jan-2012 Glenn Kasten <gkasten@google.com> Use NULL not 0 for raw pointers

Use if (p != NULL) instead of if (ptr)

Change-Id: Iaec3413a59ccbf233c98fcd918cc7d70ac5da9fa
udioEffect.cpp
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
AudioFlingerClient.cpp
oneGenerator.cpp
62da7fbd60bee2dd57f503126266e9f04311d400 03-Feb-2012 Glenn Kasten <gkasten@google.com> Merge "Make AudioTrack control block volume field private"
457d4c01ec0e922771ef57158431f48e4d267905 02-Feb-2012 Glenn Kasten <gkasten@google.com> Merge "More audio_stream_type_t"
0e265cf36d201a7ccc0238b5c60b50f43d1dc450 02-Feb-2012 Glenn Kasten <gkasten@google.com> Remove dead mutex in AudioTrack/AudioRecord thread

The client callback threads had mutexes called AudioTrackThread::mLock
and ClientRecordThread::mLock. These mutexes were only used by start()
and stop(), and were unused by the thread itself. But start() and
stop() already have their own protection provided by AudioTrack::mLock
and AudioRecord::mLock. So the thread mutexes can be removed.

Change-Id: I098406d381645d77fba06a15511e179a327848ef
udioRecord.cpp
udioTrack.cpp
d459b485c61bd3e7fd81c5cd3af8ada27fc3e8d3 31-Jan-2012 Andreas Huber <andih@google.com> Slighly improve the API to discover if the OMX stack is running in the local

process.

Change-Id: Idd3c2f0d4a9542af01a3fdfd3b0bfab90e083505
OMX.cpp
211eeaf17e5565b68447d29799dbf158a33cf4cf 20-Jan-2012 Glenn Kasten <gkasten@google.com> More audio_stream_type_t

Change-Id: I1260259efe0aa3fc1ef13de69758aaa592e1f815
udioSystem.cpp
3d2f877c1cb4e4ae4ddde7f57f4353de9341f11b 28-Jan-2012 Glenn Kasten <gkasten@google.com> Use ToneGenerator::tone_type consistently

Also remove defaults in startToneCommand(), they're not needed and the
default for tone type was nonsense.

Change-Id: I70fa8cee4f3dbb8c66ceb3719c8d3d2f447f05b9
oneGenerator.cpp
de9719b3ec71472e6bf75117152176af51d1a515 27-Jan-2012 Glenn Kasten <gkasten@google.com> Use audio_in_acoustics_t consistently

Change-Id: I0a9dd668fb2e57b1c3ece3190588194974b99062
AudioFlinger.cpp
eba51fb3a361f67a6a64d5a16eba6084fe27d60e 23-Jan-2012 Glenn Kasten <gkasten@google.com> Use audio_source_t consistently

Was a mix of audio_source_t, uint8_t, and int.

Related fixes:
- fix comments in MediaRecorder.java
- AudioPolicyService server side was not checking source parameter at
all, so if the client wrapper was bypassed, invalid values could be
passed into audio HAL
- JNI android_media_AudioRecord_setup was checking source for positive
values, but not negative values. This test is redundant, since already
checked at Java and now checked by AudioPolicyService also, but might
as well make it correct.

Change-Id: Ie5e25d646dcd59a86d7985aa46cfcb4a1ba64a4a
udioRecord.cpp
udioSystem.cpp
AudioPolicyService.cpp
83d86538c4c479a9225c75ab27938e8f05abb9c8 17-Jan-2012 Glenn Kasten <gkasten@google.com> Make AudioTrack control block volume field private

This is part of the process of abstracting the control block
to make it easier to maintain.

Change-Id: Idb8f461e68dab3bcf268159cc0781651c6fb7094
udioTrack.cpp
af0b82748ed900efab48068137114740cc84ee8f 21-Jan-2012 Glenn Kasten <gkasten@google.com> Merge "Fix warning for redundant typedef"
58f30210ea540b6ce5aa6a46330cd3499483cb97 12-Jan-2012 Glenn Kasten <gkasten@google.com> Use audio_format_t consistently, continued

Was int or uint32_t.

When AudioFlinger::format can't determine the correct format,
return INVALID rather than DEFAULT.

Init mFormat to INVALID rather than DEFAULT in the constructor.
Subclass constructors will set mFormat to the correct value.

Change-Id: I9b62640aa107d24d2d27925f5563d0d7407d1b73
udioRecord.cpp
udioSystem.cpp
AudioFlinger.cpp
AudioPolicyService.cpp
4a98a7c95f3c7d1e8c2913086ce35533a7d5cbf3 20-Jan-2012 Glenn Kasten <gkasten@google.com> Merge "Fix typos in string constants"
d967f0a099db2b71597a3127134afd4a46287a4a 20-Jan-2012 Glenn Kasten <gkasten@google.com> Merge "Remove redundant get()"
05bfe50e13793404a78c20c850d467d17734d496 20-Jan-2012 Glenn Kasten <gkasten@google.com> Merge "Move memcpy_to_i16_from_u8 to audio_utils"
7fc9a6fdf146ded90b51c52f4a05d797294dcb85 10-Jan-2012 Glenn Kasten <gkasten@google.com> Remove redundant get()

get() is almost always unnecessary, except in a LOG.
Also no need to check for != 0 before calling get().

Change-Id: Ib06e7a503f86cf102f09acc1ffb2ad085025516d
udioSystem.cpp
MediaDeathNotifier.cpp
ediametadataretriever.cpp
112ab3e11b9992814363e0f9c629ef7fba86950b 20-Jan-2012 Glenn Kasten <gkasten@google.com> Fix warning for redundant typedef

frameworks/base/media/libmedia/autodetect.cpp:22: warning: 'typedef' was ignored in this declaration

Change-Id: I8c7404b9f5aa515c0fe92a5a46f24248d6fe96bf
utodetect.cpp
ea3cc3bca949139e401b77f2ac0cce7ac6e76f8f 20-Jan-2012 Glenn Kasten <gkasten@google.com> Merge "Remove dead setRingerMode(mode, mask)"
9096f3471434d7f0d2419ac0ee2a618045489718 19-Jan-2012 Glenn Kasten <gkasten@google.com> Fix typos in string constants

These were copy/paste errors in code that was copied from AudioTrack.

Change-Id: I64a04d6026667884ddb1fefba67a71d69c691d62
isualizer.cpp
27a0d83f53ddbfd6449ab0e3c786742a2cd135a9 19-Jan-2012 Glenn Kasten <gkasten@google.com> Merge "Fix incorrect includes of AudioTrack.h"
241fc78866b2aefd75cd1890df5a75b7008728e8 19-Jan-2012 Glenn Kasten <gkasten@google.com> Merge "Simplify range check for audio_mode_t (continued)"
a3f1fa308728976fc9ca1b4f37d26e633b32b9ac 18-Jan-2012 Glenn Kasten <gkasten@google.com> Fix incorrect includes of AudioTrack.h

Remove unnecessary includes of AudioTrack.h.
Use forward declaration of class names in preference to #include when possible.

Change-Id: I12982811fa75c2c7695d8bbfa595a7aaec047dc0
ediaplayer.cpp
347966c827883711d1ec631f204e4a6ab74e9d99 18-Jan-2012 Glenn Kasten <gkasten@google.com> Simplify range check for audio_mode_t (continued)

Missed one place in earlier CL of same name

Change-Id: I0dd25364d0b8d5d731c02d352f139a0c8d4df1a8
udioSystem.cpp
0b07b8085d7b837b4dd5f09e0c8c39408f6bdbf7 18-Jan-2012 Glenn Kasten <gkasten@google.com> Remove dead setRingerMode(mode, mask)

Change-Id: Ia4cc8be8424a40b3dcb7ebd0264fdff4e5247f7f
udioSystem.cpp
AudioPolicyService.cpp
c813985abd8ba61e999b3505f6a332574f87a1be 18-Jan-2012 Andreas Huber <andih@google.com> Temporarily restore AudioSystem/AudioTrack APIs with their former signatures

until we get updated prebuilts from vendor.

Change-Id: I8aae81d2513edca0ab268053a11c8c4206879e61
udioSystem.cpp
udioTrack.cpp
04eaf3e5f20d7faa956c0d672024ffb5117f4c26 18-Jan-2012 Glenn Kasten <gkasten@google.com> Merge "Track volume cleanup"
63ad6aacc6ce6b729bf25f41376cfea731a2c1eb 18-Jan-2012 Eric Laurent <elaurent@google.com> Merge "audio framework: manage stream volume per device"
b1cf75c4935001f61057989ee3cf27bbf09ecd9c 17-Jan-2012 Glenn Kasten <gkasten@google.com> Track volume cleanup

Always read and write track volumes atomically. In most places this was
already being done, but there were a couple places where the left and
right channels were read independently.

Changed constant MAX_GAIN_INT to be a uint32_t instead of a float.
It is always used as a uint32_t in comparisons and assignments.
Use MAX_GAIN_INT in more places.

Now that volume is always accessed atomically, removed the union
and alias for uint16_t volume[2], and kept only volumeLR.

Removed volatile as it's meaningless.

In AudioFlinger, clamp the track volumes read from shared memory
before applying master and stream volume.

Change-Id: If65e2b27e5bc3db5bf75540479843041b58433f0
udioTrack.cpp
511754b5839fd9b09fc56b89ae007fbc39084a33 11-Jan-2012 Glenn Kasten <gkasten@google.com> Move memcpy_to_i16_from_u8 to audio_utils

This will make it easier for this kind of code to be optimized
for each target architecture.

Change-Id: I9efd27d6c0175b00b9a784353244805cec63c0b8
udioTrack.cpp
83844cc2f95dc279015b47fd1e18c7cb4eabe9a1 19-Nov-2011 Eric Laurent <elaurent@google.com> audio framework: manage stream volume per device

Improve volume management by keeping track of volume for each type
of device independently.
Volume for each stream (MUSIC, RINGTONE, VOICE_CALL...) is now maintained
per device.

The main changes are:
- AudioService now keeps tracks of stream volumes per device:
volume indexes are kept in a HashMap < device , index>.
active device is queried from policy manager when a volume change request
is received
initalization, mute and unmute happen on all device simultaneously
- Settings: suffixes is added to volume keys to store each device
volume independently.
- AudioSystem/AudioPolicyService/AudioPolicyInterface: added a device argument
to setStreamVolumeIndex() and getStreamVolumeIndex() to address each
device independently.
- AudioPolicyManagerBase: keep track of stream volumes for each device
and apply volume according to current device selection.

Change-Id: I61ef1c45caadca04d16363bca4140e0f81901b3f
udioSystem.cpp
AudioPolicyService.cpp
3f6448e020969be59ad4d8df99c5296f237ffbd9 16-Jan-2012 Glenn Kasten <gkasten@google.com> Move fixed_fft to system/media/audio_utils

Change-Id: If8a03911434862a872539c313f54825ffb2cc672
ndroid.mk
isualizer.cpp
ixedfft.cpp
0696400a6bb9abbed62b3b9c6aa105495dc600a2 17-Jan-2012 Glenn Kasten <gkasten@google.com> Merge "Use audio_mode_t consistently"
a9b21c5a7c24fe14d20372263c0bf5faf3d3e348 17-Jan-2012 Glenn Kasten <gkasten@google.com> Rename Visualizer::mLock

This avoids confusion with parent class AudioEffect's mLock which is
protected.

Change-Id: I2ae0b0869fe3c606f682252973795b34477951d0
isualizer.cpp
613882293184e575a44bff681a3decaefe889e69 17-Jan-2012 Glenn Kasten <gkasten@google.com> Merge "Use size_t for frame size"
0107954f72153db747a3727dc1157e9236dfed90 17-Jan-2012 Glenn Kasten <gkasten@google.com> Merge "Use audio_stream_type_t consistently"
05632a5fa4b88ca474294887fc92a9fcdf0e2352 03-Jan-2012 Glenn Kasten <gkasten@google.com> AudioTrack and AudioFlinger send level cleanup

Add an API to control block for getting/setting send level.
This allow us to make the mSendLevel field private.

Document the lack of barriers.

Use 0.0f to initialize floating-point values (for doc only).

Change-Id: I59f83b00adeb89eeee227e7648625d9a835be7a4
udioTrack.cpp
b9980659501d0428d65d8292f3c32da69d37fbd2 11-Jan-2012 Glenn Kasten <gkasten@google.com> Use size_t for frame size

except in the control block, where we don't have room.

In AudioFlinger::ThreadBase::TrackBase::getBuffer,
read the frame size from control block only once.

Change-Id: Id6c4bccd4ed3e07d91df6bbea43bae45524f9f4e
udioRecord.cpp
udioTrack.cpp
fff6d715a8db0daf08a50634f242c40268de3d49 13-Jan-2012 Glenn Kasten <gkasten@google.com> 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
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
AudioPolicyService.cpp
MediaPlayer.cpp
oneGenerator.cpp
ediaplayer.cpp
4cc55d53d542c4f4ed645738cebb65b9e7eb6c44 12-Jan-2012 Glenn Kasten <gkasten@google.com> Merge "Use audio_format_t consistently"
f78aee70d15daf4690de7e7b4983ee68b0d1381d 04-Jan-2012 Glenn Kasten <gkasten@google.com> Use audio_mode_t consistently

It was int or uint32_t.
Also make getMode() const.

Change-Id: Ibe45aadbf413b9158e4dd17f2b3bcc6355288d37
udioSystem.cpp
AudioFlinger.cpp
AudioPolicyService.cpp
83bc7f3cf78b28a818417f40a4f0c00593993366 04-Jan-2012 Glenn Kasten <gkasten@google.com> libmedia new can't fail on Android

Change-Id: Ie79dd5abb8078b35474bf0f1b3a6ff994a3a3360
udioRecord.cpp
udioTrack.cpp
etPlayer.cpp
ediaScannerClient.cpp
oneGenerator.cpp
isualizer.cpp
3bba0e0a60b15895134bc2c731d21fd7ebd28784 11-Jan-2012 Glenn Kasten <gkasten@google.com> Merge "Fix race in AudioSystem::getInputBufferSize"
544096247a907bc55688e5c03d5586ba5219d82a 11-Jan-2012 Glenn Kasten <gkasten@google.com> Merge "Fix bug in JetPlayer::loadFromFile"
e3a067f8bc98134941ee1a4da8c2a92a15aaa9cc 11-Jan-2012 Glenn Kasten <gkasten@google.com> Merge "Simplify range check for audio_mode_t"
0132e12ded92529b1520ad62f5134fa31361c90b 11-Jan-2012 Glenn Kasten <gkasten@google.com> Merge "Declare IAudioTrack methods in binder opcode order"
f8c1a6f7ef515810356816b50bfe18af95f3ec32 10-Jan-2012 Glenn Kasten <gkasten@google.com> Fix race in AudioSystem::getInputBufferSize

It was caching the recording parameters without a mutex.

Change-Id: Ic4b9f621cbc080d224c2233cf3ca3454fc0f19bd
udioSystem.cpp
0049acfc8b1c33eb90afc925dacd08a487618e17 10-Jan-2012 Glenn Kasten <gkasten@google.com> Fix bug in JetPlayer::loadFromFile

A long pathname would corrupt the heap due to incorrect use of strncpy.

Also was using hard-coded constant 256 instead of PATH_MAX.

Change-Id: Iba382bbb38624fbc41fec91449f9814f77d4ac0d
etPlayer.cpp
930f4caa1e311ef7ff538c421a324396157eb24f 07-Jan-2012 Glenn Kasten <gkasten@google.com> Simplify range check for audio_mode_t

AudioSystem::setMode previously allowed negative modes, but these were
then rejected by AudioFlinger.

Now negative modes (including AUDIO_MODE_INVALID and AUDIO_MODE_CURRENT)
are explicitly disallowed.

Change-Id: I0bac8fea737c8eb1f5b6afbb893e48739f88d745
udioSystem.cpp
5c7b3bcc88e2b472f1f7b416d89222714b96a567 09-Jan-2012 Glenn Kasten <gkasten@google.com> Merge "Clean up AudioTrack::mActive and stopped()"
29357bc2c0dd7c43ad3bd0c8e3efa4e6fd9bfd47 06-Jan-2012 Steve Block <steveblock@google.com> 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
udioEffect.cpp
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
MediaDeathNotifier.cpp
etPlayer.cpp
ediaProfiles.cpp
ediaScannerClient.cpp
etadata.cpp
oneGenerator.cpp
isualizer.cpp
ediametadataretriever.cpp
ediaplayer.cpp
ediarecorder.cpp
1099586bd48a8a90bb1cc4e7c279703bc7259214 03-Jan-2012 Glenn Kasten <gkasten@google.com> Declare IAudioTrack methods in binder opcode order

This makes it easier to match up the declarations.

Change-Id: I0996c20b2903b778b356dfe52b07b0ec634855dd
AudioTrack.cpp
5ff1dd576bb93c45b44088a51544a18fc43ebf58 06-Jan-2012 Steve Block <steveblock@google.com> 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
udioEffect.cpp
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioRecord.cpp
AudioTrack.cpp
MediaDeathNotifier.cpp
OMX.cpp
ediaProfiles.cpp
ediaScanner.cpp
oneGenerator.cpp
ediametadataretriever.cpp
ediaplayer.cpp
e1c3962e268ffc12bfd1bd9ea84da1f135f36960 04-Jan-2012 Glenn Kasten <gkasten@google.com> Use audio_format_t consistently

Was int, uint32_t, uint16_t, and uint8_t with 2-bit bitfield.
Also replace 0 by AUDIO_FORMAT_DEFAULT and replace 1 by
AUDIO_FORMAT_PCM_16_BIT.

Change-Id: Ia8804f53f1725669e368857d5bb2044917e17975
udioTrack.cpp
MediaPlayerService.cpp
etPlayer.cpp
ediaplayer.cpp
9a2aaf927e56a4b4acab23ef16b3f133a9f48a63 03-Jan-2012 Glenn Kasten <gkasten@google.com> 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
udioTrack.cpp
a2a0a5d7d56baa831870f4bf2a0d942a477d92ef 05-Jan-2012 Glenn Kasten <gkasten@google.com> Merge "Use the standard CC_LIKELY and CC_UNLIKELY macros"
f6b1678f8f508b447155a81b44e214475ab634a8 15-Dec-2011 Glenn Kasten <gkasten@google.com> Use the standard CC_LIKELY and CC_UNLIKELY macros

Several source files privately defined macros LIKELY and UNLIKELY in terms
of __builtin_expect. But <cutils/compiler.h> already has CC_LIKELY and
CC_UNLIKELY which are intended for this purpose. So rename the private
uses to use the standard names.

In addition, AudioFlinger was relying on the macro expanding to extra ( ).

Change-Id: I2494e087a0c0cac0ac998335f5e9c8ad02955873
udioRecord.cpp
udioTrack.cpp
b8a805261bf0282e992d3608035e47d05a898710 20-Dec-2011 Steve Block <steveblock@google.com> 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
udioSystem.cpp
ediaScanner.cpp
ediaplayer.cpp
42968939dfce0954d6540011199045ec4ed7de80 15-Dec-2011 Glenn Kasten <gkasten@google.com> Merge "Fix indentation and whitespace"
2eda60a8485cfe70a60e72156beffdc470ecb093 15-Dec-2011 Glenn Kasten <gkasten@google.com> Merge "Audio C++ comments"
c5ac4cb3a5124860ccfc7e4ff66251c55a5595ca 12-Dec-2011 Glenn Kasten <gkasten@google.com> Fix indentation and whitespace

Use git diff -w to verify.

Change-Id: Ib65be0a1ecf65d6cad516110604e3855bf68a638
udioTrack.cpp
1d334101f1289cf4c8967af6e78ac22619175982 15-Dec-2011 Glenn Kasten <gkasten@google.com> Merge "Remove unnecessary this->"
b299dc4ded29a226daac07f195d1558e660d2f9f 15-Dec-2011 Glenn Kasten <gkasten@google.com> Merge "Remove redundant clear()"
362c4e697d8e9c034e964ac7b40227e054491547 14-Dec-2011 Glenn Kasten <gkasten@google.com> Audio C++ comments

Change-Id: I84906ebb9dfcfa5b96b287d18364b407f02a30c1
udioTrack.cpp
91eb8bfbe253a6b6fe1aa23fb884a601c28991c4 13-Dec-2011 Glenn Kasten <gkasten@google.com> Remove redundant clear()

Change-Id: Ie5e4e63cbc8fa85ef50451dddf8f149fa864b132
udioTrack.cpp
9054897ab9ffb307fadae81b774a1fc61cb542e7 13-Dec-2011 Glenn Kasten <gkasten@google.com> Remove unnecessary this->

Change-Id: I72038f5d4568f0633d3e4ab90f4b67e2dd22c332
udioTrack.cpp
f0c495012bad92230604a9a12a907812ec49ee8f 30-Nov-2011 Glenn Kasten <gkasten@google.com> AudioTrack::setVolume check range

Change-Id: Ie182bf0f741f1f49f68c02a1e7437a2a34d34fc5
udioTrack.cpp
c089d02cf2bddf1bba6eaa2b2fcce149dc44633e 30-Nov-2011 Andreas Huber <andih@google.com> 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
bfcc8d8ab7c56bc013bd221a29e1ecf3a6390813 29-Nov-2011 Andreas Huber <andih@google.com> Updated (internal) API for IStreamSource to signal discontinuities

Change-Id: Idd4b9d8e7cec16b3e3c91c70e75144d42be30f96
related-to-bug: 5553055
StreamSource.cpp
6f5cc45c48c02173bfae8d54b54a92c9bae256a1 19-Nov-2011 Marco Nelissen <marcone@google.com> am d4b22ab4: status_t != bool

* commit 'd4b22ab4889f9b1885bfc0dc45667c846a171a98':
status_t != bool
91e2c7d2988c4947aca8a637f88a2179d905b970 18-Nov-2011 Marco Nelissen <marcone@google.com> status_t != bool

b/5567433

Change-Id: I255ab8c3b0b5e0ea6a5cc7c05df757c667f3855e
ediaScannerClient.cpp
153cefdf4acab25355f590d7760ebf73ef6096a9 18-Nov-2011 Marco Nelissen <marcone@google.com> status_t != bool

b/5567433

Change-Id: I255ab8c3b0b5e0ea6a5cc7c05df757c667f3855e
ediaScannerClient.cpp
528312c36a3ded860ead1a512df51663d03767ff 17-Nov-2011 Glenn Kasten <gkasten@google.com> Merge "JetPlayer uses C++ Thread not createThreadEtc"
a23856c0ad1f49a6ebcb71d3f63f329edc999a72 24-Jun-2011 Glenn Kasten <gkasten@google.com> JetPlayer uses C++ Thread not createThreadEtc

This permits leveraging future improvements to Thread.

Change-Id: I60deed8565ed54f13d9f770c76504e411b154276
etPlayer.cpp
879135196fd1c97deefc538c888037c56c2879a7 23-Jun-2011 Glenn Kasten <gkasten@google.com> 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
udioRecord.cpp
udioTrack.cpp
5c052218128013d630b4d9a84393ebfbff11f3e8 15-Nov-2011 Hong Teng <hongteng@google.com> 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.
3a9cefebd2c5d2157aefaed01c54f151dc64a5b3 10-Nov-2011 Hong Teng <hongteng@google.com> Fix for issue 5309336
-add videoeditor maximum prefetch YUV frames in media_profiles.xml to limit the total memory usage.

Change-Id: I41ffbc192fcce4c7635e5b0a1f2835852e5ee509
ediaProfiles.cpp
471af5aaea2d2491a77dba379771f7c96b9ca3c3 08-Nov-2011 Andreas Huber <andih@google.com> resolved conflicts for merge of 26f70db9 to master

Change-Id: Ib1536b1a4c9eeff80e0726b3e61cee12057cd120
3901e5d87573447db33fb9930871a1f5266a9b2c 25-Oct-2011 Andreas Huber <andih@google.com> Remove surface legacy APIs and code.

All surfaces are now supported through surface textures.

Change-Id: I95dd823e7099c0c32a48a1121624149dcc29d9c6
MediaPlayer.cpp
ediaplayer.cpp
4b8bb4ee7d1d64dc1cd5478a3772f97e4a4a00d7 28-Oct-2011 Jamie Gennis <jgennis@google.com> am fc9592f8: am 08479cee: Merge "Stagefright: ANW::connect in MediaPlayerService" into ics-mr0

* commit 'fc9592f8a5f2f75207e5e532655ac294eb2b334b':
Stagefright: ANW::connect in MediaPlayerService
7dae00baa6e8957be15523c46bb948bd1dde64c3 27-Oct-2011 Jamie Gennis <jgennis@google.com> Stagefright: ANW::connect in MediaPlayerService

This change moves the ANativeWindow connect and disconnect logic from
MediaPlayer to MediaPlayerService::Client.

Bug: 5502654
Change-Id: Ifc43b98b01ad8f35d62d7ece43110724ec7fda3d
ediaplayer.cpp
3856b090cd04ba5dd4a59a12430ed724d5995909 20-Oct-2011 Steve Block <steveblock@google.com> 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
udioEffect.cpp
udioParameter.cpp
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
AudioFlingerClient.cpp
Effect.cpp
EffectClient.cpp
MediaDeathNotifier.cpp
MediaMetadataRetriever.cpp
MediaRecorder.cpp
etPlayer.cpp
ediaProfiles.cpp
ediaScanner.cpp
oneGenerator.cpp
isualizer.cpp
ediametadataretriever.cpp
ediaplayer.cpp
ediarecorder.cpp
b1d666f5cb555d135eb69e005e88a03330bbb54c 20-Oct-2011 Jamie Gennis <jgennis@google.com> 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
OMX.cpp
669012d77b00a2aacb6fd12837f2870f9ec17865 20-Sep-2011 James Dong <jdong@google.com> Add QVGA resolution to CamcorderProfile

Change-Id: Icebbafb68d8164370f98a2c36699845d10ef081b
related-to-bug: 5145483
ediaProfiles.cpp
6de6b48237423a65ec041288c90e3f78fd3fce48 14-Sep-2011 Eric Laurent <elaurent@google.com> Merge "Issue 5298399: Lost speech after a crash in gTalk."
cfe2ba6b01a258e39f9c215ffc7b750e0b68f708 14-Sep-2011 Eric Laurent <elaurent@google.com> 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
udioTrack.cpp
fb6f03425a791dcc4188462c860becf6ca6be4ea 08-Sep-2011 Guang Zhu <guangzhu@google.com> 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
ediaScanner.cpp
98afd841e8f0803a00d1970e4a28ea8999e9c498 09-Sep-2011 Eric Laurent <elaurent@google.com> Merge "AudioTrack: extend callback thread sleep time"
2267ba18d0d2b2d4bd7f5411821ad89ac2659a88 07-Sep-2011 Eric Laurent <elaurent@google.com> 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
udioTrack.cpp
8d65510a2e9ff7b64f2f35bfe3cd745a717c9533 07-Sep-2011 Glenn Kasten <gkasten@google.com> Bug 5270905 fix MediaPlayer with IStreamSource

Change-Id: Ia8a6381a6c88b4a0a1378aab03f5275f0fa1125a
MediaPlayer.cpp
a4f73a9e0e0863a567cc06defa0d9e0269388d4e 06-Sep-2011 Eric Laurent <elaurent@google.com> Merge "Issue 5247986: Battery drain due to audio wakelock"
408b8dc3c0a364c6f6b4991d15da9e6bcc2b8008 06-Sep-2011 Eric Laurent <elaurent@google.com> 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
udioTrack.cpp
0662067b06658a4a56a8416c676f6cce8ccddb53 06-Sep-2011 Dave Burke <daveburke@google.com> Handle setDataSource failures properly. #5261671

Change-Id: Iea0aa474d1939db23da9aabdfae2081e834f30d9
ediaplayer.cpp
71b63e3ef687c379368be6b02e70bd2feb0b6b8d 02-Sep-2011 Eric Laurent <elaurent@google.com> Fix issue 5252593: any app can restart the runtime

Replace null device address string by empty sting.

Change-Id: I285c35f3345334e6d2190493b1a8a5aca1a361a4
udioSystem.cpp
d681bbb1767bed09415e050ba78975df214bcd68 30-Aug-2011 Dave Burke <daveburke@google.com> Require INTERNET permission for network-based content.
Bug #1870981

Change-Id: Ia3ad166390c4d60cea19c3783895b078a2c4c15f
MediaPlayer.cpp
MediaPlayerService.cpp
ediaplayer.cpp
9f6530f53ae9eda43f4e7c1cb30d2379db00aa00 30-Aug-2011 Eric Laurent <elaurent@google.com> 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
udioSystem.cpp
udioTrack.cpp
cd07594333cbe8b2c86c6609cce01a74d6cc33f8 26-Aug-2011 Jean-Michel Trivi <jmtrivi@google.com> 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
udioTrack.cpp
8f74b712fbf5c24de8bc799b7129dc802747a6f4 13-Aug-2011 Rajneesh Chowdury <rajneeshc@google.com> 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
ediaProfiles.cpp
db7c079f284f6e91266f6653ae0ec198b1c5006e 10-Aug-2011 Eric Laurent <elaurent@google.com> 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
udioSystem.cpp
AudioPolicyService.cpp
3a34befc6fb04a4945a849e8bda8b84e4bf973fe 02-Aug-2011 Marco Nelissen <marcone@google.com> 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
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
ediaplayer.cpp
746d7c7f577b549b8a56862b73ae4f4f1247c593 02-Aug-2011 Gloria Wang <gwang@google.com> Merge "Fix ordering assumption of argument evaluation."
c3da3434cb57f47284ea06bb9065eaa2fe033efb 30-Jul-2011 Mathias Agopian <mathias@google.com> connect/disconnect is now called from our EGL wrapper

the original connect/disconnect hooks are deprecated
and replace by api_connect/api_disconnect. the original
hooks are no no-ops.
api_connect/api_disconnect is now only called from the
android framework.

Bug: 5057915
Change-Id: I8ca64cd1acd6cabf915bf54689ec2e5f6dfa495a
ediaplayer.cpp
de162ff337723798381890151247b129c4fbe314 01-Aug-2011 Gloria Wang <gwang@google.com> Fix ordering assumption of argument evaluation.

No specific order is specified in the C++ standard, but the order of
the calls to Parcel read commands matters. Move any calls with multiple
reads to local variables.

Fix for bug 5104979.

Change-Id: I709aa040e990d2659e7a3a089f7a42ae812de9ff
MediaPlayer.cpp
d1a243e41caffa8fd346907eed4625c9c47c1a86 27-Jul-2011 Eric Laurent <elaurent@google.com> AudioRecord: Fix getInput()

AudioRecord::getInput() was issuing a query to get a new input stream from
audio policy service instead of returning the cached input stream in AudioRecord.

Change-Id: Ice324b7c60bc0898149023797bcb56a72091b9d3
udioRecord.cpp
6e6e8a6cc9ab99ab299929fa0246e6ced64f8ce3 25-Jul-2011 Eric Laurent <elaurent@google.com> Merge "Added APIs for audio preprocessing"
57dae99c9fcd6becd2b5ed0c53f277ba4d7dbcfc 24-Jul-2011 Eric Laurent <elaurent@google.com> Added APIs for audio preprocessing

Added APIs to control pre processes applied on captured audio.
Those APIs are still hidden until reviewed by API council.

Three types of standard pre processes are supported:
- Automatic Gain Control (AGC) by AutomaticGainControl class
- Acoustic Echo Cancellation (AEC) by AcousticEchoCanceler class
- Noise Suppression (NS) by NoiseSuppressor class

A method is added to AudioEffect class to query audio pre processings
applied by default by the platform on a given AudioRecord session ID.

Change-Id: I0b9fceeb8c704dd06319c3b52b85c96fe871d51d
udioEffect.cpp
AudioPolicyService.cpp
3cecf640c4daf2df616b278bd9986018c8182908 30-Jun-2011 James Dong <jdong@google.com> Do not support still image capture mode for timelapse video recording

related-to-bug: 4973779

Change-Id: Ica665217ab10247b2242acc4e93d4fe9f83e3f45
MediaRecorder.cpp
ediarecorder.cpp
b33f3407bab0970a7f9241680723a1140b177c50 02-Jul-2011 Pannag Sanketi <psanketi@google.com> Connect MediaRecorder Native to SurfaceMediaSource

Making a connection from MediaRecorder Native layer to the
SurfaceMediaSource for the purpose of encoding GL Frames. This will be
called from the java side inside the Mobile Filter Framework.

The mediarecorder native layer (client), when set the videosource to
option VIDEO_SOURCE_FRAMES, asks the StageFrightRecorder on the mediaserver
side to create a SurfaceMediaSource object and pass it back as a
sp<ISurfaceTexture> object. Using that, the client side will dequeue and
queue buffers. Connecting the GL Frames to the obtained
sp<ISurfaceTexture> is not part of this CL.

Related to bug id: 4529323

Change-Id: I651bec718dd5b935779e7d7a050b841c2d0b0fcd
MediaRecorder.cpp
ediarecorder.cpp
5bc965b1ff21c64e5f30130957bfe96300e15ed3 22-Jul-2011 James Dong <jdong@google.com> Merge "Log setVideoSurface() and setVideoSurfaceTexture() failures."
fada58a21be01913a8e3f25c898d26d2fc8ba630 22-Jul-2011 James Dong <jdong@google.com> Log setVideoSurface() and setVideoSurfaceTexture() failures.

Change-Id: Iaea34e74a0cf569fc85b926949253dea6baa6142
related-to-bug: 5063370
ediaplayer.cpp
a1d92359056176b6f6646efc918e0587e3de2b6f 21-Jul-2011 Hong Teng <hongteng@google.com> Merge "fix for issue 4142219 Don't hard code platform-specific limitations-jni/java part"
3a1f8a404b38aaa82d57c77cb83e48665e66e553 21-Jul-2011 Jeff Brown <jeffbrown@google.com> Merge "Untangle MediaScanner error handling. Bug: 5056917"
0cd7889d37cc60300dceaa975dab041fd35e34fd 21-Jul-2011 Eric Laurent <elaurent@google.com> Merge "Audio framework: support for audio pre processing"
7188e55f54a43c55fd6b96454720c447f1dc454e 21-Jul-2011 Jeff Brown <jeffbrown@google.com> Untangle MediaScanner error handling.
Bug: 5056917

Change-Id: I1a7a73579e3ba4e9709459329fc1901a28b0f4b1
ediaScanner.cpp
ediaScannerClient.cpp
cabd5f867ec69c0dfe8333cba46323cb58917402 07-Jul-2011 Hong Teng <hongteng@google.com> fix for issue 4142219
Don't hard code platform-specific limitations-jni/java part

Change-Id: Icde261b1caf29a8cf552884c97f3c9d0b41741a3
ediaProfiles.cpp
bea47bc22b2939b324b47fd0d70e6c7e6fbc82d2 19-Jul-2011 Jamie Gennis <jgennis@google.com> MediaPlayer: add a disconnect from ANativeWindow

This change makes MediaPlayer::disconnect disconnect from the
ANativeWindow once the player has been disconnected.

Change-Id: I6744559030d1edc520cf77402d1f5ce841742340
ediaplayer.cpp
4a621e6d3438876eb1d9001719c688a2329ee675 19-Jul-2011 Jamie Gennis <jgennis@google.com> Merge "MediaPlayer: add ANativeWindow (dis)connect calls"
7c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745 18-Jun-2011 Eric Laurent <elaurent@google.com> Audio framework: support for audio pre processing

Audio effect framework is extended to suport effects on
output and input audio path.

AudioFlinger: Support for audio effects and effect chains is
moved from PlaybackThread class to ThreadBase class so that
RecordThread can manage effects.
Effects of type pre processing are allowed on record thread
only. When a pre processing is enabled, the effect interface handle is
passed down to the input stream so that the audio HAL can call the
process function. The record thread loop calls the effect chain process
function that will only manage the effect state and commands and skip the
process function.

AudioRecord: The audio session is allocated before calling getInput() into
audio policy serice so that the session is known before the input theead is
created and pre processings can be created on the correct session.

AudioPolicyService: default pre processing for a given input source are
loaded from audio_effects.conf file.
When an input is created, corresponding effects are created and enabled.

Change-Id: Id17119e0979b4dcf189b5c7957fec30dc3478790
udioEffect.cpp
udioRecord.cpp
udioSystem.cpp
AudioPolicyService.cpp
61c7ef5bde2c7ed94a078396aa65da67b47e5402 13-Jul-2011 Jamie Gennis <jgennis@google.com> MediaPlayer: add ANativeWindow (dis)connect calls

This change makes MediaPlayer connect to the ANativeWindow to which it
is going to render video frames and disconnect when it is done.

Change-Id: I88ab5c2fe62493aabdc84a283ff31634f795d415
ediaplayer.cpp
42e549e4ab54802d788c43e3a04a85b7a1a95e97 13-Jul-2011 Andreas Huber <andih@google.com> Enable signalling of a stream discontinuity involving a format-change

through IStreamListener.

Change-Id: Ic0409cdc4891ad26b61f2f98bdda3c7fb2e2de6a
related-to-bug: 5022434
StreamSource.cpp
5e0067b486c3862316aa1f293cf9690c0cf54bda 12-Jul-2011 Jeff Brown <jeffbrown@google.com> Remove the simulator target from all makefiles.
Bug: 5010576

Change-Id: I04d722f258951a3078fe07899f5bbe8aac02a8e8
ndroid.mk
6d8b694d999e9be7d5dcc336535832a80fb6f61f 24-Jun-2011 Eric Laurent <elaurent@google.com> Moved and renamed effect API header files

Moved specific effect header files to
system/media/audio_effects/include/audio_effects
and renamed to lower case (effect_xxx.h).

Change-Id: Icfc2264bfd013cab0395d7e310ada636b9fe3621
ndroid.mk
isualizer.cpp
4ca2c7c913f8bd4ada13aca56d36045d42d1e00f 01-Jun-2011 Wu-cheng Li <wuchengli@google.com> Add framework support for camcorder zoom.

The purpose of ICameraRecordingProxy and ICameraRecordingProxyListener is to
allow applications using the camera during recording.

Camera service allows only one client at a time. Since camcorder application
needs to own the camera to do things like zoom, the media recorder cannot
access the camera directly during recording. So ICameraRecordingProxy is a proxy
of ICamera, which allows the media recorder to start/stop the recording and
release recording frames. ICameraRecordingProxyListener is an interface that
allows the recorder to receive video frames during recording.

ICameraRecordingProxy
startRecording()
stopRecording()
releaseRecordingFrame()

ICameraRecordingProxyListener
dataCallbackTimestamp()

The camcorder app opens the camera and starts the preview. The app passes
ICamera and ICameraRecordingProxy to the media recorder by
MediaRecorder::setCamera(). The recorder uses ICamera to setup the camera in
MediaRecorder::start(). After setup, the recorder disconnects from camera
service. The recorder calls ICameraRecordingProxy::startRecording() and
passes a ICameraRecordingProxyListener to the app. The app connects back to
camera service and starts the recording. The app owns the camera and can do
things like zoom. The media recorder receives the video frames from the
listener and releases them by ICameraRecordingProxy::releaseRecordingFrame.
The recorder calls ICameraRecordingProxy::stopRecording() to stop the
recording.

The call sequences are as follows:
1. The app: Camera.unlock().
2. The app: MediaRecorder.setCamera().
3. Start recording
(1) The app: MediaRecorder.start().
(2) The recorder: ICamera.unlock() and ICamera.disconnect().
(3) The recorder: ICameraRecordingProxy.startRecording().
(4) The app: ICamera.reconnect().
(5) The app: ICamera.startRecording().
4. During recording
(1) The recorder: receive frames from ICameraRecordingProxyListener.dataCallbackTimestamp()
(2) The recorder: release frames by ICameraRecordingProxy.releaseRecordingFrame().
5. Stop recording
(1) The app: MediaRecorder.stop()
(2) The recorder: ICameraRecordingProxy.stopRecording().
(3) The app: ICamera.stopRecording().

bug:2644213

Change-Id: I15269397defc25cbbcae16abc071c8349c123122
MediaRecorder.cpp
ediarecorder.cpp
8e51d58fca9b7669f271378f9245e180f4360cbc 23-Jun-2011 Gloria Wang <gwang@google.com> - Public part of the Metadata API.
- Modify the media framework test for Metadata.

Change-Id: Ib8fa4991f114e1bb88a17ca662844b9b8e1d0faf
etadata.cpp
68cbeba4e21aa53f52fb99b74dfa1910af31a3eb 23-Jun-2011 Glenn Kasten <gkasten@google.com> Merge "Fix warnings for uninitialized local variables"
eddf9ef9235608e0231379a7bc614853bf5bcfa3 23-Jun-2011 Eric Laurent <elaurent@google.com> Merge "Added audio_bytes_per_sample() helper function"
d0965dde97f2815ae0a15fe6b40946f8a741a81e 23-Jun-2011 Glenn Kasten <gkasten@google.com> Fix warnings for uninitialized local variables

Change-Id: Ic9b03b0fd215444e76c7b7bebb385f7831c557e0
udioRecord.cpp
udioTrack.cpp
671a636931295d9c33ffca74551a804479d01241 17-Jun-2011 Eric Laurent <elaurent@google.com> Added audio_bytes_per_sample() helper function

Change-Id: Ibfcd75c4c241a53d5f052c25ada091904991048a
udioRecord.cpp
udioTrack.cpp
b8e9897b8ad5d722e424d7a7e256153307ecbd93 15-Jun-2011 Glenn Kasten <gkasten@google.com> Remove unneeded #include <sys/resource.h>

Suggested in code review for previous change.

Change-Id: Ic3225b240367dc6c9bf56fb4498fb8a0f9f806ec
oneGenerator.cpp
7394a4f358fa9908a9f0a7c954b65c399f4268e6 14-Jun-2011 Dima Zavin <dima@android.com> audio: update for audio/audio_policy header names/locations

Change-Id: I36c49352eee57559403cd1597f56a8485a360289
Signed-off-by: Dima Zavin <dima@android.com>
udioTrack.cpp
62dfda30f41d33682ee96038c404ab59995684e0 10-Jun-2011 Dianne Hackborn <hackbod@google.com> am 15e9d474: am 88748e6d: am d86302df: Quiet the log.

* commit '15e9d474d1033adbedc8632309df26c3d6dfaee3':
Quiet the log.
767ad02b2ca9e6ad02b8cf56098cffad52970642 10-Jun-2011 Dianne Hackborn <hackbod@google.com> Quiet the log.

Change-Id: Ie814b579997bb555eae014c22da0f41f1a46940f
ediaScanner.cpp
0512ab559d4670c2204078470d7ef5d376811c57 05-May-2011 Glenn Kasten <gkasten@google.com> Remove dead code related to gettid

The gettid system call is always available now.

Change-Id: Ib78b41781eda182dc8605daf456bbea7ff7c2dc0
udioSystem.cpp
MediaMetadataRetriever.cpp
etPlayer.cpp
c6854100cea4fcd0f20cb2ac8235c02d1849b3a1 02-Jun-2011 Glenn Kasten <gkasten@google.com> Remove unnecessary level of priority indirection

Change-Id: I942d43973c20a7ace8b0d3f78b4da97e45e996c6
udioRecord.cpp
udioTrack.cpp
d217a8c4632b3e3065f8c2a26b9ce4dc4c97171f 02-Jun-2011 Glenn Kasten <gkasten@google.com> Revert "Use AudioTrack::event_type not int in callback"

This reverts commit 2225e4b7049fa3fb9d39a068b8268b63c952d7c1
oneGenerator.cpp
013b5a67d6f8e12a1b06e74863daec1bee4d99c1 05-May-2011 Glenn Kasten <gkasten@google.com> Use AudioTrack::event_type not int in callback

Change-Id: Ifefc708d46874e04fd0d01cb6e2d43b987ee796c
oneGenerator.cpp
0d255b2d9061ba31f13ada3fc0f7e51916407176 25-May-2011 Jean-Michel Trivi <jmtrivi@google.com> Use channel mask instead of channel count for track creation

Record and playback objects (resp AudioRecord and AudioTrack)
are created using a channel mask, but this information is lost
in the mixer because only the channel count is known to
AudioFlinger. A channel count can always be derived from a
channel mask.

The change consists in:
- disambiguiting variable names for channel masks and counts
- passing the mask information from the client to AudioFlinger
and the mixer.
- when using the DIRECT ouput, only verifying the format of
the track is compatible with the output's for PCM.

Change-Id: I50d87bfb7d7afcabdf5f12d4ab75ef3a54132c0e
udioRecord.cpp
udioTrack.cpp
AudioFlinger.cpp
65580f9adf6c4d98449ad0716488f9fe3869aa5a 28-May-2011 Eric Laurent <elaurent@google.com> Removed interface to load audio effects libraries

Removed unused functions allowing dynamic loading of audio effects libraries
from effects factory API.

Change-Id: I06cc5a51dc10aca87c7a8687bbb874babd711eca
udioEffect.cpp
AudioFlinger.cpp
9b1e4f1a18ac2489e24b4272a0a7ccfd0018efcc 14-May-2011 James Dong <jdong@google.com> Merge "Add support for platform-specific recording start time offset"
64760240f931714858a59c1579f07264d7182ba2 11-May-2011 Dima Zavin <dima@android.com> update for new audio.h header location

Change-Id: Ic4c62c4037800802427eb7d3c7f5eb8b25d18876
Signed-off-by: Dima Zavin <dima@android.com>
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioPolicyService.cpp
ediaplayer.cpp
0f056290cb16763453f18bbef80cde673041dbbc 10-May-2011 James Dong <jdong@google.com> Add support for platform-specific recording start time offset

o This start time offset is used in the media framework to eliminate
the recording sound in the recorded file.

Change-Id: I97926a74f0743b8a4f985d51334e8d1486a318ea
related-to-bug: 4390777
ediaProfiles.cpp
1a65546a55d019335655464ad895361ba9f89252 02-May-2011 Mike Lockwood <lockwood@android.com> DO NOT MERGE MediaScanner: Fix bug in "no media" handling logic

Don't let the "no media" status of one directory leak to the remaining files
and directories in the same parent.

Bug: 4364077

Change-Id: Ie756ccd06b1962b06143fc02a1a3927c3aba143a
Signed-off-by: Mike Lockwood <lockwood@android.com>
ediaScanner.cpp
462accab9dbcf8d1597de999328fa74337b3b88c 24-Apr-2011 Mike Lockwood <lockwood@android.com> DO NOT MERGE MediaScanner: reimplement the ".nomedia" feature for hiding files from the media provider

Previously we ignored any files and directories that had name started with '.'
and ignored any directories that contained a ".nomedia" file.
Now to support transferring any file via MTP, we now add these previously ignored files
to the media database, but will not mark them as audio, video, image or playlist files.
That way they will be included in the files table but will be hidden from the
audio, video, images and playlist views that are used by apps like Music and Gallery.

Bug: 3405327

Change-Id: Ibb37bb2856a0684ce9f685ed565ad35347622834
Signed-off-by: Mike Lockwood <lockwood@android.com>
ediaScanner.cpp
c777a8526a6517e5fbfa713651da280fd1bdd502 02-May-2011 Mike Lockwood <lockwood@android.com> MediaScanner: Fix bug in "no media" handling logic

Don't let the "no media" status of one directory leak to the remaining files
and directories in the same parent.

Bug: 4364077

Change-Id: I30943222dc292818cff00ee8169be7a695eed174
Signed-off-by: Mike Lockwood <lockwood@android.com>
ediaScanner.cpp
4f9e47f2c03ce36261c4717cd7e131d7940bb068 26-Apr-2011 Gloria Wang <gwang@google.com> Add setParameter/getParameter to MediaPlayer API.
for bug 1982947

Change-Id: If3f40e4f18cbba155af29944af38bdc627f8cd53
MediaPlayer.cpp
ediaplayer.cpp
fce7a473248381cc83a01855f92581077d3c9ee2 20-Apr-2011 Dima Zavin <dima@android.com> audio/media: convert to using the audio HAL and new audio defs

Change-Id: Ibc637918637329e4f2b62f4ac7781102fbc269f5
Signed-off-by: Dima Zavin <dima@android.com>
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioPolicyService.cpp
etPlayer.cpp
oneGenerator.cpp
isualizer.cpp
ediaplayer.cpp
db5cb14318bb24cd6ea14ff7ceea0d5e1f83d903 20-Apr-2011 Dima Zavin <dima@android.com> libmedia: move AudioParameter out of AudioSystem

Change-Id: I9eb7e002d141936258050d4fa4f0ccd8202bfc54
Signed-off-by: Dima Zavin <dima@android.com>
ndroid.mk
udioParameter.cpp
udioSystem.cpp
f87d18a374f0275b1adb89a495931390f7407fd2 25-Apr-2011 James Dong <jdong@google.com> Merge "Return status code from invoke()"
c5182e31b23dc381d21ef43b7f7d682ffc54bd79 24-Apr-2011 Mike Lockwood <lockwood@android.com> MediaScanner: reimplement the ".nomedia" feature for hiding files from the media provider

Previously we ignored any files and directories that had name started with '.'
and ignored any directories that contained a ".nomedia" file.
Now to support transferring any file via MTP, we now add these previously ignored files
to the media database, but will not mark them as audio, video, image or playlist files.
That way they will be included in the files table but will be hidden from the
audio, video, images and playlist views that are used by apps like Music and Gallery.

Bug: 3405327

Change-Id: I2d7285bd32e06c1a5c4ef6a8a15f8f8b2c33b39b
Signed-off-by: Mike Lockwood <lockwood@android.com>
ediaScanner.cpp
b483c4724846c0b8d4e82afcbb7c17f671bae81c 12-Apr-2011 Gloria Wang <gwang@google.com> - Add another parameter in notify() to be able to send timed text sample
through listener during video playback.
- Add OnTimedTextListener in the MediaPlayer
For feature request 800939.

Change-Id: I65072c27acb4c0037109a72be38c73e9f667420f
MediaPlayerClient.cpp
ediaplayer.cpp
cc8ace7989f663fe6c6c1ed0febca0d9d1f19c7a 07-Apr-2011 Eric Laurent <elaurent@google.com> Do not disable effect in AudioEffect destructor.

Current implementation of AudioEffect class destructor disables
the effect before disconnecting from IAudioEffect interface.
This is problematic when more than one client has a handle on the same
effect engine as destroying one handle will disable the effect which is
not the intended behavior.

Change-Id: I10eacf981506469a7ef4eb9a1650813f0848de5d
udioEffect.cpp
040e4a14ef9cafd5d08d9a180e6237fb79687995 07-Apr-2011 James Dong <jdong@google.com> Return status code from invoke()

Change-Id: Ie64b418d2a1f44e07942399c285b460c68f8e14f
related-to-bug: 4199781
MediaPlayer.cpp
38ccae2c0324daa305f3fe77d25fdf5edec0b0e1 29-Mar-2011 Eric Laurent <elaurent@google.com> New fix for issue 4111672: control block flags

The first fix (commit 913af0b4) is problematic because it makes threads
in mediaserver process block on the cblk mutex. This is not permitted
as it can cause audio to skip or worse have a malicious application
prevent all audio playback by keeping the mutex locked.

The fix consists in using atomic operations when modifying the control
block flags.

Also fixed audio_track_cblk_t::framesReady() so that it doesn't block
when called from AudioFlinger (only applies when a loop is active).

Change-Id: Ibf0abb562ced3e9f64118afdd5036854bb959428
udioRecord.cpp
udioTrack.cpp
5f7fcf29a7475a20cf38bf72da67746135d504c3 26-Mar-2011 Mathias Agopian <mathias@google.com> merge libsurfaceflinger_client into libgui

this is the first step in unifying surfacetexture and surface.
for this reason the header files were not moved, as most of them
will eventually go away.

NOTE: currently we keep libsurfaceflinger_client.so as an empty
library to workaround prebuilt binaries wrongly linking against
it.

Change-Id: I130f0de2428e8579033dc41394d093f4e1431a00
ndroid.mk
0511969950188634f4212fcf63680c43207baedd 21-Mar-2011 Eric Laurent <elaurent@google.com> Merge "Fix issue 3483718: audio streaming and A2DP."
9b7d950f1f3b0c526712b713dbceb0e22762c015 21-Mar-2011 Eric Laurent <elaurent@google.com> Fix issue 3483718: audio streaming and A2DP.

The problem is that when switching from A2DP to device speakers or headset,
The AudioTrack binder interface to AudioFlinger must be destroyed and restored
to accomodate new buffer size requirements. Current AudioTrack implementation
did not restore properly the PCM buffer write index which caused a mismatch between
the written frame count in the mediaplayer renderer and the AudioTrack. The renderer
could then believe the AudioTrack buffer was full and stop writing data preventing the
AudioTrack to reach a bufffer full condition and resume playback.

The rendered was also modified to refresh the AudioTrack frame count (buffer size)
inside the write loop in NuPlayer::Renderer::onDrainAudioQueue() as this count can change
from one write to the next.

Also modified AudioTrack::obtainBuffer() to check for track invalidated status before
querying for available space in the buffer. This avoids writing to the old track's
buffer until full before detecting the invalidated condition and create a new track.

Change-Id: I16a857e464e466880847f52f640820aa271539ad
udioTrack.cpp
af8791e112c8072452bd14ef3c43a47511d19542 21-Mar-2011 Andreas Huber <andih@google.com> Support passing headers to MediaMetadataRetriever's setDataSource API

Change-Id: Ib1a5c08fc5034cac05034db27007a35c9b660b26
related-to-bug: 3506316
MediaMetadataRetriever.cpp
ediametadataretriever.cpp
1caf58cd652edab4e05bfef8ccaa1497c450f5e9 18-Mar-2011 Eric Laurent <elaurent@google.com> Merge "Fix issue 4111672: AudioTrack control block flags"
33797ea64d067dfeaacbfd7ebe7f3383b73961b5 17-Mar-2011 Eric Laurent <elaurent@google.com> Fix issue 4111672: AudioTrack control block flags

Make sure that all read/modify/write operations on the AudioTrack
and AudioRecord control block flags field are protected by the
control block's mutex.

Also fix potential infinite loop in AudioTrack::write() if the
written size is not a multiple of frame size.

Change-Id: Ib3d557eb45dcc3abeb32c9aa56058e2873afee27
udioRecord.cpp
udioTrack.cpp
c901f74404435cc1cf2717016e2b0092b6dcea24 17-Mar-2011 James Dong <jdong@google.com> am 782ffe91: am 9c0c5b56: am 2f1f2248: Fix missing AOSP copyright headers for a bunch of media framework files

* commit '782ffe91da665c6b1fb9e297faa6e0dc6035f40c':
Fix missing AOSP copyright headers for a bunch of media framework files
27c174483a8ae9688d5d4897c19074f62c7f1701 17-Mar-2011 James Dong <jdong@google.com> Fix missing AOSP copyright headers for a bunch of media framework files

bug - 4119349

Change-Id: If5924e16a5f596d5d73d9beb66eaf5ac9a6f0e50
OMX.cpp
c21359d332ea2ac5258f86e1cf46db9e0faf3e4b 16-Mar-2011 James Dong <jdong@google.com> resolved conflicts for merge of 1cbf8493 to master

Change-Id: Ifea2ba8b02ecf291fbd1612973647a95a70511c4
8031ec79eb657a0ae84325410578ea87f50eeb54 16-Mar-2011 James Dong <jdong@google.com> Add the default camera id to mCameraIds for emulator and those devices without media_profiles.xml configuration file.

bug - 4109530

Change-Id: Ib83be7a7f767a4b20ac338734ada1581e7a4c5bf
ediaProfiles.cpp
8635b7b095fbf7ffc63d3ce791891a9116ace1f6 15-Mar-2011 James Dong <jdong@google.com> Add memory leak tracking/debugging code to drm server

bug - 4099038

Change-Id: I6c048eaf3d7f34bc144b8daaa5fdef1ed474af66
ndroid.mk
emoryLeakTrackUtil.cpp
2aac40fe9d42a15dab0af6a0efea7a2468cd9e4f 09-Mar-2011 Eric Laurent <elaurent@google.com> am 2dc78477: am cc34967f: Merge "Fix issue 3439872: video chat and bluetooth SCO" into honeycomb-mr1

* commit '2dc78477364bd4accb9a603baaafca9a5523dcec':
Fix issue 3439872: video chat and bluetooth SCO
1703cdfee717b1b312bf8979816a9e2f16a82e5d 07-Mar-2011 Eric Laurent <elaurent@google.com> Fix issue 3439872: video chat and bluetooth SCO

This change fixes the stability problems experienced when using
a bluetooth headset supporting both A2DP and SCO. Problems occur
when starting the video chat at which time the A2DP output is being
stopped to start SCO. At that time, active AudioTracks are invalidated
by AudioFlinger so that a new AudioTrack binder interface can be
recreated by the client process on the new mixer thread with correct parameters.
The problem was that the process to restore the binder interface was not
protected against concurrent requests which caused 2 binder interfaces
to be created sometimes. This could lead to permanent client deadlock
if one of the client threads was waiting for a condition of the first
created binder interface while the second one was created (as the AudioFlinger
would only signal conditions on the last one created).
This concurrent request situation is more likely to happen when a client
uses the JAVA AudioTrack as the JNI implementation uses simultaneously the
native AudioTrack callback and write push mechanisms. By doing so, the code
that checks if the binder interface should be restored (in obtainBuffer()) is
much more likely to be called concurrently from two different threads.

The fix consists in protecting the critical binder interface restore phase
with a flag in the AudioTrack control block. The first thread acting upon the binder
interface restore request will raise the flag and the second thread will just wait for
a condition to be signaled when the restore process is complete.

Also protected all accesses to the AudioTrack control block by a mutex to prevent
access while the track is being destroyed and restored. If a mutex cannot be held
(e.g because we call a callback function), acquire a strong reference on the IAudioTrack
to prevent its destruction while the cblk is being accessed.

Modified AudioTrack JNI to use GetByteArrayElements() instead of
GetPrimitiveArrayCritical() when writing audio buffers. Entering a critical section would
cause the JNI to abort if a mediaserver crash occurs during a write due to the AudioSystem
callback being called during the critical section when media server process restarts.
Anyway with current JNI implementation, either versions do not copy data most of the times
and the criticial version does not guaranty no data copy.

The same modifications have been made to AudioRecord.

Change-Id: Idc5aa711a04c3eee180cdd03f44fe17f3c4dcb52
udioRecord.cpp
udioTrack.cpp
d3ee677783864d933cd8bc82c14666bd135d43bd 08-Mar-2011 James Dong <jdong@google.com> Add the default back-facing camera to the MediaProfile camera vector
As a result, missing media_profiles.xml will be still allowed.

Change-Id: Ie6c1bbfdfd4e971f1d5d0e031a913e757f3863a7
ediaProfiles.cpp
32f3cefa373cd55e63deda36ca9d07c7fe22eaaf 03-Mar-2011 Andreas Huber <andih@google.com> Allow optional specification of a PTS timestamp when signalling a discontinuity.

If present, rendering will be suppressed until reaching the timestamp.

Change-Id: Ic64bdf4225063c5a4d042ea9809960b843a46d19
related-to-bug: 3489454
StreamSource.cpp
2a7e0a1eb29306982fd77bdc64d324464a48a2b9 01-Mar-2011 James Dong <jdong@google.com> Get rid of redundant media profiles

bug - 3330679

Change-Id: Idc55aea32746c0c57552c5e15a289681421aa859
ediaProfiles.cpp
e2ce6458659c6e1bad420357b61dc10cd8bbe2ab 24-Feb-2011 Jamie Gennis <jgennis@google.com> Add an OMX IL API for querying buffer usage flags.

This change defines an OpenMAX IL API for querying from the IL component
the gralloc buffer usage flags that should be used to allocate the
buffers. It also adds the Stagefright plumbing for using the new OMX IL
API.

Change-Id: I046b5e7be70ce61e2a921dcdc6e3aa9324d19ea6
Related-Bug: 3479027
OMX.cpp
1173118eace0e9e347cb007f0da817cee87579ed 09-Feb-2011 Glenn Kasten <gkasten@google.com> Bug 3438258 Add SurfaceTexture as MediaPlayer sink

This change enables the use of a SurfaceTexture in place of a Surface
as the video sink for an android.media.MediaPlayer. The new API
MediaPlayer.setTexture is currently hidden.

This includes:
- New Java and C++ interfaces
- C++ plumbing and implementation (JNI, Binder)
- Stagefright AwesomePlayer and NuPlayer use ANativeWindow
(either Surface or SurfaceTextureClient)

Change-Id: I2b568bee143d9eaf3dfc6cc4533c1bebbd5afc51
ndroid.mk
MediaPlayer.cpp
ediaplayer.cpp
51b9a8b53eaa1a0188be95d4d6a749424787e0d6 23-Feb-2011 Gloria Wang <gwang@google.com> Merge "- Add method in MediaPlayerService to collect and pull codec usage (duration) for the battery app - Collect MediaPlayer decoding usage data"
7cf180c9bff69e5cc4a2f4e53b432db45ebbebab 20-Feb-2011 Gloria Wang <gwang@google.com> - Add method in MediaPlayerService to collect and pull
codec usage (duration) for the battery app
- Collect MediaPlayer decoding usage data

Change-Id: I0ef4e32b6a041ba1fe73c19f9c67185c61d03965
MediaPlayerService.cpp
f1d985081cff2a6aa2397c5341da8432db753211 22-Feb-2011 James Dong <jdong@google.com> Check file descriptor before passing it through binder calls

bug - 3476613

Change-Id: I858933fd2fe4c095c0bd58bf50344c47fc104be9
ediarecorder.cpp
6b2718c67aa7b1a8e3b0f25a73a0d5f72c59ffc3 04-Feb-2011 Glenn Kasten <gkasten@google.com> Bug 3352047 Wrong message when adjusting volume

Add hidden AudioManager.getDevicesForStream and output device codes.

Change-Id: I4d1c1d3b6a077cd117720817d1f733dda557b947
udioSystem.cpp
AudioPolicyService.cpp
eda6c364c253ba97ee45a3adeb8c2b45db1f81db 02-Feb-2011 Eric Laurent <elaurent@google.com> Fix issue 3371080

Modified default volume control logic in AudioService:
1 IN_CALL volume if in video/audio chat
2 NOTIFICATION if notification is playing or was playing less than 5s ago.
3 MUSIC

Modified silent mode:
- now also affect MUSIC stream type
- entering silent mode when VOL- hard key is pressed once while selected
stream volume is already at 0 (except for VOICE_CALL stream).
- exiting silent mode when pressing VOL+ hard key while in silent mode

Play sound FX (audible selections, keyboard clicks) at a fixed volume.

Modified audio framework:
- isStreamActive() method now implemented in AudioPolicyManagerBase (previously AudioFlinger)
- iStreamActive() now specifies a time window during which the stream is considered
active after it actually stopped.

Change-Id: I7e5a0724099450b9fc90825224180ac97322785f
udioSystem.cpp
AudioFlinger.cpp
AudioPolicyService.cpp
cce3a1107ef5bf9c8c8dbbaf922a2b33f24abfe6 29-Jan-2011 Marco Nelissen <marcone@google.com> am c929677e: Merge "Increase the number of useful bits in the spectrum." into gingerbread

* commit 'c929677e017759047d94599faa1b80ebe278fefb':
Increase the number of useful bits in the spectrum.
209821c7b7ead3ac58743d0a6d21dd05a2e77708 19-Jan-2011 Marco Nelissen <marcone@google.com> Increase the number of useful bits in the spectrum.

Change-Id: I3efc2ac8db689285566df35cb6f594aab41141db
isualizer.cpp
b391290130f263441334ee4525a5832f0bea2ef0 19-Jan-2011 Andreas Huber <andih@google.com> Make parameter blocks read/writable even for SET_PARAMETER/SET_CONFIG requests.

Refactor the logic a little.

Change-Id: Idd7a26678d846c96b0b11f096305e7467381bda3
OMX.cpp
95304d5488ba465f19cc788f1c7394218c2ea2d1 03-Dec-2010 James Dong <jdong@google.com> Squash commits of the following patches, cherry-picked from other branch - do not merge.

o Prepare for publishing MediaMetadataRetriever as public API
step one:
o replaced captureFrame with getFrameAtTime
o removed getMode

o Replace MediaMetadataRetriever.captureFrame() with MediaMetadataRetriever.getFrameAtTime()
as part of the preparation for publishing MediaMetadataRetriever as public Java API

o Remove captureFrame from MediaMetadataRetriever.java class
It has been replaced by getFrameAtTime() method

o Replace extractAlbumArt() with getEmbeddedPicture() in MediaMetadataRetriever.java

o Publish MediaMetadataRetriever.java as public API
o Removed setMode() methods and related mode constants
o Removed some of the unused the metadata keys
o Updated the javadoc
o part of a multi-project change.

bug - 3309041

Change-Id: I2efb6e8b8d52897186b016cb4efda6862f5584c4
MediaMetadataRetriever.cpp
ediametadataretriever.cpp
7f7d52ac18dfc3c6d8f6267dad29306613e9bd0e 06-Jan-2011 James Dong <jdong@google.com> Publish MediaMetadataRetriever.java as public API

o Removed setMode() methods and related mode constants
o Removed some of the unused the metadata keys
o Updated the javadoc

o part of a multi-project change.

bug - 2433195

Change-Id: I5ed167f1fd6a53cb143b7dc385b149431d434438
MediaMetadataRetriever.cpp
ediametadataretriever.cpp
145e68fc778275963189b02a1adcbe27cce4d769 12-Jan-2011 Andreas Huber <andih@google.com> Increase cache size and low-watermark threshold, also

MediaPlayer now sends out MEDIA_INFO,MEDIA_INFO_VIDEO_TRACK_LAGGING messages
to the JAVA client informing it how much (if at all) the video lags behind
audio (arg2 is the media delay in ms).

Change-Id: I6933f573d8597a35112e4b5ee0fcb826a7f6ddd1
related-to-bug: 3335220
ediaplayer.cpp
3e9f9f1596d4225ddd9288b4f7b24a15221374dc 16-Dec-2010 Mike Lockwood <lockwood@android.com> MediaScanner: Add support for scanning empty directories

Currently the media scanner does not create database entries for directories
unless they contain a file that is scanned.
Fixing this so we provide a consistent view of the world to MTP.

Change-Id: Ia776acfeae23192183e7192d63cdc34d830ea889
Signed-off-by: Mike Lockwood <lockwood@android.com>
ediaScanner.cpp
0f01764099d7a65b8921725df3340140f9fc4cd5 16-Dec-2010 Eric Laurent <elaurent@google.com> Fix issue 2712130: Sholes: problem when playing audio while recording over bluetooth SCO.

The problem is that when an input stream is opened for record over bluetooth SCO, the kernel
mono audio device should be opened in RW mode to allow further use of this same device by an output stream
also routed to bluetooth SCO.
This does not happen because of a bug in AudioSystem::isBluetoothScoDevice() that does not return true
when the device is DEVICE_IN_BLUETOOTH_SCO_HEADSET (input device for blurtooth SCO).

Change-Id: Ic78bf324b4a68e65721d763dc7682ce7a8f14f75
udioSystem.cpp
14acc736e336cbd6026df781d4f411e908831815 06-Dec-2010 Andreas Huber <andih@google.com> API Support for both synchronous and queued commands, optionally associated metadata.

Change-Id: Idb90d64cb638942210c5822b3cba2f05b087d601
ndroid.mk
StreamSource.cpp
16afe2fb439cab6125bb46a07a8078d4ce1c1ea5 03-Dec-2010 James Dong <jdong@google.com> Prepare for publishing MediaMetadataRetriever as public API

step one:
o replaced captureFrame with getFrameAtTime
o removed getMode

bug - 2433195

Change-Id: I38a8cecef29014692f0b08b8818326e3ebb40a12
MediaMetadataRetriever.cpp
ediametadataretriever.cpp
c75872920cd2de02d04bdc132ad5cf6d78c0578f 01-Dec-2010 Chia-chi Yeh <chiachi@android.com> am 4f93f08d: am 683a7ff9: Merge "Visualizer: Fix the conversion from 8-bit sample to 16-bit sample." into gingerbread

* commit '4f93f08d8c8b8067ff2176d9ec15c76c0e4cc0c2':
Visualizer: Fix the conversion from 8-bit sample to 16-bit sample.
ecd0a4f0b5bdd51bc35097b402202d6349f016ba 30-Nov-2010 Chia-chi Yeh <chiachi@android.com> am 683a7ff9: Merge "Visualizer: Fix the conversion from 8-bit sample to 16-bit sample." into gingerbread

* commit '683a7ff922409d2aa6c944bc4e08de32029e80e5':
Visualizer: Fix the conversion from 8-bit sample to 16-bit sample.
879e9cb6b4e8b09a5c7d4942ce36125193deadde 30-Nov-2010 Chia-chi Yeh <chiachi@android.com> Merge "Visualizer: Fix the conversion from 8-bit sample to 16-bit sample." into gingerbread
e2b1028852120bcfded33b8f06f66b780437fe92 23-Nov-2010 Andreas Huber <andih@google.com> Support streaming data across binder boundaries.

Change-Id: Ifbac61406dcb81343765f99ccba08bd90f9274cc
ndroid.mk
MediaPlayerService.cpp
StreamSource.cpp
f5aafb209d01ba2ab6cb55d1a12cfc653e2b4be0 18-Nov-2010 Eric Laurent <elaurent@google.com> Fix issue 3157123.

Use a Mutex wherever atomic operations were used in AudioTrack,
AudioRecord, AudioFlinger and AudioEffect classes.

Change-Id: I6f55b2cabdcd93d64ef19446735b8f33720f8dbc
udioEffect.cpp
udioRecord.cpp
udioTrack.cpp
a1680bce73ea1b051cc92e0df651a53944b104ee 18-Nov-2010 James Dong <jdong@google.com> Fix an issue wherre error notification will not be sent after mediaplayer reset

bug - 3198642

Change-Id: Ieab13e12af9fdd0ad0873c522885e1350e7cd24c
ediaplayer.cpp
0a5ca668c6f7d45706e9aec4a1dfec0aacc6d233 16-Nov-2010 Andreas Huber <andih@google.com> Remove all traces of legacy renderer support in stagefright.

Change-Id: I17b8e0dbf53fca37c96830c41131b4bc0c24ca6d
MediaPlayer.cpp
OMX.cpp
ediaplayer.cpp
56ecd20263d7f63476f756fc5d8b043b325c7bfb 09-Nov-2010 Jean-Michel Trivi <jmtrivi@google.com> Add support for audio recording source in generic audio policy mgr.

Update the platform-independent audio policy manager to pass the
nature of the audio recording source to the audio policy client
interface through the AudioPolicyClientInterface::setParameters()
method.

Change-Id: I6b4fd0f8a3acea0d7d30bbad98edd1977dc012bf
udioSystem.cpp
3baff73198ce852fa60080bd32703028298b4d65 08-Nov-2010 Andreas Huber <andih@google.com> resolved conflicts for merge of 31dc911a to gingerbread-plus-aosp

Change-Id: I2f51b2120b3c552566d91a7dc498a5e8b130205f
85d9b4225d024bb0d602b48bd6d5219cbebd7b8e 04-Nov-2010 Andreas Huber <andih@google.com> Support post-decode video rotation.

Change-Id: Ia371316e73a57e44610de86adce3eaa560afbf84
OMX.cpp
6b6a736ec71c692c165952fe653a7766075e94bb 01-Nov-2010 Chia-chi Yeh <chiachi@android.com> Visualizer: Fix the conversion from 8-bit sample to 16-bit sample.

Change-Id: Ie6d77b0f61a37333e05cdcdb6ef29d6f6c345a9d
isualizer.cpp
05ea6434ed399395e2dbe9f68abb44f04b274cb0 29-Oct-2010 Andreas Huber <andih@google.com> Squashed commit of the following:

commit 0d5694ba2d399dd0869532a4d6256448185a1be0
Author: Andreas Huber <andih@google.com>
Date: Fri Oct 29 11:59:23 2010 -0700

suspend() and resume() methods on VideoView are back but don't do anything.

They need to be back because they were public before.

Change-Id: Iddfd1021ffcf341f26e8d55ba761fd33701e2425

commit 16192891ed7d349ee97e47d1729d20a2d0d247b8
Author: Andreas Huber <andih@google.com>
Date: Fri Oct 29 11:47:05 2010 -0700

Revert "New API on VideoView widget to suspend/resume a session. Do not release the MediaPlayer client for video suspending/resuming."

This reverts commit 2e1818a4d16c3309660f27286c77d8d1eee95a25.

Conflicts:

api/current.xml

Change-Id: I68dd1d05871044faf3f832d0838aa40bc7f890e5

commit 8f934dc1a3ae4e60f0790fcf97671e063fa20fad
Author: Andreas Huber <andih@google.com>
Date: Fri Oct 29 11:44:16 2010 -0700

Revert "Release mediaplayer if the current state is not suspending. Fix for bug 2480093."

This reverts commit efb882cf75eef39ecaf9f8920ed302a019fa629f.

commit f2ed03550887986f39d36b5dabcd9e919949c7cf
Author: Andreas Huber <andih@google.com>
Date: Fri Oct 29 11:44:08 2010 -0700

Revert "Release MediaPlayer if suspend() returns false."

This reverts commit 047212fd4ea360675e94d3ce83c7f5544f65b268.

commit 441ecce678bd24e9660a72c8627b5bd94433ff8b
Author: Andreas Huber <andih@google.com>
Date: Fri Oct 29 11:40:46 2010 -0700

manually.

Change-Id: I4fdd43c9f7c8b3eedddb31a196da4984e1c58e87

Change-Id: I60d4b10e7a9e4ed8d9a796f1711618f557eb6e89
MediaPlayer.cpp
ediaplayer.cpp
e870772a78ffe08b1c14a791e368f1499f1be0f3 21-Oct-2010 James Dong <jdong@google.com> OMX extension to support storing meta data in video input buffers during recording

bug - 3042125

Change-Id: I7543809fa4ff61d48da35eec6c2bd5eaa7e8cead
OMX.cpp
8ac0cb9dc8a46f9b2badabc91cb5f7871e2215a9 18-Oct-2010 Jean-Baptiste Queru <jbq@google.com> Merge fb474872 from gingerbread-plus-aosp

Change-Id: I1bbb845a86a7b7df44ea175df3af22e5f47c44e3
06fa2bcce5dd80b406a23f980d8c9fac1524ebfd 16-Oct-2010 Andreas Huber <andih@google.com> am b04f356d: Merge "Include the framework copy of the OpenMAX headers instead of referencing external/opencore." into gingerbread

Merge commit 'b04f356d86eec74217fca8e3b85d801c4fcaa678' into gingerbread-plus-aosp

* commit 'b04f356d86eec74217fca8e3b85d801c4fcaa678':
Include the framework copy of the OpenMAX headers instead of referencing external/opencore.
56cfa2376ae87cba730ea7ce4a9e0ca4f0d07627 15-Oct-2010 Andreas Huber <andih@google.com> Include the framework copy of the OpenMAX headers instead of referencing external/opencore.

Change-Id: I762f59acf5e1f770e4d7c2d89af362bfffebefa6
related-to-bug: 3101573
ndroid.mk
3e8742fa4a5f0f8b185274763f6ec4e6c3a89344 15-Oct-2010 Andreas Huber <andih@google.com> am 27c7fb1a: am 90d59d18: Merge "Metadata.cpp and Metadata.java had drifted out of sync. This change remedies that." into gingerbread

Merge commit '27c7fb1a861776b4fdc2632697e4e25eee83617f'

* commit '27c7fb1a861776b4fdc2632697e4e25eee83617f':
Metadata.cpp and Metadata.java had drifted out of sync. This change remedies that.
f9f083e2853740c97588f4db82c24645ae5880e4 15-Oct-2010 Kenny Root <kroot@google.com> resolved conflicts for merge of a127c07c to master

Change-Id: Ifdfc6681cba00f36456eaf7a97f34a75b9d0c086
8cde59da2dd8540466aff5e94e9a6e5f74df1f10 14-Oct-2010 Andreas Huber <andih@google.com> am 90d59d18: Merge "Metadata.cpp and Metadata.java had drifted out of sync. This change remedies that." into gingerbread

Merge commit '90d59d180bd963f00161e6bfaabfda432960cab6' into gingerbread-plus-aosp

* commit '90d59d180bd963f00161e6bfaabfda432960cab6':
Metadata.cpp and Metadata.java had drifted out of sync. This change remedies that.
2959a5a5b4d151e14da3abe0289c15693409eb84 14-Oct-2010 Andreas Huber <andih@google.com> Metadata.cpp and Metadata.java had drifted out of sync. This change remedies that.

Change-Id: I48175666857ab0fb1519777bdb6f7f0b6b5cc599
related-to-bug: 3073955
etadata.cpp
e4edd632d48720b44f7878273f46d192d5703150 13-Oct-2010 Andreas Huber <andih@google.com> am 312644cd: Merge "Support for writing to MPEG2 transport stream files." into gingerbread

Merge commit '312644cdbb39522fe9cac028b15b907ce0e8e0f7' into gingerbread-plus-aosp

* commit '312644cdbb39522fe9cac028b15b907ce0e8e0f7':
Support for writing to MPEG2 transport stream files.
59b7dc39ea8332d3418a599e51447d7edb612ac4 12-Oct-2010 Andreas Huber <andih@google.com> Support for writing to MPEG2 transport stream files.

Change-Id: If3b7a807bc224a4b1cb2236537c3ebdc5aee0d97
ediarecorder.cpp
2eeadf9ded4b5770a713496e9887d668889987bc 11-Oct-2010 Eric Laurent <elaurent@google.com> am 4f21e517: am b37fcbfd: Merge "Added getter for session Id to AudioSink" into gingerbread

Merge commit '4f21e517d09b9d793d20d64547df330fba705b3c'

* commit '4f21e517d09b9d793d20d64547df330fba705b3c':
Added getter for session Id to AudioSink
74684081846ee6e68325fa5aba5c45b7447fd368 08-Oct-2010 Eric Laurent <elaurent@google.com> am b37fcbfd: Merge "Added getter for session Id to AudioSink" into gingerbread

Merge commit 'b37fcbfd7f9d65b90b43e0242903030c5a6517b5' into gingerbread-plus-aosp

* commit 'b37fcbfd7f9d65b90b43e0242903030c5a6517b5':
Added getter for session Id to AudioSink
8c563ed9ca8a863a66965330b5d14bb4b4ab59d4 08-Oct-2010 Eric Laurent <elaurent@google.com> Added getter for session Id to AudioSink

Added a method to expose the audio session id at AudioSink interface
so that the AudioPlayer in stagefright can retrieve it.

Also:
- Fixed audio effect send level not being initialized in mediaplayer.
- Fixed compilation error when LOGV is enabled in mediaplayer JNI

Change-Id: I4bb55454fd63d646e0e677692d737c4843fb05fb
ediaplayer.cpp
9ad6e8bd9fab860e639f6ce95479e4b2a9b03ff5 01-Oct-2010 Eric Laurent <elaurent@google.com> am de12c3cf: am 220ab887: Merge "Issue 3032913: improve AudioTrack recovery time" into gingerbread

Merge commit 'de12c3cf56e3f27b2efc60eeae8b5e422747f2b9'

* commit 'de12c3cf56e3f27b2efc60eeae8b5e422747f2b9':
Issue 3032913: improve AudioTrack recovery time
b3788b6d0f5a003d3d3e621ad605e2f3f4cb11e8 01-Oct-2010 Eric Laurent <elaurent@google.com> am 220ab887: Merge "Issue 3032913: improve AudioTrack recovery time" into gingerbread

Merge commit '220ab8877b234e6807b7f6d9028ba55d23220301' into gingerbread-plus-aosp

* commit '220ab8877b234e6807b7f6d9028ba55d23220301':
Issue 3032913: improve AudioTrack recovery time
44d9848d6656777a18019223e0d35f2fcc67719a 01-Oct-2010 Eric Laurent <elaurent@google.com> Issue 3032913: improve AudioTrack recovery time

This issue showed that when an AudioTrack underruns during a too long period
of time and is therefore disabled by audioflinger mixer, it takes an additional
delay of up to 3 seconds to recover.
This fix adds a simple mechanism to recover immediately when the client application
is ready to write data again in the AudioTrack buffer

Also throttle warnings on record overflows

Change-Id: I8b2c71578dd134b9e60a15ee4d91b70f3799cb3d
udioTrack.cpp
c425ffbfdca80c663b16a875228c15a1147a75f4 27-Sep-2010 Eric Laurent <elaurent@google.com> am 1b37df95: am 9627847d: Merge "Fix error in AudioEffect command status reporting." into gingerbread

Merge commit '1b37df95ec9d03aaa5f4055c6cd86db42f9c9727'

* commit '1b37df95ec9d03aaa5f4055c6cd86db42f9c9727':
Fix error in AudioEffect command status reporting.
da4b9bdd4682fb3a20964908cb18d02c943b7f35 27-Sep-2010 Eric Laurent <elaurent@google.com> am 9627847d: Merge "Fix error in AudioEffect command status reporting." into gingerbread

Merge commit '9627847d588cd969f60dcc79d165209184a90069' into gingerbread-plus-aosp

* commit '9627847d588cd969f60dcc79d165209184a90069':
Fix error in AudioEffect command status reporting.
0fa449cc475580d995e9d56756c3da5507d2b6f6 24-Sep-2010 Eric Laurent <elaurent@google.com> Fix error in AudioEffect command status reporting.

AudioEffect::command() should not interpret the status
returned in pReplyData unless the command is ENABLE or
DISABLE.

Also fixed:
- bug in Visualizer::getWAveForm() status reporting.
- wrong initialization value for capture buffer in visualizer engine.

Change-Id: I60fb0011f9dba96ee74661dec1e8ef441edcaf35
udioEffect.cpp
isualizer.cpp
d44b51d9fcb0b5d891d2abece83a551e71ebb73b 18-Sep-2010 Marco Nelissen <marcone@google.com> am 5c9f3579: am f30fae63: Merge "Add a check to track a problem the monkey script has been triggering." into gingerbread

Merge commit '5c9f35799422d818f34f814c76c2acd8c939a40c'

* commit '5c9f35799422d818f34f814c76c2acd8c939a40c':
Add a check to track a problem the monkey script has been triggering.
6901625dcb847871e23f04b9a282dc5d313a1d57 18-Sep-2010 Marco Nelissen <marcone@google.com> am f30fae63: Merge "Add a check to track a problem the monkey script has been triggering." into gingerbread

Merge commit 'f30fae63389a2216faf55636b95a08f35b5c3620' into gingerbread-plus-aosp

* commit 'f30fae63389a2216faf55636b95a08f35b5c3620':
Add a check to track a problem the monkey script has been triggering.
1c1503cf47c0a37a30e7acac2c5d29140fc61a5f 18-Sep-2010 Marco Nelissen <marcone@google.com> Add a check to track a problem the monkey script has been triggering.

Change-Id: If3896946d993cbab2442e17740f18efd7e753a3b
ediaplayer.cpp
d5672bc7162fa49abf9bb5844195887e911aa7ce 17-Sep-2010 Nipun Kwatra <nkwatra@google.com> Adding default profiles for specific levels.

The low and high profiles should each match one of the
specific profiles. So we need to add the specific profiles
corresponding to the low/high profiles. This makes the
default profile compliant to documentation + cts.

Also fixed javadoc to account time lapse profiles.

Change-Id: I34e7307d00ce261c69dc10ead2900025c7f6d428
ediaProfiles.cpp
c59ad085c9737e8d56328732be6864de302acae9 10-Sep-2010 Mike Lockwood <lockwood@android.com> Media scanner support for tracking files of arbitrary type.

The native media scanner no longer filters files based on file extension.
Audio, video, image and playlist files are handled as before, but non-media
files are now inserted into the "files" table, which was originally added
to support MTP.

Change-Id: I9053218fb6d2671a3bb181405c34442b94678afc
Signed-off-by: Mike Lockwood <lockwood@android.com>
ediaScanner.cpp
9783ed8f85af3d7c72030098acfed7e1d6638349 11-Sep-2010 Nipun Kwatra <nkwatra@google.com> Exposing specific profile levels + hasProfile().

- Exposing the specific resolution profile levels
QUALITY_{QCIF,CIF,480P,720P,1080P} and the new time lapse profiles
QUALITY_TIME_LAPSE_{LOW,HIGH,QCIF,CIF,480P,720P,1080P}
- Unhiding the hasProfile() function used to test if a given profile exists.

Change-Id: I5d8b9e1ba61718f304235e76d85244e428e68643
ediaProfiles.cpp
1a02fabca518806222212bdc708b36a37a7c3925 11-Sep-2010 Nipun Kwatra <nkwatra@google.com> Merge "Adding hasProfile."
a0d472f114bb6a74005aaf61e91e3569ae061630 10-Sep-2010 Nipun Kwatra <nkwatra@google.com> Merge "Added specific resolution and time lapse profiles."
8bb5603cc735315c8691dc9b7a81b4ad4d6e253e 10-Sep-2010 Nipun Kwatra <nkwatra@google.com> Adding hasProfile.

- Added hasProfile to CamcorderProfile and JNI.
- Added hasCamcorderProfile to MediaProfiles.
- using android.hardware.Camera.CAMERA_ID_DEFAULT for default camera
in get().

Change-Id: Ib57bb49ae79492d7cbc0ec6c7b6efcbf74f80013
ediaProfiles.cpp
c0a84782589eececdfa7e723e8aa0e572d0d79f5 07-Sep-2010 Nipun Kwatra <nkwatra@google.com> Added specific resolution and time lapse profiles.

- Added enums QUALITY_{QCIF,480P,720P,1080P}
QUALITY_TIME_LAPSE_{LOW,HIGH,QCIF,480P,720P,1080P} in CamcorderProfile
and corresponding ones in MediaProfiles.
- Added functions createDefaultCamcorderTimeLapseLowProfile,
createDefaultCamcorderTimeLapseHighProfile to set default values.
- Moved javadoc for constants to the get() function.

Change-Id: Ib8b3f8d29395dff77a397d1e6b44cfaf8c481d4d
ediaProfiles.cpp
83750eaf5a3f38c243a9e7eb81d4b2421e3a0d88 31-Aug-2010 Jamie Gennis <jgennis@google.com> Add the new Stagefright ANativeWindow OMX codec API.

This change defines the two OMX_SetParameter calls that enable OMX codecs to
interact with ANativeWindows. It also adds the plumbing to the IOMX, OMX, and
OMXNodeInstance classes to use these new APIs.

This is try 2 for this change, after reverting the first one because it broke
the build.

Change-Id: I94249b72bdb5d5719360f03d7935fcca4ece5028
OMX.cpp
9f2d258645826c999a93a4206df157fec2e3b0f2 01-Sep-2010 Jamie Gennis <jgennis@google.com> Revert "Merge "Add the new Stagefright ANativeWindow OMX codec API.""

This reverts commit 8a643b411e1802977f742709113ce01b06a18e12, reversing
changes made to 73ea9beaf8eb3d0027e78cbc0ac5e626c3f8deb4.
OMX.cpp
9dd4931cca8e4a2fcbcabf4eb7078648e1c029cd 01-Sep-2010 Jamie Gennis <jgennis@google.com> Merge "Add the new Stagefright ANativeWindow OMX codec API."
559dc605bfe2deb73ad718e0d5c5dc55e27c45df 31-Aug-2010 Jamie Gennis <jgennis@google.com> Add the new Stagefright ANativeWindow OMX codec API.

This change defines the two OMX_SetParameter calls that enable OMX codecs to
interact with ANativeWindows. It also adds the plumbing to the IOMX, OMX, and
OMXNodeInstance classes to use these new APIs.

Change-Id: Ibfbf893dc3513db0b3d3221bec5708c77287cddc
OMX.cpp
5d6aca5d86e86af3f8f597be573d4563d69ceb85 27-Aug-2010 Nipun Kwatra <nkwatra@google.com> Added setAuxiliaryOutputFile to MediaRecorder and JNI

added setAuxiliaryOutputFile to allow setting of an auxiliary output file.
Also added the JNI support.

Change-Id: I8c3335192bd6f7fcbfdfc8552cfd0848f2ad2a5d
MediaRecorder.cpp
ediarecorder.cpp
6865ddb29fc7e7a14104d73c65b71074502bb6c7 31-Aug-2010 Chia-chi Yeh <chiachi@android.com> am 1577e629: am 12006013: fixedfft: Only includes cpu-features.h when __arm__ is defined.

Merge commit '1577e629866b2700e31c9467478e05ebffcc69a1'

* commit '1577e629866b2700e31c9467478e05ebffcc69a1':
fixedfft: Only includes cpu-features.h when __arm__ is defined.
eebcf36cf2db2563af8ef479e01747321aa959e8 31-Aug-2010 Chia-chi Yeh <chiachi@android.com> am 12006013: fixedfft: Only includes cpu-features.h when __arm__ is defined.

Merge commit '12006013cc2cd0a076855ed068f5f782b24631c3' into gingerbread-plus-aosp

* commit '12006013cc2cd0a076855ed068f5f782b24631c3':
fixedfft: Only includes cpu-features.h when __arm__ is defined.
5edae619a6ad7337a3d14b53f7665ff17ec3ee84 30-Aug-2010 Chia-chi Yeh <chiachi@android.com> fixedfft: Only includes cpu-features.h when __arm__ is defined.

Change-Id: Ifb6c03b38eff3c94a507ceb5043fcc48b364c25c
ixedfft.cpp
e7c0899a7b7549ea342af67e7ab525f81672cfa5 25-Aug-2010 Eric Laurent <elaurent@google.com> am 74ede9e4: am 67b50606: Merge "Fix the simulator build." into gingerbread

Merge commit '74ede9e4fd3f5ab3c139abd95a22abf9f33c2d64'

* commit '74ede9e4fd3f5ab3c139abd95a22abf9f33c2d64':
Fix the simulator build.
dd8b35d2f7911bb1e12010f143c5b8c1b621f2ed 25-Aug-2010 Eric Laurent <elaurent@google.com> am 67b50606: Merge "Fix the simulator build." into gingerbread

Merge commit '67b506065e9fe3c56e3d1b47eedfa01170d574f9' into gingerbread-plus-aosp

* commit '67b506065e9fe3c56e3d1b47eedfa01170d574f9':
Fix the simulator build.
625981ec8417528cbea67c86dcbe32a9e79a79be 25-Aug-2010 Eric Laurent <elaurent@google.com> Fix the simulator build.

Fixes the sim build broken by commit 58d3bd08107f44cba79938dd8430e69c0fda4202.

Change-Id: I5a63623363d558783dc5254fdd322080cc2f3525
ixedfft.cpp
ef6c8c0324be75dfac3d6a4025ec3b3a7ca23826 24-Aug-2010 Chia-chi Yeh <chiachi@android.com> am a102871c: am b80e610b: Merge "Visualizer: replace the FFT implementation with a faster one." into gingerbread

Merge commit 'a102871c7cbb74ebddc53231a871145de61351b0'

* commit 'a102871c7cbb74ebddc53231a871145de61351b0':
Visualizer: replace the FFT implementation with a faster one.
4b79168835965cf0fc41ebe2a367e22b4cb20d08 11-Aug-2010 Jamie Gennis <jgennis@google.com> Change the framework to use the new camera preview path.

This change makes the camera HAL interface take an ANativeWindow interface from
which all the camera preview buffers will be allocated. The framework code
running in application processes now passes a Surface object rather than an
ISurface to the camera server via Binder when setting the preview surface. The
camera server then forwards that Surface object (which implements the
ANativeWindow interface) to the camera HAL, which uses it to communicate with
SurfaceFlinger to allocate the camera preview buffers.

Change-Id: Ie438f721559cd7de5e4f848a26d96360dda07b5f
MediaRecorder.cpp
ediarecorder.cpp
5daeb129a2c2ba3d14ccd94af283b5f561c783ea 16-Aug-2010 Andreas Huber <andih@google.com> Squashed commit of the following:

commit 35cc68814a9537c31fde146e171e7b0bbdfe211e
Author: Andreas Huber <andih@google.com>
Date: Mon Aug 16 08:48:42 2010 -0700

Only enable support for yuv to yuv conversion on passion, where it's available, use the slower yuv->rgb565 path everywhere else.

commit d8ac5a8814103e60d11d2acf61997fc31a1dc58d
Author: Andreas Huber <andih@google.com>
Date: Fri Aug 13 13:56:44 2010 -0700

The software renderer takes over all rendering, converting from yuv to yuv if possible and rgb565 otherwise.

commit 684972074b74318bdcb826ed9b5b0864d2d2e273
Author: Andreas Huber <andih@google.com>
Date: Fri Aug 13 09:34:35 2010 -0700

A first shot at supporting the new rendering APIs.

Change-Id: Iea9b32856da46950501f1a700f616b5feac710fd
MediaPlayer.cpp
ediaplayer.cpp
7be0434ce8d4139e9ca4b1f374153de0c75ac049 23-Aug-2010 Chia-chi Yeh <chiachi@android.com> am b80e610b: Merge "Visualizer: replace the FFT implementation with a faster one." into gingerbread

Merge commit 'b80e610b070c2cec98a228a8aec450dc24a5f90a' into gingerbread-plus-aosp

* commit 'b80e610b070c2cec98a228a8aec450dc24a5f90a':
Visualizer: replace the FFT implementation with a faster one.
dbd2b7e4ebfe7a586b1db4459cf6aa032a7f8719 19-Aug-2010 Chia-chi Yeh <chiachi@android.com> Visualizer: replace the FFT implementation with a faster one.

This implementation uses fixed points instead of floating points. It
is slightly inaccurate compared to the old one but still perfect for
visualization purpose. It runs 40% faster on passion, 5 times faster
on sholes, and of course 14 times faster on sapphire.

Change-Id: I1e868417bcffda091becf106a7b941d02813faec
ndroid.mk
isualizer.cpp
ixedfft.cpp
4a3935898893f955403021fe41cf2bfa3a32dde2 18-Aug-2010 Jean-Baptiste Queru <jbq@google.com> resolved conflicts for merge of 0b7bd95d to gingerbread-plus-aosp

Change-Id: I55c1689c7d0737c943efec28d8164d6a5360621c
f1a97e53a58f47afa17a9b0d3a5cc9abf7e5ed19 17-Aug-2010 Rene Bolldorf <xsecute@googlemail.com> Fix compilation errors in libmedia, libstagefright.
(invalid conversion from 'const char*' to 'char*')

Change-Id: Idef85606b7cff629b2778ed8134c79c892af54c2
ediaScanner.cpp
2dac90da3ea5120b52844a6ee38c300301de5756 12-Aug-2010 James Dong <jdong@google.com> am 0386d04b: am 581581fe: Merge "Fix all fd leaks in authoring engine" into gingerbread

Merge commit '0386d04b19619b03b6bce830010e11d31d3f8a5c'

* commit '0386d04b19619b03b6bce830010e11d31d3f8a5c':
Fix all fd leaks in authoring engine
25d83125cee222993673d3ba261ae1186bcad8c2 12-Aug-2010 James Dong <jdong@google.com> Fix all fd leaks in authoring engine

Change-Id: I17798543f9dd41cc8bef6f6086e66932f9f97be8
MediaRecorder.cpp
bc417c0531332635df9525df4683274a08fb987f 10-Aug-2010 Eric Laurent <elaurent@google.com> am 1ece7d68: am 2a6b80bc: Fixed several audio effects problems.

Merge commit '1ece7d6873027068a3e7b055597045e9387b217c'

* commit '1ece7d6873027068a3e7b055597045e9387b217c':
Fixed several audio effects problems.
8569f0d3bf4c6787707e348a7cf73b9c4199cb32 30-Jul-2010 Eric Laurent <elaurent@google.com> Fixed several audio effects problems.

- Fixed constant inversions in AudioEffect.java
- Do not return error when enabling an already enabled effect
- Update cached effect state in native AudioEffect class when effect is enabled/disabled by command() method
- Remove click when restarting effect during disable sequence
- Fixed problem in master mute management when volume control is delegated to effect.

Change-Id: I6df4ce9fcc54fdc7345df858f639d20d802d6712
udioEffect.cpp
982a93173bc84f005172152d823cbb59dfcbeb12 05-Aug-2010 Andreas Huber <andih@google.com> am 1f513d88: am c17f35dd: Merge "Support for Gtalk video, includes AMR/H.263 assembler and packetization support, extensions to MediaRecorder to stream via RTP over a pair of UDP sockets as well as various fixes to the RTP implementation." into gingerbread

Merge commit '1f513d8821670a33d6361ea521b6756163a3f9bf'

* commit '1f513d8821670a33d6361ea521b6756163a3f9bf':
Support for Gtalk video, includes AMR/H.263 assembler and packetization support, extensions to MediaRecorder to stream via RTP over a pair of UDP sockets as well as various fixes to the RTP implementation.
aa68b49a53a874a1813e65752663f19d18149e2c 05-Aug-2010 Eric Laurent <elaurent@google.com> am eec3fca6: am 7629e8dd: Merge "Fix issue 2876124." into gingerbread

Merge commit 'eec3fca6277296f354ee2b1af0f4b3dceddb3067'

* commit 'eec3fca6277296f354ee2b1af0f4b3dceddb3067':
Fix issue 2876124.
39ddf8e0f18766f7ba1e3246b774aa6ebd93eea8 04-Aug-2010 Andreas Huber <andih@google.com> Support for Gtalk video, includes AMR/H.263 assembler and packetization support, extensions to MediaRecorder to stream via RTP over a pair of UDP sockets as well as various fixes to the RTP implementation.

Change-Id: I95b8dd487061add9bade15749e563b01cd99d9a6
ediarecorder.cpp
3b26844e60f8487388e7e62709faf0dada86e7e1 03-Aug-2010 Eric Laurent <elaurent@google.com> Fix issue 2876124.

Allow calls to MediaPlayer::notify() in idle state to signal errors from JNI.

Change-Id: I1515fe69766f0a926b76e15c4971317da2acd6a0
ediaplayer.cpp
9da2070b6d6d20550de7da61478c325f0928d020 30-Jul-2010 Jean-Baptiste Queru <jbq@google.com> resolved conflicts for merge of 27eecb70 to gingerbread

Change-Id: If064f2f4950fc1a4ff38e6927fe2120af76b26f1
bc286dce1af6670824fba4167e0750b631168d72 30-Jul-2010 Jean-Baptiste Queru <jbq@google.com> am 0c51c98f: am 4506c62a: fix inaccurate copyrights

Merge commit '0c51c98fd9edf0bdc8f2c567470fc332b5ae3adf'

* commit '0c51c98fd9edf0bdc8f2c567470fc332b5ae3adf':
fix inaccurate copyrights
0319aaecb03aa83924ab4e3d9c9bc657c2e8bc06 30-Jul-2010 Jean-Baptiste Queru <jbq@google.com> am 4506c62a: fix inaccurate copyrights

Merge commit '4506c62abd5767d6d42a97e8e87793a1b3bcb625' into gingerbread-plus-aosp

* commit '4506c62abd5767d6d42a97e8e87793a1b3bcb625':
fix inaccurate copyrights
68335fdd6e9c1d622384612605d6952503cb7fd0 30-Jul-2010 Jean-Baptiste Queru <jbq@google.com> fix inaccurate copyrights

Change-Id: I33b0f68f2da34ca4728211d83159cf32a127f6dd
MediaRecorder.cpp
01cff464978aa0f749f42650180b45ea56cb17de 30-Jul-2010 Jean-Baptiste Queru <jbq@google.com> fix inaccurate copyrights

Change-Id: I33b0f68f2da34ca4728211d83159cf32a127f6dd
MediaRecorder.cpp
ed0de3c123aaa86147993721d4794648a65aab75 28-Jul-2010 Eric Laurent <elaurent@google.com> am 6fa88882: am 62d83a0c: Merge "Audio effects: modified command() parameter types." into gingerbread

Merge commit '6fa8888254deb4961dc64c6ac03dc103c9cd8bcf'

* commit '6fa8888254deb4961dc64c6ac03dc103c9cd8bcf':
Audio effects: modified command() parameter types.
25f4395b932fa9859a6e91ba77c5d20d009da64a 28-Jul-2010 Eric Laurent <elaurent@google.com> Audio effects: modified command() parameter types.

The type of the cmd, cmdSize and *pReplySize parameters of the effect control interface command()
function have been modified from int to uint32_t. This is more consistent with their role.

Change-Id: I84d289fc262d6753747910f06f485597dfee6591
udioEffect.cpp
Effect.cpp
EffectClient.cpp
isualizer.cpp
71ff94cb52874e42dede3c6bc4b86757b72cf0b1 21-Jul-2010 Eric Laurent <elaurent@google.com> am 34161132: am 7070b365: Added support for auxiliary audio effects to AudioTrack and MediaPlayer.

Merge commit '34161132030254bac7dd64c9713832e2f961a061'

* commit '34161132030254bac7dd64c9713832e2f961a061':
Added support for auxiliary audio effects to AudioTrack and MediaPlayer.
2beeb50b1bba9e92f6cacfeca37fe9fa9d36ead1 16-Jul-2010 Eric Laurent <elaurent@google.com> Added support for auxiliary audio effects to AudioTrack and MediaPlayer.

Added methods to AudioTrack and MediaPlayer java classes to enable use of
auxiliary audio effects. The effect can be attached and detached by specifying its
ID and the send level controlled.

Change-Id: Ie74ff54a453096a742688476f612ce355543b6f3
udioTrack.cpp
MediaPlayer.cpp
ediaplayer.cpp
8184a5734690b30f4de0f6b6c16daf1e089f67df 20-Jul-2010 Eric Laurent <elaurent@google.com> resolved conflicts for merge of dd206093 to master

Change-Id: I21dd2321a4839d034d49092baccbf40986f17dae
de070137f11d346fba77605bd76a44c040a618fc 13-Jul-2010 Eric Laurent <elaurent@google.com> Audio policy manager changes for audio effects

Added methods for audio effects management by audio policy manager.
- control of total CPU load and memory used by effect engines
- selection of output stream for global effects
- added audio session id in parameter list for startOutput() and stopOutput().
this is not used in default audio policy manager implementation.

Modifications of audio effect framework in AudioFlinger to allow moving and reconfiguring
effect engines from one output mixer thread to another when audio tracks in the same session
are moved or when requested by audio policy manager.
Also fixed mutex deadlock problem with effect chains locks.

Change-Id: Ida43484b06e9b890d6b9e53c13958d042720ebdb
udioSystem.cpp
AudioFlinger.cpp
AudioPolicyService.cpp
4e2ffa400b82559cab2c5717c8dcdff393d334a9 15-Jul-2010 Mike Lockwood <lockwood@android.com> Fixes for simulator build on lucid

strchr and strrchr now return const char* instead of char*

Change-Id: I5ca831b8951af7e6306eb9d9d6f78ed2ec13d649
Signed-off-by: Mike Lockwood <lockwood@android.com>
ediaScanner.cpp
66e6c1c85c33194b1a6fc5077bd78b53a5fe9d03 09-Jul-2010 Jean-Michel Trivi <jmtrivi@google.com> am bd3f8b71: am e7b790f1: Merge "Fix swap of sessionId and output in audio effect API." into gingerbread

Merge commit 'bd3f8b711643a172703537e34a0fa7c21c5b953f'

* commit 'bd3f8b711643a172703537e34a0fa7c21c5b953f':
Fix swap of sessionId and output in audio effect API.
42a050ff9636b79e4b91297cc41028ffd62240d5 09-Jul-2010 Jean-Michel Trivi <jmtrivi@google.com> Fix swap of sessionId and output in audio effect API.

Change-Id: Idc93415efef92087507401e50cfb235a6f1f7ed7
udioEffect.cpp
6506bd2be256cdebc69324714c5b26c767981046 08-Jul-2010 Eric Laurent <elaurent@google.com> am b91881fd: am dacabf97: Merge "Added Visualizer effect." into gingerbread

Merge commit 'b91881fdd1608cc922f105ec552b5505da1fecb9'

* commit 'b91881fdd1608cc922f105ec552b5505da1fecb9':
Added Visualizer effect.
6c5c25fae5aa68a52c6fa75649dd559a9ca98932 08-Jul-2010 Eric Laurent <elaurent@google.com> Merge "Added Visualizer effect." into gingerbread
da7581b7b61b84f15e8d671c86fd117c322b009e 02-Jul-2010 Eric Laurent <elaurent@google.com> Added Visualizer effect.

The visualizer enables application to retrieve part of the currently playing audio for visualization purpose.
It is not an audio recording interface and only returns partial and low quality audio content as a waveform or
a frequency representation (FFT).

Removed temporary hack made in MediaPlayer for animated wall papers based on audio visualization (snoop() method.

This commit also includes a change in AudioEffect class:
- the enable()/disable() methods have been replaced bya more standard setEnabled() method.
- some fixes in javadoc

Change-Id: Id092a1340e9e38dae68646ade7be054e3a36980e
ndroid.mk
udioEffect.cpp
MediaPlayerService.cpp
isualizer.cpp
ediaplayer.cpp
c143929b9f40112bb75eefbeafd6a56515868c9d 01-Jul-2010 Chih-Chung Chang <chihchung@google.com> am bda93c4c: am 09b90057: Add multiple camera support for in MediaProfiles.

Merge commit 'bda93c4cb94b47c86251d22df16e46a514c191ef'

* commit 'bda93c4cb94b47c86251d22df16e46a514c191ef':
Add multiple camera support for in MediaProfiles.
3eaa4e92dbebb5b27cb89f329f31fac6fb6fe1f0 22-Jun-2010 Chih-Chung Chang <chihchung@google.com> Add multiple camera support for in MediaProfiles.

Change-Id: Ie89568a0f5f5fd08ede77e33f9a559215d6bed9a
ediaProfiles.cpp
1c645f22ab7e56a04659c09ffa2ca2de20650ddc 29-Jun-2010 James Dong <jdong@google.com> am c2c59f69: am 2a76b316: Merge "Separate MediaRecorderClient with MediaPlayerClient" into gingerbread

Merge commit 'c2c59f690deafe34c7701b01b612fd777cee8d4b'

* commit 'c2c59f690deafe34c7701b01b612fd777cee8d4b':
Separate MediaRecorderClient with MediaPlayerClient
37047fceba836f341d0108beed0991b0f8dfc543 26-Jun-2010 James Dong <jdong@google.com> Separate MediaRecorderClient with MediaPlayerClient

- An alternative would be to define a common base class that
both MediaRecorderClient and MediaPlayerClient can derive.
But since the common code, onTransact() and notify() uses
some Binder code, having a common base class may not gain
us too much in terms of code reuse.

Change-Id: Ibc06720278ad173fceacff3d267b7060856c6316
ndroid.mk
MediaRecorder.cpp
MediaRecorderClient.cpp
a93b488457b8d7dd17a1d80c82a9accafcdd8bad 25-Jun-2010 Eric Laurent <elaurent@google.com> am cdf1357b: am 8e103da1: Merge "Various fixes and improvements in audio effects implementation" into gingerbread

Merge commit 'cdf1357b6e0152280dcd611b5f096db4887d8126'

* commit 'cdf1357b6e0152280dcd611b5f096db4887d8126':
Various fixes and improvements in audio effects implementation
ffe9c25ce85e1af55d58ec025adc6367d70db7e8 24-Jun-2010 Eric Laurent <elaurent@google.com> Various fixes and improvements in audio effects implementation

Effect API:
- Use different definitions for audio device, channels, formats... in AudioSystem and EffectApi:
Removed media/AudioCommon.h file created for initial version of EffectApi
- Indicate audio session and output ID to effect library when calling EffectCreate(). Session ID can be useful to optimize
the implementation of effect chains in the same audio session. Output ID can be used for effects implemented in audio hardware.
- Renamed EffectQueryNext() function to EffectQueryEffect() and changed operating mode:
now an index is passed for the queried effect instead of implicitly querying the next one.
- Added CPU load and memory usage indication in effects descriptor
- Added flags and commands to indicate changes in audio mode (ring tone, in call...) to effect engine
- Added flag to indicate hardware accelerated effect implementation.
- Renamed EffectFactoryApi.h to EffectsFactoryApi.h for consistency with EffectsFactory.c/h

Effect libraries:
- Reflected changes in Effect API
- Several fixes in reverb implementation
- Added build option TEST_EFFECT_LIBRARIES in makefile to prepare integration of actual effect library.
- Replaced pointer by integer identifier for library handle returned by effects factory

Audio effect framework:
- Added support for audio session -1 in preparation of output stage effects configuration.
- Reflected changes in Effect API
- Removed volume ramp up/down when effect is inserted/removed: this has to be taken care of by effect engines.
- Added some overflow verification on indexes used for deferred parameter updates via shared memory
- Added hardcoded CPU and memory limit check when creating a new effect instance

Change-Id: I43fee5182ee201384ea3479af6d0acb95092901d
udioEffect.cpp
AudioFlinger.cpp
ed914577e770697e23884886787e333588eb4c61 23-Jun-2010 Andreas Huber <andih@google.com> am 03e90f7e: am 58e9402b: Merge "Properly assign LOG_TAGs in OMXMaster.cpp and MediaScanner.cpp" into gingerbread

Merge commit '03e90f7eeb032c981fc2952aa33f6ba1fae20d97'

* commit '03e90f7eeb032c981fc2952aa33f6ba1fae20d97':
Properly assign LOG_TAGs in OMXMaster.cpp and MediaScanner.cpp
1a97e853e8f9fa3f4f47304d0e2e9118887e6051 23-Jun-2010 Eric Laurent <elaurent@google.com> am 845f5414: am 2c2ce8e5: Merge "Added support for audio sessions in MediaPlayer and AudioTrack." into gingerbread

Merge commit '845f541454d1fa9f328c0b0bf79acf2fba363177'

* commit '845f541454d1fa9f328c0b0bf79acf2fba363177':
Added support for audio sessions in MediaPlayer and AudioTrack.
4ae22516962e6d6727fc3e9ce646441708ed60a9 23-Jun-2010 Chia-chi Yeh <chiachi@android.com> am da9269af: am 3238302b: Merge "media: add AudioRecord::getMinFrameCount()." into gingerbread

Merge commit 'da9269af5e94e25c142c519429aa77eb40f68e58'

* commit 'da9269af5e94e25c142c519429aa77eb40f68e58':
media: add AudioRecord::getMinFrameCount().
1629399bb578fc176613ccaf134d1be6e3047638 23-Jun-2010 Andreas Huber <andih@google.com> Properly assign LOG_TAGs in OMXMaster.cpp and MediaScanner.cpp

Change-Id: I863651619f84b2b66e9a926ce1fef8ce6a53a42d
related-to-bug: 2639116
ediaScanner.cpp
dadd0d1e7d5fbb88fd3420438c590a0bb4c18af5 23-Jun-2010 Eric Laurent <elaurent@google.com> Merge "Added support for audio sessions in MediaPlayer and AudioTrack." into gingerbread
a514bdb58b5de4986679f72b7204b4764f7a2778 21-Jun-2010 Eric Laurent <elaurent@google.com> Added support for audio sessions in MediaPlayer and AudioTrack.

Audio sessions are used to associate audio effects to particular instances (or groups) of MediaPlayers or AudioTracks.

Change-Id: Ib94eec43241cfcb416590f435ddce7ab39a07640
udioTrack.cpp
MediaPlayerService.cpp
ediaplayer.cpp
15304d601cbf83be6519ca53e1a26b97d50d0192 22-Jun-2010 Chia-chi Yeh <chiachi@android.com> media: add AudioRecord::getMinFrameCount().

Change-Id: I952071ab10aa49aa96b727d157b68470d69fff3d
udioRecord.cpp
9e6f25df13d5242d83fda224f8cc0b2bf22a727c 21-Jun-2010 Chia-chi Yeh <chiachi@android.com> am d9e9132e: am 2ce999fc: am bd240c27: media: add AudioTrack::getMinFrameCount().

Merge commit 'd9e9132eeb2c02feb812f21a5cecb844b5b39d9d'

* commit 'd9e9132eeb2c02feb812f21a5cecb844b5b39d9d':
media: add AudioTrack::getMinFrameCount().
33005a932c60a0780fe9b7307d5988df3d9f6c26 16-Jun-2010 Chia-chi Yeh <chiachi@android.com> media: add AudioTrack::getMinFrameCount().

Change-Id: If15162583d1d16d89f59be0793106afe77417f35
udioTrack.cpp
ef04e8f230e7ef5dece1cc4e73cd109c69905418 15-Jun-2010 Mike Lockwood <lockwood@android.com> MediaScanner: Fix handling of files with dirent.d_type == DT_UNKNOWN

The previous code was calling stat() on the parent directory rather than the actual file.

Change-Id: If64552cb37552c77618a81ae4333307a018efe13
Signed-off-by: Mike Lockwood <lockwood@android.com>
ediaScanner.cpp
366c84d307e128a00a5ba0234cad7759a0b3d57c 14-Jun-2010 Eric Laurent <elaurent@google.com> am 184a3ff6: am e0219539: am 01f7ac64: Merge "Issue 2667802: [Audio Effect Framework] AudioEffect base class and JNI." into kraken

Merge commit '184a3ff64ba71e7e860b70b9a836c0132b447138'

* commit '184a3ff64ba71e7e860b70b9a836c0132b447138':
Issue 2667802: [Audio Effect Framework] AudioEffect base class and JNI.
801a1186eb1d2ce195b15222701865932e08f3dc 09-Jun-2010 Eric Laurent <elaurent@google.com> Issue 2667802: [Audio Effect Framework] AudioEffect base class and JNI.

Added AudioEffect C++ class. AudioEffect is the base class for effect specific implementations,
OpenSL ES effect interfaces and audio effect JNI.

Added the AudioEffect JNI and AudioEffect JAVA class. AudioEffect is the base class
to implement more specific JAVA classes to control audio effects from JAVA applications.

Change-Id: If300a1b708f2e6605891261e67bfb4f8330a4624
ndroid.mk
udioEffect.cpp
fc499ca2babff1315d0188ddfbe0268fe5d5e8ae 04-Jun-2010 Eric Laurent <elaurent@google.com> am 030a1553: am 2ea200c5: Merge "Issue 2667801: [Audio Effect Framework] AudioFlinger, AudioMixer AudioTrack modifications." into kraken
be916aa1267e2e6b1c148f51d11bcbbc79cb864c 02-Jun-2010 Eric Laurent <elaurent@google.com> Issue 2667801: [Audio Effect Framework] AudioFlinger, AudioMixer AudioTrack modifications.

First drop of audio framework modifications for audio effects support.

- AudioTrack/AudioRecord:
Added support for auxiliary effects in AudioTrack
Added support for audio sessions
Fixed left right channel inversion in setVolume()

- IAudioFlinger:
Added interface methods for effect enumeraiton and instantiation
Added support for audio sessions.

- IAudioTrack:
Added method to attach auxiliary effect.

- AudioFlinger
Created new classes to control effect engines in effect library and manage effect connections to tracks or
output mix:
EffectModule: wrapper object controlling the effect engine implementation in the effect library. There
is one EffectModule per instance of an effect in a given audio session
EffectChain: group of effects associated to one audio session. There is one EffectChain per audio session.
EffectChain for session 0 is for output mix effects, other chains are attached to audio tracks
with same session ID. Each chain contains a variable number of EffectModules
EffectHandle: implements the IEffect interface. There is one EffectHandle object for each application
controlling (or using) an effect module. THe EffectModule maintians a list of EffectHandles.

Added support for effect modules and effect chains creation in PlaybackThread.
modified mixer thread loop to allow track volume control by effect modules and call effect processing.

-AudioMixer
Each track now specifies its output buffer used by mixer for accumulation
Modified mixer process functions to process tracks by groups of tracks with same buffer
Modified track process functions to support accumulation to auxiliary channel

Change-Id: I26d5f7c9e070a89bdd383e1a659f8b7ca150379c
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
AudioTrack.cpp
a47e14e20e2c97955ac116b4f229316fe9c88e53 27-May-2010 Eric Laurent <elaurent@google.com> Merge "Fix issue 2712130: Sholes: problem when playing audio while recording over bluetooth SCO."
2dadcda205d995f7094b7569b076921872505143 26-May-2010 Eric Laurent <elaurent@google.com> Fix issue 2712130: Sholes: problem when playing audio while recording over bluetooth SCO.

The problem is that when an input stream is opened for record over bluetooth SCO, the kernel
mono audio device should be opened in RW mode to allow further use of this same device by an output stream
also routed to bluetooth SCO.
This does not happen because of a bug in AudioSystem::isBluetoothScoDevice() that does not return true
when the device is DEVICE_IN_BLUETOOTH_SCO_HEADSET (input device for blurtooth SCO).

Change-Id: I9100e972931d8142295c7d64ec06e31304407586
udioSystem.cpp
d71a1be83ff31cdb6599c351f9832cefc8d447ba 21-May-2010 Eric Laurent <elaurent@google.com> Fix issue 2667797: [Audio Effect Framework] new base class and binder interfaces for effect control.

Added IEffect and IEffectClient binder interfaces to exchange effect module control
and status information between application and media server processes.

Change-Id: I10e8e894898e52ed9956a765d0ef7075eb2593af
ndroid.mk
Effect.cpp
EffectClient.cpp
d1b449aad6c087a69f5ec66b7facb2845b73f1cb 14-May-2010 Eric Laurent <elaurent@google.com> Fix issue 2553359: Pandora does not work well with Passion deskdock / Cardock.

The problem is due to a too big difference between the buffer size used at the hardware interface and at the A2DP interface.
When no resampling occurs we don't notice problems but the timing is very tight. As soon as resampling is activated, the AudioTrack underruns.
This is because the AudioTrack buffers are not resized when moving the AudioTrack from hardware to A2DP output.
The AudioTrack buffers are calculated based on a hardware output buffer size of 3072 bytes. Which is much less than the A2DP output buffer size (10240).

The solution consists in creating new tracks with new buffers in AudioFlinger when the A2DP output is opened
instead of just transfering active tracks from hardware output mixer thread to the new A2DP output mixer thread.
To avoid synchronization issues between mixer threads and client processes, this is done by invalidating tracks
by setting a flag in their control block and having AudioTrack release the handle on this track (IAudioTrack)
and create a new IAudioTrack when this flag is detected next time obtainBuffer() or start() is executed.

AudioFlinger modifications:
- invalidate the tracks when setStreamOutput() is called
- make sure that notifications of output opening/closing and change of stream type to output mapping are sent synchronously to client process.
This is necessary so that AudioSystem has the new stream to output mapping when the AudioTrack detects the invalidate flag in the client process.
Previously their were sent when the corresponding thread loop was executed.

AudioTrack modifications:
- move frame count calculation and verification from set() to createTrack() so that is is updated every time a new IAudioTrack is created.
- detect track invalidate flag in obtainBuffer() and start() and create a new IAudioTrack.

AudioTrackShared modifications
- group all flags (out, flowControlFlag, forceReady...) into a single bit filed to save space.

Change-Id: I9ac26b6192230627d35084e1449640caaf7d56ee
udioRecord.cpp
udioTrack.cpp
2e5299988b5f5f9165a76938a66d37e46dd48d6b 13-Apr-2010 Mathias Agopian <mathias@google.com> don't hardcode "mSurface" throughout our source code

this is used in a few places to get access to the android.view.Surface
native surface. use a macro instead. Also rename the field to mNativeSurface.

Change-Id: I1c6dea14abd6b8b1392c7f97b304115999355094
OMX.cpp
a17a1347ffe281fc70633ba8dc98f6cf49ac06ff 02-Apr-2010 Dave Sparks <davidsparks@android.com> Use local lock for most MediaMetadataRetriever methods. Bug 2560834.

MediaMetadataRetriever uses a single static lock for all operations.
This effectively serializes all metadata retrieval operations in a
single process. This patch uses the object level lock for all normal
operations and only uses the static lock to serialize calls to
release.

Change-Id: I81c9f234c2f0007a26d18e1398c709b41a4dbbd7
ediametadataretriever.cpp
54b1a0550411c2fd2084d82d28934d505c37349a 20-Mar-2010 Mathias Agopian <mathias@google.com> libutils Condition are now PRIVATE by default

Condition must be initialized with SHARED for the old behavior, where
they can be used accross processes.

Updated the two places android that require SHARED conditions.

PRIVATE conditions (and mutexes) use more efficient syscalls.

Change-Id: I9a281a4b88206e92ac559c66554e886b9c62db3a
udioTrack.cpp
d3f93c572e55dc902d01f8eeda1d107a8b9128e2 17-Mar-2010 Eric Laurent <elaurent@google.com> Merge "Fix issue 2416481: Support Voice Dialer over BT SCO."
be55a2d66f03e80524a346500ffa9fd046410b28 11-Mar-2010 Eric Laurent <elaurent@google.com> Fix issue 2416481: Support Voice Dialer over BT SCO.

- AudioPolicyManager: allow platform specific choice for opening a direct output.
Also fixed problems in direct output management.
- AudioFliinger: use shorter standby delay and track inactivity grace period for direct output
thread to free hardware resources as soon as possible.
- AudioSystem: do not use cached output selection in getOutput() when a direct output
can be selected.

Change-Id: If44b50d29237b8402ffd7a5ba1dc43c56f903e9b
udioSystem.cpp
3e42b4491529975f771f8d71f931e24e120a7856 16-Mar-2010 Kenny Root <kroot@google.com> Fix regression in directory scanning

Previous range-checking fix removed an inequality check. This change
restores it.

Offending change was I5eb310ced58c3c64a7af2d11b80326efe5adbcab

Change-Id: Ic952c3ba5a4f7e5ab2148ec623b6f083cb7495fb
ediaScanner.cpp
8a6e24135608d1ec6629f381acd20d88369cd940 11-Mar-2010 Marco Nelissen <marcone@google.com> Merge "Revert "Do autodetection even if no locale was specified, and use the""
b5c3107262fdf82aef4bd5ee8b8c60dd3e4725fe 11-Mar-2010 Marco Nelissen <marcone@google.com> Revert "Do autodetection even if no locale was specified, and use the"

This reverts commit b45b0845a6db32848ad08ac1037ef67a68ec2d39.
ediaScannerClient.cpp
4023493a827bc9751d8e40795516d0d536a53348 10-Mar-2010 Nicolas Catania <niko@google.com> Allow invoke in all the player states except idle and error.

Previously invoke would work only after prepare but not
when the player is in play or pause state (for instance).
This new change just check that the player has been initialized
and is not in the error state.

Bug:2488931
Change-Id: I9b9f3679593a3b7697c1a84d993fdcd7e1693a90
ediaplayer.cpp
64fb06f698b39759a7a2ebacd0a175949b7506a5 11-Mar-2010 Nicolas Catania <niko@google.com> Revert "Allow invoke in all the player states except idle and error."

This reverts commit 88f3b81d065d4bec6f69a25eda99158e254f55b1.
ediaplayer.cpp
63bacaf543d4faee6dadda08e51556c878b078f5 10-Mar-2010 Nicolas Catania <niko@google.com> Allow invoke in all the player states except idle and error.

Previously invoke would work only after prepare but not
when the player is in play or pause state (for instance).
This new change just check that the player has been initialized
and is not in the error state.

Bug:2488931

Change-Id: I7a69d1b6e3eec1e5dbdf7378ff2085329062595a
ediaplayer.cpp
83ff1438d2d1d5dbf39ca5e6f2e4fa1799e7ba80 10-Mar-2010 Marco Nelissen <marcone@google.com> MEDIA_PLAYER_STATE_ERROR is not a bitmask
(b/2502881)

Change-Id: I08e427eb2c36f5d70e40f9aeb8638fa8262de989
ediaplayer.cpp
88335b1a749fe0157547907a2ce6c9632f4d2592 03-Mar-2010 Eric Laurent <elaurent@google.com> Fix issue 2428563: Camera rendered inoperable by voice call interruption.

The problem is that AudioRecord never exits read() when a timeout occurs while trying
to get new PCM data from audio hardware input buffer: it just keeps waiting and retrying until stop() is called.
In the same time, opencore AndroidAudioInput::audin_thread_func() loop cannot be exited when stuck
in AudioRecord::read() because the iExitAudioThread flag can only be sampled when AudioRecord::read()
returns. We remain stuck with the audio input thread running.

The fix consists in modifying AudioRecord behavior in case of timeout when getting new PCM samples.
We now wait only one timeout period and try to restart audio record, in case the problem is due to a media_server
process crash. If this fails, we exit read() with a number of bytes read equals to 0 so that
AndroidAudioInput::audin_thread_func() loop can exit.

Also modified Audioflinger::RecordThread() loop so that we attempt to recover from HAL read errors.
In case of read error, the input stream is forced to standby so that next read attempt does a
reconfiguration and restart of the audio input device.
udioRecord.cpp
05bca2fde53bfe3063d2a0a877f2b6bfdd6052cf 26-Feb-2010 Eric Laurent <elaurent@google.com> Issue 2071329: audio track is shorter than video track for video capture on sholes

Add API to retrieve number of frames dropped by audio input kernel driver.

Submitted on behalf of Masaki Sato <masaki.sato@motorola.com>
udioRecord.cpp
udioSystem.cpp
AudioFlinger.cpp
e3d91046072908f5613a21652b6da9b44043f1d5 27-Feb-2010 James Dong <jdong@google.com> Merge "Don't allow MediaRecorder.setParameter() to be invoked in the following states: error, prepared or recording"
698f476590bc9e38d4d1d4155da9efdbedd357c4 26-Feb-2010 Marco Nelissen <marcone@google.com> When we're in the 'playback complete' state, don't consider pausing
an error. This makes 'playback complete' essentially equivalent to
being paused at the end, and treats it the same as being paused at
any other position.
ediaplayer.cpp
e284bac7757ad732d0812eb6133125434ba66d5b 26-Feb-2010 James Dong <jdong@google.com> Don't allow MediaRecorder.setParameter() to be invoked in the following states:
error, prepared or recording

bug - 2362412
ediarecorder.cpp
f5a8385649204213dc19e1a64f4693931e048d85 24-Feb-2010 James Dong <jdong@google.com> Image encoding settings java API through xml configuration file

- I decided to completely remove jpeg decoding related stuff from this change
I think that setting is better off if it is specified by the system properties.
We don't have to include MediaProfiles.h header in skia files
ediaProfiles.cpp
df49e8926e85088bc7d1dc7905362437c9806b69 22-Feb-2010 Eric Laurent <elaurent@google.com> am 8978547f: am f5fe3949: Fix issue 2459650.

Merge commit '8978547f254b6b6ba2e322794aa044803f3edc2a'

* commit '8978547f254b6b6ba2e322794aa044803f3edc2a':
Fix issue 2459650.
7c7fa1b51bec497cd7f46c1bdb5bb0adfaa181b2 22-Feb-2010 Eric Laurent <elaurent@google.com> Fix issue 2459650.

This change fixes a problem where an unwanted tone is generated by audio policy manager when a MT call is answered.
This is because of a policy that replaces high visibility system sounds (ringtones, alarms...) by a beep when in call.
There is a transitory phase while the call is being answered where the phone state is changed to IN_CALL but the
ringtone is still playing. The audio policy manager then mutes the end of the ringtone and starts playing a beep
in replacement because the ringtone is categorized as high visibility.

The fix consists in changing the ringtone stream type from high visibility to low visibility. This is not a problem as
the only actual use case where a ringtone would be generated while in call is if another call is received.
But in this case, the phone system does not generate a ringtone but a call waiting tone instead.
It is therefore not required to handle a ringtone as a high visibiltiy tone that must be somehow signaled to the user
while in call.
udioSystem.cpp
eb03f13fd3b5a4b1060cd55881934ff9c918fe8c 18-Feb-2010 Kenny Root <kroot@google.com> Range check in MediaScanner::processDirectory

Make sure we don't have an empty string before checking if it's a
directory since this string is tainted.

Change-Id: I5eb310ced58c3c64a7af2d11b80326efe5adbcab
ediaScanner.cpp
4e92c7efc68b5d7635a32dbd283ab8558ad9bdd6 12-Feb-2010 Andreas Huber <andih@google.com> New API on java's MediaPlayer to suspend/resume a session.

related-to-bug: 2231576
MediaPlayer.cpp
ediaplayer.cpp
3cf613507f1e2f7bd932d921a6e222e426fd3be4 10-Feb-2010 Mathias Agopian <mathias@google.com> split libsurfaceflinger_client and libcamera_client out of libui
ndroid.mk
MediaPlayer.cpp
MediaRecorder.cpp
OMX.cpp
ediaplayer.cpp
ediarecorder.cpp
77f8531a739c46cffe7f7fd1e035de542deccf48 10-Feb-2010 Marco Nelissen <marcone@google.com> Do autodetection even if no locale was specified, and use the
detected encoding if it is unambiguous.
ediaScannerClient.cpp
1d7491b19516505e0754c66a3c8cd61811c9b6a6 20-Jan-2010 James Dong <jdong@google.com> Initial check-in for xml-based encoder capabilities retrieval
- Changed the Java API as suggested
- Treat /etc/media_profiles.xml as the default xml configurtion file
ndroid.mk
ediaProfiles.cpp
867d2f6ce668968e463eb86b856d21525f12fd67 26-Jan-2010 Mathias Agopian <mathias@google.com> Simplify the MemoryDealer implementation

At some point the implementation became complicated because of
SurfaceFlinger's special needs, since we are now relying on gralloc
we can go back to much simpler MemoryDealer.

Removed HeapInterface and AllocatorInterface, since those don't need
to be paramterized anymore. Merged SimpleMemory and Allocation.
Made SimplisticAllocator non virtual.

Removed MemoryDealer flags (READ_ONLY, PAGE_ALIGNED)

Removed a lot of unneeded code.
udioRecord.cpp
udioTrack.cpp
2db8455d8f4468a637109d31f319ce02d9d743ec 28-Jan-2010 Andreas Huber <andih@google.com> API Extension: Support for optionally specifying a map of extra request headers when specifying the uri of media data to be played.

related-to-bug: 2393577

Original change by Andrei Popescu <andreip@google.com>
MediaPlayerService.cpp
ediaplayer.cpp
342e9cf388cceb807def720e40e8b0a217f4bcaa 20-Jan-2010 Eric Laurent <elaurent@google.com> Fix issue 2285561: New AudioFlinger and audio driver API needed for A/V sync

Added getRenderPosition() API to IAudioFlinger to retreive number of audio frames
written by AudioFlinger to audio HAL and by DSP to DAC.

Added getRenderPosition() API to AudioHardwareInterface to retreive number of audio frames
written by DSP to DAC.

Exposed AudioTrack::getPosition() to AudioSink() to make it available to media player.

Removed excessive log in AudioHardwareGeneric.
udioSystem.cpp
AudioFlinger.cpp
b72a396826da8bd934b9531bbd40f86d7509e71c 25-Jan-2010 Eric Laurent <elaurent@google.com> Fix issue 2378022: AudioService should direct volume control to STREAM_VOICE_CALL stream when STREAM_VOICE_CALL stream is active.

Modified AudioService.getActiveStreamType() so that STREAM_VOICE_CALL is selected when a track using this stream
type is playing.

Chanded isMusicActive() for a more generic isStreamActive(stream) method in AudioSystem, IAudioFlinger and AudioFlinger.
udioSystem.cpp
AudioFlinger.cpp
0ef583f785528ef2785e6149d5964004cd1016b0 25-Jan-2010 Eric Laurent <elaurent@google.com> Fix issue 2363154: Speech synthesis fails to start over A2DP after media server process crash.

The problem is that after a media_server crash, the value of the A2DP output handle can change.
As this value is cached in AudioSystem for all client processes there can be a mismatch between the cached
and actual value after a media_server restart.

The fix consists in clearing the cached output handles and output to stream map values cached
in AudioSystem in AudioFlingerClient::binderDied() which is called when the media_server crashes.
udioSystem.cpp
570a3cb7582daa030cb38eedc5eb6a06f86ecc7f 21-Jan-2010 Andreas Huber <andih@google.com> Fix no-copy-overhead OMXCodec implementation to actually work.
OMX.cpp
5cb4241cbeb409f2322bd527349c080a2cf454df 19-Jan-2010 Andreas Huber <andih@google.com> Merge "Avoid unnecessary buffer copying if at all possible, detect if running in the mediaserver process."
7eaa9c9385535b651064e02d05a8ffa4b2359281 16-Jan-2010 Andreas Huber <andih@google.com> Avoid unnecessary buffer copying if at all possible, detect if running in the mediaserver process.
OMX.cpp
dd172fce75b2a1c3cb3a5d3b3bbb5020b1ae8675 16-Jan-2010 James Dong <jdong@google.com> Media server death nodification
ndroid.mk
MediaDeathNotifier.cpp
ediaplayer.cpp
ediarecorder.cpp
67e5a4f6f6879d512a859e5dba92e9beec7a2f91 08-Jan-2010 Andreas Huber <andih@google.com> Reorganize some of the stagefright implementation related to metadata.
ndroid.mk
tagefrightMediaScanner.cpp
tagefrightMediaScanner.h
134ee6a324c35f39e3576172e4eae4c6de6eb9dc 16-Dec-2009 Andreas Huber <andih@google.com> Squashed commit of the following:

commit 144b1c40e9cf08a584c50e1bef7ba3f287e81a4f
Author: Andreas Huber <andih@google.com>
Date: Wed Dec 16 09:28:23 2009 -0800

This H264 file shows a certain problem even better.

commit 3245f1f3b7471975aeeb824a756c987abd610f55
Author: Andreas Huber <andih@google.com>
Date: Wed Dec 16 09:20:08 2009 -0800

Using only the QA testfiles now.

commit 074817eb3816c5dd70858a3594e3b92d799d873b
Author: Andreas Huber <andih@google.com>
Date: Tue Dec 15 16:17:39 2009 -0800

Yay, roles are back again now that the API is in place.

commit 6d847e4932cc38301ae27cb7283b7f1553a95457
Author: Andreas Huber <andih@google.com>
Date: Tue Dec 15 13:01:20 2009 -0800

Added commandline option for specifying the random seed for reproducable tests.

commit 62ab37b26336eaa67e49791c41c996acb6acee3f
Author: Andreas Huber <andih@google.com>
Date: Mon Dec 14 10:53:27 2009 -0800

When issuing a seek it is important that only the first MediaSource::read call has the seek option.

commit e77c46644b2fb6862bafa3569f7d304252074f1e
Author: Andreas Huber <andih@google.com>
Date: Mon Dec 7 16:39:07 2009 -0800

Make sure the tests are actually built, sp<OMXCodec> becomes sp<MediaSource>

commit 6df56915bd55a9445b3c6f953d3cc251d81579b8
Author: Andreas Huber <andih@google.com>
Date: Thu Dec 3 14:25:36 2009 -0800

Temporarily disable support for querying the roles of OMX components.

commit 31bb26930df9e3658dea684cedb4b0f1a06a4a88
Author: Andreas Huber <andih@google.com>
Date: Tue Dec 1 13:36:52 2009 -0800

Disregard EOS events, slightly change the way the EOS flag on output buffers is handled.

commit 4c382fbc9aebee8197d5988d04378062809e7c48
Author: Andreas Huber <andih@google.com>
Date: Tue Dec 1 09:37:24 2009 -0800

New random seek test for the codec tests. Fixed "sticky" end-of-output-buffers flag behaviour in OMXCodec.

commit c762eac3e44309592b61a168d66e091cf609fa03
Author: Andreas Huber <andih@google.com>
Date: Tue Nov 3 14:13:43 2009 -0800

Fix a typo.

commit 50540a59b65c7d476b0193c7494cd75895e6ca6d
Author: Andreas Huber <andih@google.com>
Date: Tue Nov 3 09:48:35 2009 -0800

Some more fine tuning of the unit tests, make MPEG4Extractor less verbose.

commit 1157a7e52a0636706caa235abe16d2ff8a0b8140
Author: Andreas Huber <andih@google.com>
Date: Wed Oct 28 12:01:01 2009 -0700

Changes to the IOMX::listNodes API, this now returns the component's roles as well, unit tests now test all components in all supported roles by default.

commit 30fbf2d8c6cb927689f7ba75eb550a81e9df488a
Author: Andreas Huber <andih@google.com>
Date: Mon Oct 26 09:45:26 2009 -0700

Initial check-in of unit tests for OMX components.
OMX.cpp
a410d5a7150d6b14f98197e570c78ea7b6a65091 07-Dec-2009 Eric Laurent <elaurent@google.com> am 6d42d806: Merge change I9cc489a2 into eclair

Merge commit '6d42d80653f2c41f3e72a878a1d9a6f9693b89f7' into eclair-mr2

* commit '6d42d80653f2c41f3e72a878a1d9a6f9693b89f7':
Fix issue 2304669: VoiceIME: starting and canceling voice IME yields persistent "error 8" state on future attempts and breaks voice search.
148b266afe2ac92b5616c24e8d5160e6f9242f69 05-Dec-2009 Eric Laurent <elaurent@google.com> Fix issue 2304669: VoiceIME: starting and canceling voice IME yields persistent "error 8" state on future attempts and breaks voice search.

Fixed AudioFlinger::openInput() broken in change ddb78e7753be03937ad57ce7c3c842c52bdad65e
so that an invalid IO handle (0) is returned in case of failure.
Applied the same correction to openOutput().
Modified RecordThread start procedure so that a failure occuring during the first read from audio input stream is detected and causes
the record start to fail.
Modified RecordThread stop procedure to make sure that audio input stream fd is closed before we exit the stop function.

Fixed AudioRecord JAVA and JNI implementation to take status of native AudioRecord::start() into account
and not change mRecordingState to RECORDSTATE_RECORDING if start fails.
udioRecord.cpp
adf7d77752b3dbd47badc8819aa2674860d6ccba 04-Dec-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I6c84d731 into eclair-mr2

* changes:
Media/ToneGenerator: Change tone format for TONE_CDMA_ANSWER
97494da9d418b599fa1b9930487b90c978357634 04-Dec-2009 Andreas Huber <andih@google.com> I accidentally broke this code while refactoring MediaScanner. This is the fix.
tagefrightMediaScanner.cpp
413f523afe96aff02d2b0a7459127b8f67b2b43c 03-Dec-2009 Andreas Huber <andih@google.com> Refactor MediaScanner. Some steps on the way towards being able to build the tree without OpenCore.
ndroid.mk
ediaScanner.cpp
ediaScannerClient.cpp
tagefrightMediaScanner.cpp
tagefrightMediaScanner.h
utodetect.cpp
utodetect.h
981594f5c3697c3330bdbd4bb5a743fb9f01e6ab 14-Oct-2009 Naveen Kalla <nkalla@quicinc.com> Media/ToneGenerator: Change tone format for TONE_CDMA_ANSWER

Tone format for TONE_CDMA_ANSWER should be 660Hz + 1000Hz, with a 500ms ON
duration.
oneGenerator.cpp
a7c816c4bdb72cf4f9fe853a96cd7efdb394006d 24-Nov-2009 Dave Sparks <davidsparks@android.com> am 16cc72bd: Fix simulator build.

Merge commit '16cc72bdef471ffeee3f61eba8262783de248b04' into eclair-mr2

* commit '16cc72bdef471ffeee3f61eba8262783de248b04':
Fix simulator build.
827f3004421aacb6bceaf772ac825d4f2d3006e4 24-Nov-2009 Dave Sparks <davidsparks@android.com> am 8424ec32: Merge change I0f9a53d4 into eclair

Merge commit '8424ec323b2bc38887370c75e2c1fcd84bcdb013' into eclair-mr2

* commit '8424ec323b2bc38887370c75e2c1fcd84bcdb013':
Set metadata retriever thread group to the caller's group.
f311c557729099d002f4aae37c402a8287912369 24-Nov-2009 Dave Sparks <davidsparks@android.com> Fix simulator build.
MediaMetadataRetriever.cpp
ec4dde75955f87e5afea3f59ef991130257f3f3a 24-Nov-2009 Dave Sparks <davidsparks@android.com> Set metadata retriever thread group to the caller's group.

This patch modifies the native binder interface to the metadata
retriever to pass the caller's thread group across the binder
interface. On the server side, the thread scheduler group is
set to the caller's scheduler group temporarily and restored
after the request has completed. This patch also reverts a
previous patch where the priority of the thread was forced to
a low priority foreground thread.

This should give apps more control over the priority of their
metadata retrieval, particularly allow background process to
run without hogging the CPU.
MediaMetadataRetriever.cpp
bf89c099fc97717e3008a481aeddc76c1ac5e00d 21-Nov-2009 Eric Laurent <elaurent@google.com> am e7800946: Merge change I49f02be9 into eclair

Merge commit 'e7800946a42c0ebe8e0b3f6eba04a96a9641aaff' into eclair-mr2

* commit 'e7800946a42c0ebe8e0b3f6eba04a96a9641aaff':
Issue 2265163: Audio still reported routed through earpiece on sholes
6100d2d60517ff33ed8eb35d0b7ea63cde0831c9 19-Nov-2009 Eric Laurent <elaurent@google.com> Issue 2265163: Audio still reported routed through earpiece on sholes

This is a second attempt to fix the audio routed to earpiece syndrom.
The root cause identified this time is the crash of an application having an active AudioTrack playing on the VOICE_CALL stream type.
When this happens, the AudioTrack destructor is not called and the audio policy manager is not notified of the track stop.
Results a situation where the VOICE_CALL stream is considered as always in use by audio policy manager which makes that audio is routed to earpiece.

The fix consists in moving the track start/stop/close notification to audio policiy manager from AudioTrack to AudioFlinger Track objet.
The net result is that in the case of a client application crash, the AudioFlinger TrackHandle object (which implements the remote side of the IAudioTrack binder interface) destructor is called which in turn destroys the Track object and we can notify the audio policy manager of the track stop and removal.

The same modification is made for AudioRecord although no bug related to record has been reported yet.
Also fixed a potential problem if record stop is called while the record thread is exiting.
udioRecord.cpp
udioTrack.cpp
057eacf4578ac6b90ee18c524670e01445bf2732 13-Nov-2009 Eric Laurent <elaurent@google.com> am fddfb9ae: Merge change Iad79689a into eclair

Merge commit 'fddfb9ae03a2730ac5ce27fa4c47b7d3a0285d0f' into eclair-mr2

* commit 'fddfb9ae03a2730ac5ce27fa4c47b7d3a0285d0f':
Improvements for issue 2197683: English IME key-press latency is noticeably higher on passion than sholes
2b584244930c9de0e3bc46898a801e9ccb731900 10-Nov-2009 Eric Laurent <elaurent@google.com> Improvements for issue 2197683: English IME key-press latency is noticeably higher on passion than sholes

This change goes with a kernel driver change that reduces the audio buffer size from 4800 bytes (~27ms) to 3072 bytes (~17ms).
- The AudioFlinger modifcations in change 0bca68cfff161abbc992fec82dc7c88079dd1a36 have been removed: the short sleep period was counter productive when the AudioTrack is using the call back thread as it causes to many preemptions.
- AudioFlinger mixer thread now detects long standby exit time and in this case anticipates start by writing 0s as soon as a track is enabled even if not ready for mixing.
- AudioTrack::start() is modified to start call back thread before starting the IAudioTrack so that thread startup time is masked by IAudioTrack start and mixer thread wakeup time.
udioTrack.cpp
5b65c7043dada0c89d3a941742666ac40ea35746 05-Nov-2009 Andreas Huber <andih@google.com> DO NOT MERGE: Squashed commit of the following:

commit 08259dd3dc9026887f9bbfedaf45866eb56ea9bc
Author: Andreas Huber <andih@google.com>
Date: Thu Nov 5 12:02:31 2009 -0800

DO NOT MERGE: Use PV for metadata extraction even if stagefright is used for playback.

commit 991832fe4dc012e51d3d9ed8d647c7f09991858f
Author: Andreas Huber <andih@google.com>
Date: Thu Nov 5 11:24:11 2009 -0800

DO NOT MERGE: Do not assert if we encounter OMX_StateInvalid. All bets are off though.

commit cec45cf302d9218fe79956cbe8a462d7ca3a10bb
Author: Andreas Huber <andih@google.com>
Date: Mon Oct 26 16:11:54 2009 -0700

DO NOT MERGE: When freeing an OMX node, attempt to transition it from its current state all the way to "Loaded" in order to properly free any allocated buffers.

commit 34a1e885ef9113d68acbc26d36fcc47fdebbed84
Author: Andreas Huber <andih@google.com>
Date: Thu Nov 5 11:10:49 2009 -0800

DO NOT MERGE: Fix heap corruptin in OMXNodeInstance.

commit 5a47f7439a1298b330541a7e4e647a8b44487388
Author: Andreas Huber <andih@google.com>
Date: Thu Nov 5 11:08:19 2009 -0800

DO NOT MERGE: Fix seek-on-initial-read behaviour of OMXCodec.

commit 45bed64722501b9f411a2940aff5aff4cc4d2e98
Author: Andreas Huber <andih@google.com>
Date: Thu Nov 5 11:02:23 2009 -0800

DO NOT MERGE: Renaming string.h to stagefright_string.h to avoid conflicts.

commit 6738e306a50196f31a73d4fc7b7c45faff639903
Author: Andreas Huber <andih@google.com>
Date: Thu Oct 15 13:46:54 2009 -0700

DO NOT MERGE: Reimplement the OMX backend for stagefright.

Besides a major cleanup and refactoring, OMX is now a singleton living in the media server, it listens for death notifications of node observers/clients that allocated OMX nodes and performs/attempts cleanup.

Changed APIs to conform to the rest of the system.
MediaPlayerService.cpp
OMX.cpp
1c02bfb63ea6e1d1630a09229044d64be200a9ef 05-Nov-2009 Eric Laurent <elaurent@google.com> am 67b69292: Merge change I93f500a5 into eclair

Merge commit '67b692920c18f99b096dce285adc6f7439fa866c' into eclair-mr2

* commit '67b692920c18f99b096dce285adc6f7439fa866c':
Fix issue 2203561: Sholes: audio playing out of earpiece.
34f1d8ecd23169a5f299937e3aaf1bd7937578a0 04-Nov-2009 Eric Laurent <elaurent@google.com> Fix issue 2203561: Sholes: audio playing out of earpiece.

Create a new IAudioTrack interface to AudioFlinger when start() fails due to a broken pipe error.
Do the same if start fails due to the same error after time out in obtainBuffer().
Do not indicate that the AudioTrack is started to AudioPolicyManager if IAudioTrack start fails.
This avoids that an AudioTrack keeps a dead IAudioTrack after a media server crash.

Same modifications for AudioRecord.

Add a flag to ToneGenerator indicating that the callback thread can call Java. Without it, when the media server crashes and restarts, the AudioSystem error callback will crash in JNI if the IAudiotrack is created from AudioTrack callback thread.
udioRecord.cpp
udioTrack.cpp
AudioRecord.cpp
AudioTrack.cpp
oneGenerator.cpp
fe44b7a8b2b8da50a7a78f4b7e034b6d01785e44 24-Oct-2009 Eric Laurent <elaurent@google.com> am bf96aaad: Merge change Icf10db28 into eclair

Merge commit 'bf96aaadd46fb5b0884070177faa16ec4f22e2ba' into eclair-mr2

* commit 'bf96aaadd46fb5b0884070177faa16ec4f22e2ba':
Fix issue 2192181: AudioFlinger must provide separated methods to set VOICE_CALL stream volume and down link audio volume.
88e5ad9f0d9b35d4868347bce47b28b7358b32e4 24-Oct-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Icf10db28 into eclair

* changes:
Fix issue 2192181: AudioFlinger must provide separated methods to set VOICE_CALL stream volume and down link audio volume.
09d88b00dbd0a04ed45a661590cca49d6e5b42f5 23-Oct-2009 Eric Laurent <elaurent@google.com> am dd28d563: Fix 2209967 Tonegenerator: mutex not release in startTone() upon timeout waiting for the stop sequence to complete.

Merge commit 'dd28d56368441537ec5eb42150516416fdbf10ad' into eclair-mr2

* commit 'dd28d56368441537ec5eb42150516416fdbf10ad':
Fix 2209967 Tonegenerator: mutex not release in startTone() upon timeout waiting for the stop sequence to complete.
a9a4390989072d579eedab6b71fb41248b3ad8fe 23-Oct-2009 Eric Laurent <elaurent@google.com> Fix 2209967 Tonegenerator: mutex not release in startTone() upon timeout waiting for the stop sequence to complete.

Unlock mLock mutex when exiting upon wait stop timeout condition.
Increase timeout delays to avoid timing out when A2DP exits standby.
oneGenerator.cpp
f0ee6f4055e26fb35d9c526a596668a4dc9da5ba 21-Oct-2009 Eric Laurent <elaurent@google.com> Fix issue 2192181: AudioFlinger must provide separated methods to set VOICE_CALL stream volume and down link audio volume.

Added setVoiceVolume() method to AudioSystem, AudioFlinger, IAudioFlinger, AudioPolicyService.
Removed call to AudioHardwareInterface::setVoiceVolume() from AudioFlinger::setStreamVolume().
udioSystem.cpp
AudioFlinger.cpp
318ad9c1d9d6515026dfc2c021359d27decaa7a1 15-Oct-2009 Andreas Huber <andih@google.com> Reimplement the OMX backend for stagefright.

Besides a major cleanup and refactoring, OMX is now a singleton living in the media server, it listens for death notifications of node observers/clients that allocated OMX nodes and performs/attempts cleanup.

Changed APIs to conform to the rest of the system.
MediaPlayerService.cpp
OMX.cpp
36efa039efaae4526791336cb688032d22b34bec 08-Oct-2009 Andreas Huber <andih@google.com> Some decoders will return an error on OMX_EmptyThisBuffer to indicate that they don't support the media format, deal with this.
OMX.cpp
e33e00e931d1381d402484aa5cde67e540e3c82c 06-Oct-2009 Eric Laurent <elaurent@google.com> Fix issue 2139634: DTMF tones on Sholes popping, hissing (audio latency too high).

This change is a complement to the main fix in kernel driver for the same issue (partner change #1250).
It removes clicks sometimes heard after the end of the tones while audio flinger is sending 0s to the audio output stream.
The problem was that the sleep time between two writes was more than the duration of one audio output stream buffer which could cause some underrun.

Also fixed a recent regression in ToneGenerator that made that the end of previous tone was repeated at the beginning of current one under certain timing circumstances when the maximum tone duration was specified.
oneGenerator.cpp
10dbb8e97e7a81ca4867663b5517f048820b3094 20-Sep-2009 Marco Nelissen <marcone@google.com> Music visualizer support hack.
This currently assumes 44k stereo (won't crash on other formats, but won't give the correct results either), and links statically with libspeex to get FFT data, increasing the size of libmedia by about 45kb.
ndroid.mk
MediaPlayerService.cpp
ediaplayer.cpp
824b6a4a67166c3937400702944f659bd0d5d386 24-Sep-2009 Eric Laurent <elaurent@google.com> Fix issue 2142613: ToneGenerator: short tones sometimes don't play on sholes or over A2DP.

When the AudioTrack callback notification size is relatively high (Which is the case on Sholes and over A2DP), it is likely that the end of tone is reached during the first callback. In this case, the AudioTrack is stopped before exiting the callback which causes 2 problems:
- 1: If the AudioFlinger thread is scheduled before we exit the ToneGenerator callback, the track can be stopped and reset before the data is actually marked as present in the buffer by the AudioTrack callback => no audio will be processed by AudioFlinger.
- 2: In this case, the data write index in the AudioTrack buffer is incremented after the track was reset by the AudioFlinger which leaves unplayed data in the buffer. This data will be played the next time the AudioTrack is started if not flushed in between.

The fix consists in adding an intermediate state to ToneGenerator state machine so that we exit the callback function when the stop condition is reached and stop the AudioTrack the next time we execute the callback.
oneGenerator.cpp
1b84df1a0823fbcb9cec754311f53eaccfe85ae3 15-Sep-2009 Andreas Huber <andih@google.com> Added an API IOMX::createRendererFromJavaSurface.

This api allows to instantiate a renderer by specifying the hosting java Surface object. This hides the implementation details of (java-)Surface, (native-)Surface and friends.
ndroid.mk
OMX.cpp
5841db78dff14898538200287d246577b1fc37e2 09-Sep-2009 Eric Laurent <elaurent@google.com> Fix issue 2107584: media server crash when AudioFlinger fails to allocate memory for track control block.

AudioFlinger: verify that mCblk is not null before using it in Track and RecordTrack contructors.
IAudioFlinger: check result of remote transaction before reading IAudioTrack and IAudioRecord.
IAudioTrack and IAudioRecord: check result of remote transaction before reading IMemory.
AudioFlinger.cpp
AudioRecord.cpp
AudioTrack.cpp
85fa14d35468acca07ce0085d67b909f673fae07 07-Sep-2009 Eric Laurent <elaurent@google.com> Fix issue 1992233: DTMF tones on Sholes is really long.

Add a parameter to ToneGenerator.startTone() allowing the caller to specify the tone duration. This is used by the phone application to have a precise control on the DTMF tone duration which was not possible with the use of delayed messaged.
Also modified AudioFlinger output threads so that 0s are written to the audio output stream when no more tracks are ready to mix instead of just sleeping. This avoids an issue where the end of a previous DTMF tone could stay in audio hardware buffers and be played just before the beginning of the next DTMF tone.
oneGenerator.cpp
a9c322e398a1f5fdcace3b8b73967f010b1c31ca 27-Aug-2009 Eric Laurent <elaurent@google.com> Fix issue 2045911: Camera Shutter tone does not play correctly while listening to music.

Add the possibility to delay routing and volume commands in AudioPolicyClientInterface. The delay is not blocking for the caller.
udioSystem.cpp
c6b59b7c8acf7c6e7fbb93470aecc2c0ebe1b084 17-Aug-2009 Andreas Huber <andih@google.com> Support for marshalling pointers / intptr_t in Parcel.

Some refactoring to eliminate code duplication in Parcel implementation.
OMX.cpp
693d271e62a3726689ff68f4505ba49228eb94b2 14-Aug-2009 Andreas Huber <andih@google.com> Squashed commit of the following:

commit 5bb012f0065f7ffaaeb4f569d71f0e3a8d6b19c3
Author: Andreas Huber <andih@google.com>
Date: Fri Aug 14 10:40:08 2009 -0700

An attempt at fixing export using the qcom encoders. More quirks.

commit 0690e76bfa48118a68287ccf1bbfa82febaa620c
Author: Andreas Huber <andih@google.com>
Date: Fri Aug 14 09:08:28 2009 -0700

Callbacks are now dispatched from a separate thread in OMX.

commit c6571a039526df29b6343f9a1971dbc019088c61
Author: Andreas Huber <andih@google.com>
Date: Thu Aug 13 15:42:25 2009 -0700

Massive API changes throughout stagefright, smart pointers everywhere.

commit 900612af6a0555664d9ba195112cd859491265f4
Author: Andreas Huber <andih@google.com>
Date: Thu Aug 13 13:33:12 2009 -0700

OMXCodecs now properly shutdown.

commit 96732f05e1b0603dcd1b11f16a23512592eeb4f5
Author: Andreas Huber <andih@google.com>
Date: Thu Aug 13 12:04:04 2009 -0700

More work on JPEG decoding using the hardware OMX component.

commit 63839a073ac393e3a130434ba467969053b694ad
Author: Andreas Huber <andih@google.com>
Date: Wed Aug 12 13:13:31 2009 -0700

An attempt to drive the JPEG decoder OMX node.

commit 3ac2fe5ab2926eda81b2123610b2434c645294ff
Author: Andreas Huber <andih@google.com>
Date: Tue Aug 11 16:38:21 2009 -0700

Renamed StateMachine to OMXCodec and put it in its proper place.

commit 247da75a96bf8881956413023dd49a84d5b4f5b2
Author: Andreas Huber <andih@google.com>
Date: Tue Aug 11 16:06:19 2009 -0700

Statemachine is now a full-fledged MediaSource.

commit 045244f6771fa0b9b329495c953afda900a84b71
Author: Andreas Huber <andih@google.com>
Date: Fri Aug 7 09:16:54 2009 -0700

Properly setup the input format when exporting to AMR audio.

commit 271b984cb32c5cd9e46e3f90ae121f334e4b8da9
Author: Andreas Huber <andih@google.com>
Date: Thu Aug 6 09:59:38 2009 -0700

Added some code to test audio encoding to the OMX harness.

commit 79af4748e4af33bd66d3fbac606e332a69741cf4
Author: Andreas Huber <andih@google.com>
Date: Wed Aug 5 14:36:22 2009 -0700

Merge the old OMXDecoder and the new, shiny, StateMachine code.

commit 91cf5dd77a8762bc10a0b2ffce35e3bbeb262231
Author: Andreas Huber <andih@google.com>
Date: Tue Aug 4 17:41:43 2009 -0700

A new harness to test OMX node compliance (and quirks).
OMX.cpp
5a22b909c9e8fc0d9321dcc014706a790b26b971 11-Aug-2009 Eric Laurent <elaurent@google.com> Fix issue 2045983 ToneGenerator: fix void statement.

There is a void statement at line 917 of ToneGenerator.cpp: mState == TONE_IDLE;
This problem is harmless as in current code this execution path is never taken; it can only happen if a "new" operator fails in prepareWave() which is a case we usually consider as unlikely in android audio framework.
oneGenerator.cpp
f4148b55c5d6f68b22462e3880015fefa91ae7c6 07-Aug-2009 Andreas Huber <andih@google.com> Expose a variation of the createRenderer API that works on a plain Surface.
OMX.cpp
408b8e1073385d0d09bb96b9952f84731a0b4aeb 07-Aug-2009 Andreas Huber <andih@google.com> Deprecate/remove now unused socketpair ipc communication in favour of exclusive binder use.
OMX.cpp
23aea9771d800ce43ffd8a23ad64ed6cead4b159 07-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 9674

* changes:
Fix problem in AudioTrack with 8 bit PCM and direct output.
fa2877b9ea48baed934b866d2ab3658b69c4c869 28-Jul-2009 Eric Laurent <elaurent@google.com> Fix issue 2001214: AudioFlinger and AudioPolicyService interfaces should not use pointers as handles to inputs and outputs.

Use integers instead of void* as input/output handles at IAudioFlinger and IAudioPolicyService interfaces.
AudioFlinger maintains an always increasing count of opened inputs or outputs as unique ID.
udioSystem.cpp
AudioFlinger.cpp
AudioFlingerClient.cpp
AudioPolicyService.cpp
3302526f6276911b2dc40c731ea7fa0e7972d908 04-Aug-2009 Eric Laurent <elaurent@google.com> Fix problem in AudioTrack with 8 bit PCM and direct output.

Do not perform 8 to 16 bit conversion in AudioTrack write() and processAudioBuffer() if direct output flag is set.
udioTrack.cpp
8b938cdab5bd3d074d9b41bc2915fcfc11e47f27 31-Jul-2009 Andreas Huber <andih@google.com> The IOMX interface now instantiates IOMXRenderers to hide the details of hardware accelerated blitting.
OMX.cpp
c2f1f07084818942352c6bbfb36af9b6b330eb4e 17-Jul-2009 Eric Laurent <elaurent@google.com> Fix issue 1795088 Improve audio routing code

Initial commit for review.
Integrated comments after patch set 1 review.
Fixed lockup in AudioFlinger::ThreadBase::exit()
Fixed lockup when playing tone with AudioPlocyService startTone()
ndroid.mk
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
AudioFlingerClient.cpp
AudioPolicyService.cpp
etPlayer.cpp
oneGenerator.cpp
a64c8c79af1a15911c55306d83a797fa50969f77 21-Jul-2009 niko <niko@google.com> Added native metadata support.

Metadata.java:
Fixed typo 8k != 8092. The comment was correct though.

In Metadata.h, the new Metadata class is declared in the ns android::media
to limit the chances of conflict with other packages.

The MetadataType in MediaPlayerInterface is gone and moved to Metadata as
an inner typedef.

Similarly the SortedVector<MetadataType> instance have been replace by a
new type Metadata::Filter.

All the keys declared in the java counterpart are also in Metadata.h.

Metadata.cpp:
Contains the implementation of the native metadata packing.

There an associated change in the opencore package that should go in
at the same time as this one.
ndroid.mk
etadata.cpp
20111aa043c5f404472bc63b90bc5aad906b1101 15-Jul-2009 Andreas Huber <andih@google.com> Squashed commit of the following:

commit 8d179995654c19d9094e51989dc84ed0deba6e04
Author: Andreas Huber <andih@google.com>
Date: Tue Jul 14 16:30:40 2009 -0700

Protect stagefright code with BUILD_WITH_STAGEFRIGHT build-define.

commit 99b41acb58c34e8f024c30c833a09fd7b31c4e1f
Author: Andreas Huber <andih@google.com>
Date: Tue Jul 14 14:06:00 2009 -0700

OMX::list_nodes API, stagefright --list now lists all available OMX components.

commit 94a74c5b24aae6d7e446fff83d62ae3a57dc351b
Author: Andreas Huber <andih@google.com>
Date: Mon Jul 13 16:04:29 2009 -0700

Reenabled "record" commandline application to test encoding, support for h263 codec specific data when writing to .mp4.

commit d363dd74f611577567c66d25900d6264c306468c
Author: Andreas Huber <andih@google.com>
Date: Mon Jul 13 10:59:58 2009 -0700

Make non-socket communication in IOMX the default.

commit e89fc82c4fd138c88339887baf72f1d0e67f8660
Author: Andreas Huber <andih@google.com>
Date: Mon Jul 13 10:32:33 2009 -0700

The OMX interface now optionally supports communication through the binder only (no sockets involved)

commit 28611de11223fba65299787cdd33f7fdbd6a60a3
Author: Andreas Huber <andih@google.com>
Date: Fri Jul 10 15:09:13 2009 -0700

Split off the logic to render to a Surface (not ISurface!) into SurfaceRender.{cpp,h}

commit c0cfa885faaeb17d3fc5436f6447b61708bd6fe1
Author: Andreas Huber <andih@google.com>
Date: Fri Jul 10 12:21:46 2009 -0700

Fix display dimensions vs. decoded dimensions display issues, unfortunately breaks software rendering a bit...

commit ae209a2b5d09caed5dd383c910f238926aaa8fc6
Author: Andreas Huber <andih@google.com>
Date: Fri Jul 10 09:33:29 2009 -0700

Simple video decoder performance test in "stagefright" commandline tool.

commit 59fe7840111d6f46dd3c48f4950146aed962dbd2
Author: Andreas Huber <andih@google.com>
Date: Thu Jul 9 16:05:12 2009 -0700

StagefrightPlayer: Properly publish video dimensions by notifying the listener.

commit 51b6598f0e47be5e12d77f1d14e111e71c593638
Author: Andreas Huber <andih@google.com>
Date: Thu Jul 9 11:38:15 2009 -0700

MediaPlayerInterface::AudioSink now supports the specification of a callback for pull-based audio.

commit 31ce53375d748da3e7d30e993ce89dae97fd65ea
Author: Andreas Huber <andih@google.com>
Date: Wed Jul 8 17:23:37 2009 -0700

Proper support for pushing audio to a specified AudioSink interface. Still not bulletproof: video falls behind frequently.

commit a23e312b10631a5d47f5c9831205beac6b84ab36
Author: Andreas Huber <andih@google.com>
Date: Wed Jul 8 15:10:13 2009 -0700

IGenesisPlayer and friends are no more, java interface now uses local playback instead
of playing inside the media server process.

commit 42ee5c06ab5ba1c16f50472b0b26a0526635c73c
Author: Andreas Huber <andih@google.com>
Date: Wed Jul 8 13:17:03 2009 -0700

MP3 extractor now supports seeking (only fixed bitrate files currently supported)

commit 96a790405763bfa738d1c6845c99a9fdf579b66f
Author: Andreas Huber <andih@google.com>
Date: Tue Jul 7 10:53:54 2009 -0700

Keeping up-to-date with new master-gl changes, removing CameraSource for now, removing unnecessary commandline utilities from the build.

commit 6c9dcb7c628c0347154dd7f37913a3a5f04deb99
Author: Andreas Huber <andih@google.com>
Date: Mon Jul 6 16:40:02 2009 -0700

Finally take advantage of the fact that the Qcom OMX decoders already place the output buffers into memory accessible by the hardware yuv converter and avoid extra allocations and memcpys in that case. Split of the render logic into subclasses of VideoRenderer.

commit e8d46e81cffc15ffb0bdf03f511e4a4497ca7621
Author: Andreas Huber <andih@google.com>
Date: Mon Jul 6 12:18:29 2009 -0700

Added a few more cases of valid MPEG4 files to the sniffer, fixed end of stream notifications in MPEG4 files.

commit 88bffc5ed4033a607080f8777a1c0ec9e3e079de
Author: Andreas Huber <andih@google.com>
Date: Thu Jul 2 12:25:03 2009 -0700

MediaPlayerImpl now properly pauses/resumes instead of tearing down the decoder chains and starting back up from the beginning.

commit 732aa0a87c7e8d8a10776b275712649954962414
Author: Andreas Huber <andih@google.com>
Date: Wed Jul 1 14:58:56 2009 -0700

Remove pthread_mutex_* and pthread_cond_* in favour of Mutex and Condition.

commit 669e5944b2fe0542a3b8dba0c441a94503e99fb0
Author: Andreas Huber <andih@google.com>
Date: Wed Jul 1 14:43:02 2009 -0700

Proper support for end-of-stream signalling of MediaSources.

commit afb038f2dc594c742e554b2d42b86ffc7434e3fc
Author: Andreas Huber <andih@google.com>
Date: Tue Jun 30 16:48:03 2009 -0700

Support for the "sniffing" of datasources to determine their probable mime type (along with confidence). Slightly refactored the MP3Extractor to share common code with the sniffer.

commit ed3644b8bd56807e1db4b32433a93a2467f1f3c5
Author: Andreas Huber <andih@google.com>
Date: Fri Jun 26 13:27:52 2009 -0700

I don't think prepare should automatically start the player.

commit 11eb9b49dc4a0819d366682817cba68613f4fe12
Author: Andreas Huber <andih@google.com>
Date: Fri Jun 26 11:09:22 2009 -0700

Somewhat better timing information implemented in the MP3Extractor.

commit cab023a1751735c0ed26c8493498a91d8644c6c9
Author: Andreas Huber <andih@google.com>
Date: Thu Jun 25 15:41:56 2009 -0700

Initial checkin for support of mp3 content, extraction and playback. Media extractors now abstracted in MediaExtractor baseclass.

commit 40f4146bb3c647e56690dd9b0fa3ffdea60030dc
Author: Andreas Huber <andih@google.com>
Date: Wed Jun 24 10:41:12 2009 -0700

Make sure we only allocate surface buffers if there is video to be played.

commit 7f85e7d92fe81740e102e09905b19354f4ac178e
Author: Andreas Huber <andih@google.com>
Date: Wed Jun 24 10:19:32 2009 -0700

Clean up a failed merge and implement stub for new API in MediaPlayerBase.

commit f0e9d494a4c03402ea7b54891848ca5a50c421b2
Author: Andreas Huber <andih@google.com>
Date: Fri Jun 12 15:38:03 2009 -0700

Support yuv420->rgb565 conversion if hardware color conversion is unavailable.

commit 87223248b3099cd5261b94169f84cfd1eba56a8f
Author: Andreas Huber <andih@google.com>
Date: Fri Jun 12 09:35:56 2009 -0700

Remove unimplemented and currently unnecessary blocking option from MediaSource::ReadOptions.

commit e07e651f0325892b797f3eb64dbeca0f317afdfd
Author: Andreas Huber <andih@google.com>
Date: Wed Jun 10 16:26:42 2009 -0700

Enable assertions in HTTPDataSource.

commit 0dc97adebea1721156880f4b3d5c70f8d50c53b2
Author: Andreas Huber <andih@google.com>
Date: Wed Jun 10 12:34:39 2009 -0700

delete foo.

commit 7f05845dda496e7defee284d32509d127e785784
Author: Andreas Huber <andih@google.com>
Date: Wed Jun 10 12:34:08 2009 -0700

added foo.

commit e432970c51eeec4e5d549bdb3e2d3e48ffb4f0e7
Author: Andreas Huber <andih@google.com>
Date: Wed Jun 10 11:44:31 2009 -0700

Make sure to initialize all fields in _all_ constructors... Use a Mutex instead of the raw pthread_mutex_t.

commit d6286a6bbca639952491448fa3e609b775a8a814
Author: Andreas Huber <andih@google.com>
Date: Tue Jun 9 17:11:49 2009 -0700

send_command is now implemented twice... ugly hack to get both shutdown working correctly and startup as well... playback now "works" on the emulator, too.

commit 8d657e004677a7c5dae4479e8519bcaa94c18aad
Author: Andreas Huber <andih@google.com>
Date: Tue Jun 9 11:58:55 2009 -0700

Instead of erasing codec specific data once it's been output to the omx node, retain the data and just rewind after a stop.

commit 279fede6ba35cbc37c35616c53406bf2c9720202
Author: Andreas Huber <andih@google.com>
Date: Tue Jun 9 10:58:11 2009 -0700

Various fixes related to play/pause. Decoder now properly frees OMXMediaBuffers, made MemoryDealer destructor protected instead of public to prevent accidental stack-allocation of MemoryDealer objects.

commit 0f717f15a6328efd3f34082929cd8ad2351095a9
Author: Andreas Huber <andih@google.com>
Date: Tue Jun 9 08:44:12 2009 -0700

Make sure to rewind codec specific data on OMXDecoder::stop and reset AudioPlayer's notion of time mapping.

commit 0cfb63e33270daf9b215214608ab383f93a31823
Author: Andreas Huber <andih@google.com>
Date: Mon Jun 8 14:25:48 2009 -0700

Massive rename.

commit 30ed8f476c4431a5275538958b3e281bd17d5eab
Author: Andreas Huber <andih@google.com>
Date: Mon Jun 8 13:52:41 2009 -0700

send_command and fill/empty buffer commands must be executed in sequence, send_command is now dispatched over the socket instead of through the binder interface to ensure this.

commit b832d04011b2dd8a9632eb7e575bfe1addd1270d
Author: Andreas Huber <andih@google.com>
Date: Mon Jun 8 10:21:17 2009 -0700

MediaBuffers can now be "clone()", they sit on top of the same data but have their own range and metadata. Once a clone's refcount drops to 0 it decrements the refcount on the original buffer.

commit 4e944672808bdf1ed40a69f3f602f93ebf7b4049
Author: Andreas Huber <andih@google.com>
Date: Mon Jun 8 10:01:01 2009 -0700

Split MediaBuffer.h into MediaBufferGroup.h and MediaBuffer.h, same with their respective source files.

commit ddb7529b4de4828db51432bd405fddd76cfa3b6a
Author: Andreas Huber <andih@google.com>
Date: Fri Jun 5 16:30:25 2009 -0700

More fudging with A/V sync...

commit 1e5a4d8df08237b58c06c6527a33152ae931addf
Author: Andreas Huber <andih@google.com>
Date: Fri Jun 5 11:54:20 2009 -0700

API cleanup of MediaSource. Got rid of MediaRing as it really doesn't serve a purpose if OMX decoders are used.

commit 0953c65232aa9753d17d2e25c5f5526eb810cf13
Author: Andreas Huber <andih@google.com>
Date: Thu Jun 4 16:59:19 2009 -0700

Experimental TimedEventQueue and an attempt at a cleaner player implementation using it, OMXDecoder is now a little less verbose.

commit 2085b8ea9484a21fa11f94194a27405d413aeecc
Author: Andreas Huber <andih@google.com>
Date: Thu Jun 4 10:17:01 2009 -0700

Properly bail out of the AV sync loop if the MediaPlayerImpl is stopped.

commit 471f143458a8a0d93cb1bf9568c63c3967279dc6
Author: Andreas Huber <andih@google.com>
Date: Wed Jun 3 17:32:27 2009 -0700

Now this is much better AV sync, defer seeking the audio source until we know where the video source synced to.

commit 4010d371dbe62ce4971e13437776cba32cb0bb3d
Author: Andreas Huber <andih@google.com>
Date: Wed Jun 3 16:01:07 2009 -0700

Tweaked some of the heuristics in AV sync, OMXDecoder is now a little less verbose, seek to a sync sample at or _after_ the requested position.

commit f3d4af1d5a4ac31fa02271b000f6c7ec593f0da9
Author: Andreas Huber <andih@google.com>
Date: Wed Jun 3 15:33:58 2009 -0700

Change the TimeSource interface's APIs, prefer microseconds over milliseconds now, changed the way MediaPlayerImpl does AV sync.

commit 08bb46fa61d12e852a424698ddb0c90700328f6e
Author: Andreas Huber <andih@google.com>
Date: Wed Jun 3 11:57:24 2009 -0700

Using framework's Mutex and Condition classes instead of pthread functions, much saner locking in OMXDecoder.

commit 4d77b4e09e59bbf8c1af009ae7dc62b10af52fd6
Author: Andreas Huber <andih@google.com>
Date: Tue Jun 2 17:12:03 2009 -0700

MediaSources now publish their format.

commit 7e429a26c57bf936e1a08035d2d11839f9f00310
Author: Andreas Huber <andih@google.com>
Date: Tue Jun 2 16:38:29 2009 -0700

MetaData is now implemented in terms of KeyedVector, MetaData is now reference counted.

commit 0fa957aa5c9bcb6ec122ed7b5b97430039be6797
Author: Andreas Huber <andih@google.com>
Date: Mon Jun 1 14:39:55 2009 -0700

Sync sample seek support.

commit 78a5f090d02e7e6e1a146b29bdb7771eecaa2f86
Author: Andreas Huber <andih@google.com>
Date: Mon Jun 1 13:51:11 2009 -0700

Distinguish shutdown from port-flush since one requires buffers to be freed and the other one doesn't. Fixes a problem with seek.

commit e57781d3b2c985a74cd8b60e7c8f2d576459d038
Author: Andreas Huber <andih@google.com>
Date: Mon Jun 1 10:52:20 2009 -0700

First shot at support for seeking a MediaSource. Sync frames are not properly handled yet.

commit 0551cd78fda78bf66877fb26c5a55e5ae23d8367
Author: Andreas Huber <andih@google.com>
Date: Thu May 28 16:23:38 2009 -0700

Preliminary support for camera input.

commit f8ebafa65d10d5a06944de6b2e2992a33121b857
Author: Andreas Huber <andih@google.com>
Date: Thu May 28 12:13:47 2009 -0700

Allow NativeMediaPlayer access to Surface's getISurface() method.

commit b1a9fb36eeccd9f49d28c1c64b31fccbd6506eeb
Author: Andreas Huber <andih@google.com>
Date: Thu May 28 11:38:25 2009 -0700

Header files are now in their own genesis2 hierarchy below frameworks/base/include.

commit f49b8b234b8f6ce83148787eef540dd920f04aa6
Author: Andreas Huber <andih@google.com>
Date: Thu May 28 11:22:03 2009 -0700

moved MPEG4Writer into libgenesis2.

commit 5224254919dac4728677335ea60429fa16f518b4
Author: Andreas Huber <andih@google.com>
Date: Thu May 28 11:13:38 2009 -0700

Everything now lives in the android namespace, integrated errors with android errors, renamed MediaPlayer to MediaPlayerImpl.

commit f9a9d84f7e0465ef5d1938a068655ba39527cf99
Author: Andreas Huber <andih@google.com>
Date: Wed May 27 16:43:11 2009 -0700

Support for getPosition() and getDuration().

commit 3206cc5140bcbc88be039f8d94b954af63e69752
Author: Andreas Huber <andih@google.com>
Date: Wed May 27 15:37:45 2009 -0700

Support for {MediaPlayer, GenesisPlayer, Genesis2Player}::isPlaying()

commit 9f41b248e0dfce71bbc50f883750cec52ebfd1fe
Author: Andreas Huber <andih@google.com>
Date: Wed May 27 13:49:50 2009 -0700

Proper disconnection from the OMX service.

commit cdcf47a2c31599109ee42277c7fa14af3c600091
Author: Andreas Huber <andih@google.com>
Date: Tue May 26 17:27:06 2009 -0700

New player type for the genesis player in libmediaplayerservice. Playing video through an ISurface now.

commit 0586af20ac9ae0403dd190bafd290b0f90549723
Author: Andreas Huber <andih@google.com>
Date: Fri May 22 15:53:19 2009 -0700

Fix a buffer overflow error by adding padding in case we need to de-frame AVC data.

commit eac62fff6ad2ffb7b75c0d4a1b9620d33e93fb9b
Author: Andreas Huber <andih@google.com>
Date: Fri May 22 13:35:30 2009 -0700

Support for http URIs in MediaPlayer, compensate for AudioTrack latency.

commit a7db456e3173d94d6b5e457547e2a6a5f7a8e1cc
Author: Andreas Huber <andih@google.com>
Date: Fri May 22 11:33:25 2009 -0700

Support for URIs in MediaPlayer class, support for shoutcast streams in MediaPlayer, force shutdown of OMX nodes if they don't shutdown cleanly within a second.

commit 1f0268f4f14ad5215668f34e06a420850174d665
Author: Andreas Huber <andih@google.com>
Date: Fri May 22 08:33:16 2009 -0700

and foo.txt is gone again.

commit 0feca4e0919f345704d78ec78894bac5027bd5ed
Author: Andreas Huber <andih@dhcp-172-19-27-148.mtv.corp.google.com>
Date: Fri May 22 08:28:49 2009 -0700

added foo.txt

commit 9c7d04b35cdc895a2de3602dc46522f608bd205f
Author: Andreas Huber <andih@google.com>
Date: Fri May 22 08:28:04 2009 -0700

delete foo again

commit fec3ca1720992cce51b9a92b86b945da88a6b16c
Author: Andreas Huber <andih@google.com>
Date: Fri May 22 08:27:45 2009 -0700

weird

commit 30a6571302333146e537e537a3a8986245cca87c
Author: Andreas Huber <andih@dhcp-172-19-27-148.mtv.corp.google.com>
Date: Fri May 22 08:18:55 2009 -0700

reverse test

commit dea3d99dd0fe9386e8a3c51954d9d0fe2be09d38
Author: Andreas Huber <andih@google.com>
Date: Fri May 22 08:18:22 2009 -0700

test

commit a9eeafec6e46072cac41e54ebdbd153cb7ae7518
Author: Andreas Huber <andih@google.com>
Date: Thu May 21 16:37:50 2009 -0700

Use the video ring again for now.

commit e05ff3d3c1c4f89ef499a2b172138a775fd694e3
Author: Andreas Huber <andih@google.com>
Date: Thu May 21 15:42:19 2009 -0700

Export to .mp4 now works for MPEG4 video content. Fixed a bug in the sample table wrt co64 chunks.

commit 5c44c540374a4e50c4e8aaab2b7a34aed6e1391e
Author: Andreas Huber <andih@google.com>
Date: Thu May 21 09:56:11 2009 -0700

Fix the build, all binder-related headers have moved and there's a new library libbinde
r to link against now.

commit 23e0a24404d16c898c2c6b3c7495ad303844bc71
Author: Andreas Huber <andih@google.com>
Date: Thu May 21 08:42:04 2009 -0700

Initial checkin of MPEG4Writer, a class to export media sources into an mpeg4 file. MPEG4/AVC metadata (efss & friends) not currently working.

commit 9cd77adb1ac194197364ffad00a0d7215f458e1a
Author: Andreas Huber <andih@google.com>
Date: Wed May 20 12:31:45 2009 -0700

New shell command to test recording/encoding. Various changes to OMXDecoder to support encoding properly. Now each OMXDecoder needs a dedicated thread on the client side since onEvent responses could block which would cause deadlocks if a node depends on the output of another node for example.

commit 5c510fb55ffed7ec25305999ed9b6c1eec48d503
Author: Andreas Huber <andih@google.com>
Date: Mon May 18 15:40:06 2009 -0700

Make media decoding the default in the genesis2 commandline app instead of shoutcast playback.

commit f6c7a2040b8eb43326621f12c3a936e09b3a70e3
Author: Andreas Huber <andih@google.com>
Date: Mon May 18 11:03:04 2009 -0700

The king is dead, long live the kind... Replaced old OMX binder interface with new OMX binder interface/socket hybrid.

commit 0d4955eb5df9bfafb576d22f2ed572644d6d69ac
Author: Andreas Huber <andih@google.com>
Date: Thu May 14 12:39:34 2009 -0700

dynamic negotiation of NAL framing with the MPEG4Source, removed stale code from genesis2 commandline tool. Enable support form PV H264 software decoder.

commit 380369f54a8027cbc9349305184d6bf527a24efe
Author: Andreas Huber <andih@google.com>
Date: Wed May 13 17:32:00 2009 -0700

Explore the option of running everything inside the mediaserver process by encapsulating the player in an IGenesisPlayer binder interface.

commit b5cada56b9089a23e0c461352a97dc71e08b424d
Author: Andreas Huber <andih@google.com>
Date: Wed May 13 12:11:06 2009 -0700

Introduction of TimeSource class, clean shutdown of OMX Nodes.

commit 89f6e582e605dcb2149eb67f73fe9345d4b9be2e
Author: Andreas Huber <andih@google.com>
Date: Tue May 12 17:11:56 2009 -0700

Helper classes MediaRing and MediaPlayer.

commit 9aaed8739b4bb941473da367fb88f63224d2f1b7
Author: Andreas Huber <andih@google.com>
Date: Tue May 12 14:19:18 2009 -0700

Using mmap to map a file instead of going through FILE* improves performance, who knew?

commit ad097a78bbd002c59193ffdc39b64935928426c7
Author: Andreas Huber <andih@google.com>
Date: Mon May 11 16:42:42 2009 -0700

Added a performance test, refactored AudioDecoder a little.

commit bdd1b80ab3f3ba43e04f1f996e7fa84ed2e2728a
Author: Andreas Huber <andih@google.com>
Date: Fri May 8 16:19:29 2009 -0700

No more copying the output buffers coming out of the decoder, NAL separation also done in the extractor to avoid copying the data.

commit 858955b42c29b8033841a8caaa56c2a449810ef3
Author: Andreas Huber <andih@google.com>
Date: Fri May 8 14:02:38 2009 -0700

Change from a model in which the caller specifies the destination buffer to one where the MediaSource returns a buffer.

commit 95098b6d4f8bdc37dfb6a109ca58db4d9e414e2d
Author: Andreas Huber <andih@google.com>
Date: Fri May 8 13:21:45 2009 -0700

Changes to support multiple pieces of codec specific data to the decoder, de-frame nal units from the h.264 stream and insert start codes

commit 3941fcf87a48dda81683df727dfb1381f62d9184
Author: Andreas Huber <andih@google.com>
Date: Thu May 7 16:37:45 2009 -0700

some refactoring. Most streams play now.

commit d3152862840d4dd39068e5197bec8674f3d55dd5
Author: Andreas Huber <andih@google.com>
Date: Thu May 7 15:37:32 2009 -0700

Misc. changes to support H264 decoding using the qcom hardware decoder

commit d4ecdfe7af36e7468270d1c2cbbdc540efe0351e
Author: Andreas Huber <andih@google.com>
Date: Thu May 7 09:28:18 2009 -0700

Timestamps are now stored as a fraction, i.e. units and scale, also, PV appears to violate OMX specs by assuming timestamps are in milliseconds instead of microseconds.

commit fe6a50943f885e065d4061aa727a54417e9f36db
Author: Andreas Huber <andih@google.com>
Date: Wed May 6 14:18:27 2009 -0700

Refactored commandline app instantiation of the decoder.

commit da1ff2724d0e78e8b360d9a2c34c55dd0e2c0492
Author: Andreas Huber <andih@google.com>
Date: Wed May 6 10:41:14 2009 -0700

Proper audio/video synchronization.

commit 569ee3a23f600f4b6b87c6178c0223b06e97f201
Author: Andreas Huber <andih@google.com>
Date: Wed May 6 09:17:20 2009 -0700

Preliminary support for timestamps.

commit e4e302a89207550d8a7170d8c0afbd9c15047c84
Author: Andreas Huber <andih@google.com>
Date: Tue May 5 15:13:12 2009 -0700

Another quick hack job to make CachingDataSource thread-safe as well.

commit dfb376a58bd7c09aa04e89558186fcfe13fe696c
Author: Andreas Huber <andih@google.com>
Date: Tue May 5 15:08:14 2009 -0700

Quick rushjob to make FileSource and SampleTable thread safe.

commit 02b29e7ebdab1f8b959b6c177ceb3b89d998f375
Author: Andreas Huber <andih@google.com>
Date: Mon May 4 17:22:04 2009 -0700

Made video decoding work for mpeg4/h263 and mostly(?) with AVC content.

commit 3a57b8ff15e48f5a0af03bf0a99c32e240dbb7ef
Author: Andreas Huber <andih@google.com>
Date: Mon May 4 09:26:42 2009 -0700

Getting rid of old sample code to drive the OMXNode binder interface.

commit 5b046aed0cf524a57ea711bc1e43ea80e57b2cb3
Author: Andreas Huber <andih@google.com>
Date: Fri May 1 16:21:11 2009 -0700

Moved files from the commandline utility into the framework, renamed MP3Decoder to AudioDecoder

commit 7f3fbba21512a078b732cc52c7bd5ba5acb9a317
Author: Andreas Huber <andih@google.com>
Date: Fri May 1 15:56:19 2009 -0700

Fixed buffer ordering and an off-by-1 error in the SampleTable code. Plays all AACs now :)

commit 024d06baab8f2c540dde16f7e7a4b6dd57f638c7
Author: Andreas Huber <andih@google.com>
Date: Fri May 1 11:52:48 2009 -0700

Some AAC content in .3gp or .mp4 files plays correctly now, other does not. Implemented ESFS parser.

commit 1470427866b0d3e0ce6848b4edc01c13a09be289
Author: Andreas Huber <andih@google.com>
Date: Thu Apr 30 15:19:31 2009 -0700

Another checkpoint, amr decoding now functional.

commit e612d044439f56331b6a2bc4a88622e04d4d42e7
Author: Andreas Huber <andih@google.com>
Date: Wed Apr 29 12:11:29 2009 -0700

string wrapper around String8, various fixes, shoutcast now works again.

commit 2ea52dfb1a39bf3a223ffc87855e54919e2daff7
Author: Andreas Huber <andih@google.com>
Date: Wed Apr 29 11:08:18 2009 -0700

Initial check-in of OMXNode binder interface.

commit 7880d2957f74c0d7fba7679431ff5adb3780543b
Author: Andreas Huber <andih@google.com>
Date: Wed Apr 29 10:05:01 2009 -0700

Initial check-in of both libgenesis2 and the genesis2 commandline tool.
ndroid.mk
MediaPlayerService.cpp
OMX.cpp
a25f0fcebaa9fcb550ae2ccd5913085ae48b1018 15-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 7067

* changes:
add a ctor to Mutex to specify the type, which can be shared. This is used by sf and af an soon will allow some optimization in the kernel for non shared mutexes
2b50fba2b143c2e0597c941d67bea1b8e80c9caf 14-Jul-2009 Mathias Agopian <mathias@google.com> first attempt to fix the sim
ndroid.mk
b07c28b90b2d2793be2b8878d813b607f3eebbb7 14-Jul-2009 Mathias Agopian <mathias@google.com> add a ctor to Mutex to specify the type, which can be shared. This is used by sf and af an soon will allow some optimization in the kernel for non shared mutexes
udioTrack.cpp
aa37173500f221298fa618b5ca8b4814aff5ef31 10-Jul-2009 Marco Nelissen <marcone@google.com> Don't pass references to temporary objects, and handle the case where we dont have a Surface.
ediaplayer.cpp
8e1b6cce24574b9ecd5b0300155776bd0b4ef756 09-Jul-2009 Nicolas Catania <niko@google.com> Basic plumbing to retrieve metadata from the native player.

IMediaPlayer.h
Added a getMetadata method that mirrors the on in MediaPlayer.java.

MediaPlayer.java
Added a native method to get the metadata from the native player.
Parse the parcel into a Metadata object.

Metadata.java
Added a stub to parse the Parcel returned by the native player into
a set of metadata.

android_media_MediaPlayer.cpp
JNI call to forward the getMetadata call.

MediaPlayerService.cpp
MediaPlayerService::Client implements the new getMetadata method added in IMediaPlayer.h
MediaPlayer.cpp
ediaplayer.cpp
a920ee99dc97b54b661d1238d8c26ac07c875bed 09-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 6636

* changes:
Implemented the metadata changed notification filters.
699f095c05229c5f3d21c54d55698de4f30eaa35 09-Jul-2009 Eric Laurent <elaurent@google.com> am 5964e737: Fix issue 1946033: dialer deadlocks and/or ANRs when using dialpad in-call

Merge commit '5964e73774b381748013b91d04dfb6fc60f533ee'

* commit '5964e73774b381748013b91d04dfb6fc60f533ee':
Fix issue 1946033: dialer deadlocks and/or ANRs when using dialpad in-call
a7e0e8b4c429fc68eb1bd5b5a30f5b91352288f9 08-Jul-2009 Nicolas Catania <niko@google.com> Implemented the metadata changed notification filters.

IMediaPlayer:
new setMetadataFilter method so set a filter (2 lists of allowed and blocked metadata type)
serialized in a Parcel.

MediaPlayer.java/android_media_MediaPlayer.cpp/mediaplayer.cpp
new setMetadataFilter that passes the filter down to the MediaPlayerService's binder interface.

MediaPlayerService.cpp
The Client inner class holds the allowed and blocked metadata types.
These are in 2 vectors that get populated in the setMetadataFilter.

A new shourldDropMetadata method returns true if a type of metadata should be dropped according
to the filters.

The notify method in run the metadata update notifications thru the filter and possibly drop them.
MediaPlayer.cpp
ediaplayer.cpp
c38bb0614dc0b5dee682b9a1de47de5ae7d215d8 09-Jul-2009 Eric Laurent <elaurent@google.com> Fix issue 1946033: dialer deadlocks and/or ANRs when using dialpad in-call

The cause is very likely that the WaveGenerator *lpWaveGen returned by lpToneGen->mWaveGens.valueFor(lFrequency) just before calling lpWaveGen->getSamples(lpOut, lGenSmp, lWaveCmd) is invalid. The frequency lFrequency is not part of the frequencies in mWaveGens.
This can happen if a different tone is started while the callback function is active: The state is changed to TONE_RESTARTING and the call to prepareWave() at line 1226 will change the tone descriptor pointed to by mpToneDesc as well as the content of mWaveGens. However, mpToneDesc was cached in a local variable lpToneDesc when entering the callback and is not reloaded when exiting prepareWave(). This causes a mismatch between the tone frequencies listed in lpToneDesc and the frequencies present in mWaveGens.
This regression was introduced in change 973 when mpToneDesc was cached in a local variable.
oneGenerator.cpp
349dba337e07e129f6ba49a132999f0b73fedbe3 07-Jul-2009 Eric Laurent <elaurent@google.com> am 88e209dc: Fix issue 1743700: AudioTrack: setPlaybackRate can not set the playback rate to twice of the ouputSR

Merge commit '88e209dcf8c2ebddda5c272f46d1bd5478bc639c'

* commit '88e209dcf8c2ebddda5c272f46d1bd5478bc639c':
Fix issue 1743700: AudioTrack: setPlaybackRate can not set the playback rate to twice of the ouputSR
573266210fb2b2e7d86fbd46d0dfe16763611d91 07-Jul-2009 Eric Laurent <elaurent@google.com> Fix issue 1743700: AudioTrack: setPlaybackRate can not set the playback rate to twice of the ouputSR

Store sample rate on 32 bits instead of 16 bits in audio_track_cblk_t.
Removed sampleRate() methods from AudioTrack and AudioRecord: replaced by getSampleRate().
AudioTrack::setSampleRate() no returns a status.
udioRecord.cpp
udioTrack.cpp
1d187f1a86855f5f0694d7ec30efc9833bf7c589 13-May-2009 Nicolas Catania <niko@google.com> Direct api to the native media player.

MediaPlayer.java has 3 new methods:
* newRequest creates a Parcel that can be used to send data to the
native player using invoke.
* invoke issues synchronous calls to the native player using opaque
parcels for the request and reply.

IMediaPlayer.h has 1 new abstract method:
* invoke

The Midi and Vorbis players have a stub for these. So far only PV
makes use of that new feature.

To avoid any copy overhead, the JNI interface uses Parcel as a java
object (no serialization/copy happens at the JNI layer).

The remote interface token is inserted when the Parcel is constructed
in java. That way the parcel is already routable when it reaches
IMediaPlayer.cpp (proxy). No extra copy is needed there.
MediaPlayer.cpp
MediaPlayerService.cpp
ediaplayer.cpp
3d59a4b99937a7d0dc07eec2574cc8a98cc99fdd 23-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> am 1bee98af: Merge change 5100 into donut

Merge commit '1bee98af6532eba3c6cda636eee890530c95a2a7'

* commit '1bee98af6532eba3c6cda636eee890530c95a2a7':
Fill in CDMA gaps and clean up ToneGenerator code
5e0a3043af16bc71a4211ee00dc00724de6623a7 17-Jun-2009 David Krause <david.krause@motorola.com> Fill in CDMA gaps and clean up ToneGenerator code
oneGenerator.cpp
56f0cc533a38bdb84bc03adcb43515614ab21bae 22-Jun-2009 niko <niko@google.com> Renamed all android.hardware.IMedia* strings to android.media.IMedia*

The android.hardware.ICamera string have not been changed (but is looks
like the camera service and client one should undergo the same procedure)

The implementation of the interface must provide a unique string for
it's interface name. Currently all these strings in the media framework
start with 'android.hardware' when it should really be 'android.media',
the interface token has nothing to do with hardware.
MediaMetadataRetriever.cpp
MediaPlayer.cpp
MediaPlayerClient.cpp
MediaPlayerService.cpp
MediaRecorder.cpp
4710a1f6c9800dae90f9e2702ba2b5b54c095eae 12-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> am d670b8c6: Merge change 3981 into donut

Merge commit 'd670b8c61ebd13324ac21bdbc08d8a02fc0a765a'

* commit 'd670b8c61ebd13324ac21bdbc08d8a02fc0a765a':
Removed trailing whitespaces.
660951867e959ebe98612742ef1f72d33ea7e9a3 12-Jun-2009 Nicolas Catania <niko@google.com> Removed trailing whitespaces.
MediaPlayerService.cpp
ediaplayer.cpp
2a7d5b3c1a3749db7c4ace34bf1253c44967e843 09-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> am b2df1699: Merge change 1548 into donut

Merge commit 'b2df1699c996e62baa78877978cd2c5607ea4194'

* commit 'b2df1699c996e62baa78877978cd2c5607ea4194':
NJ-1409: (frameworks/base) Support new audio encoding types(AMR and AAC).
9747c5a1f5e51fab72169767972bf55f73711000 08-Jun-2009 Jianhong Jiang <jianhong@google.com> NJ-1409: (frameworks/base) Support new audio encoding types(AMR and AAC).
ediarecorder.cpp
489d60ec36c3927c9ee0bc14a44c1c77b74c09f6 27-May-2009 Android (Google) Code Review <android-gerrit@google.com> am f3288f17: Merge change 2468 into donut

Merge commit 'f3288f178ae2b2c7910b234f54f43475a83eb860'

* commit 'f3288f178ae2b2c7910b234f54f43475a83eb860':
setVolume did not check interface descriptor
b7056fc8525e0515c6f46676e3307088f8b64cdc 23-May-2009 Mathias Agopian <mathias@google.com> some work to try to reduce the code size of some native libraries

- make sure that all binder Bn classes define a ctor and dtor in their respective library.
This avoids duplication of the ctor/dtor in libraries where these objects are instantiated.
This is also cleaner, should we want these ctor/dtor to do something one day.

- same change as above for some Bp classes and various other non-binder classes

- moved the definition of CHECK_INTERFACE() in IInterface.h instead of having it everywhere.

- improved the CHECK_INTERFACE() macro so it calls a single method in Parcel, instead of inlining its code everywhere

- IBinder::getInterfaceDescriptor() now returns a "const String16&" instead of String16, which saves calls to String16 and ~String16

- implemented a cache for BpBinder::getInterfaceDescriptor(), since this does an IPC. HOWEVER, this method never seems to be called.
The cache makes BpBinder bigger, so we need to figure out if we need this method at all.
AudioFlinger.cpp
AudioFlingerClient.cpp
AudioRecord.cpp
AudioTrack.cpp
MediaMetadataRetriever.cpp
MediaPlayer.cpp
MediaPlayerClient.cpp
MediaPlayerService.cpp
MediaRecorder.cpp
172fb9ab347e146642234f0bd6f223d351e9fd0b 26-May-2009 Dave Sparks <davidsparks@android.com> setVolume did not check interface descriptor
DO NOT MERGE
MediaPlayer.cpp
95634c8b6ad5419e310a5196bcc37f5988ed82da 26-May-2009 Android (Google) Code Review <android-gerrit@google.com> am de8268d6: Merge change 2331 into donut

Merge commit 'de8268d6d1cd168510c490b17e93154d2eab767c'

* commit 'de8268d6d1cd168510c490b17e93154d2eab767c':
Fix issue 1846343 - part 1
f5879c1448cc6aebc51b26d3ec2399d66144f8f4 22-May-2009 Eric Laurent <elaurent@google.com> Fix issue 1846343 - part 1

This change is the first part of a fix for issue 1846343, :
- Added new enum values for input sources in AudioRecord and MediaRecorder for voice uplink, downlink and uplink+downlink sources.
- renamed streamType to inputSource in all native functions handling audio record.

A second change is required in opencore author driver and android audio input to completely fix the issue.
udioRecord.cpp
AudioFlinger.cpp
7562408b2261d38415453378b6188f74fda99d88 20-May-2009 Mathias Agopian <mathias@google.com> move libbinder's header files under includes/binder
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
AudioFlingerClient.cpp
AudioRecord.cpp
AudioTrack.cpp
MediaMetadataRetriever.cpp
MediaPlayer.cpp
MediaPlayerClient.cpp
MediaPlayerService.cpp
MediaRecorder.cpp
ediametadataretriever.cpp
ediaplayer.cpp
ediarecorder.cpp
615a9bfbd98b90e09d868c128db84836feb658e4 19-May-2009 Mathias Agopian <mathias@google.com> checkpoint: split libutils into libutils + libbinder
ndroid.mk
4afdfa7fd7e9fe59fb298ef2ac252686e68bc73a 07-May-2009 Dave Sparks <davidsparks@android.com> Don't allow negative numbers in ToneGenerator toneType parameter
Bug 1836596
oneGenerator.cpp
0b62e242d112d46e9357242b0a4e11c720c98ca0 05-May-2009 Eric Laurent <elaurent@google.com> Fixed issue 1709450: Requirements for CDMA Tone Generator

Added new tone types for CDMA IS-95 specific tones.
Automatic selection between IS-95, CEPT and JAPAN version base on operator
country code for call supervisory tones.
Also improved tone generator capabilities:
- Each tone segment can now generate its own set of frequencies
- A tone does not have to be a succession of alternating ON/OFF segments
- The sequence repetition does not have to start from first segment
oneGenerator.cpp
1dd70b9f04961a06fcb73a97fca10a53b3245d3c 21-Apr-2009 Eric Laurent <elaurent@google.com> Fix issue 1745312: Various cleanups in media framework

AudioTrack, AudioRecord:
- remove useless mAudioFlinger member of AudioTrack and AudioRecord.
- signal cblk.cv condition in stop() method to speed up stop completion.
- extend wait condition timeout in obtainBuffer() when waitCount is -1 to avoid waking up callback thread unnecessarily

AudioFlinger:
- remove some warnings in AudioFlinger.cpp.
- remove function AudioFlinger::MixerThread::removetrack_l() as its content is never executed.
- remove useless call to setMasterVolume in AudioFlinger::handleForcedSpeakerRoute().
- Offset VOICE_CALL stream volume to reflect actual volume that is never 0 in hardware (this fix has been made in the open source): 0.01 + v * 0.99.

AudioSystem.java:
- correct typo in comment

IAudioflinger, IAudioFlingerClient:
- make AudioFlinger binder interfaces used for callbacks ONEWAY.

AudioHardwareInterface:
- correct routeStrings[] table in AudioHardwareInteface.cpp
udioRecord.cpp
udioTrack.cpp
AudioFlinger.cpp
AudioFlingerClient.cpp
ce80c82f58378da72d8a36f520c781cc5cac18a1 01-Apr-2009 Eric Laurent <> AI 144054: am: CL 144053 Fix issue #1751242 A2DP playback fails first time: Invalid buffer size: minFrameCount 10240, frameCount 4800
The problem comes from the fact that AudioSystem::getOutputFrameCount() calls getOutput() to retrieve the active output (A2DP or Hardware) before calling get_audio_flinger(). If it is the first time AudioSystem::getOutputFrameCount() is called in a given process, getOutput() will return a wrong value because gA2dpEnabled has not yet been updated by get_audio_flinger().
The fix consists in calling get_audio_flinger() in getOutput() to be sure that gA2dpEnabled is valid when getOutput() reads it.
Original author: elaurent
Merged from: //branches/cupcake/...

Automated import of CL 144054
udioSystem.cpp
cd6725a333395ffeac3215ea4bf834a95aaa8def 25-Mar-2009 Eric Laurent <> Automated import from //branches/donutburger/...@142065,142065
udioRecord.cpp
4003bf5e4cd948fe7732c16b2a683acdbfa8c44d 25-Mar-2009 Andreas Huber <> Automated import from //branches/donutburger/...@141711,141711
ediaplayer.cpp
7d563247cdac0509009d579bbf849157d47c38a9 25-Mar-2009 Jean-Michel Trivi <> Automated import from //branches/donutburger/...@141200,141200
udioRecord.cpp
158857d5a6bb93aa6a135a338f9b6389e0f2b3a5 25-Mar-2009 Jean-Michel Trivi <> Automated import from //branches/donutburger/...@140867,140867
etPlayer.cpp
7dc112527d77b675d5c0451502b33fe2c552a79e 25-Mar-2009 Jason Sams <> Automated import from //branches/donutburger/...@140866,140866
ediaplayer.cpp
2c22aeb65e801f663a754d043062f85e49f77739 25-Mar-2009 Jean-Michel Trivi <> Automated import from //branches/donutburger/...@140663,140663
udioTrack.cpp
1179bc9b0e3d17c984e8f4ad38561c049dd102fa 19-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake_rel/...@140373
udioTrack.cpp
etPlayer.cpp
ediarecorder.cpp
c048cae0367db6fbb4fe1127be5011910713d4ad 13-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake_rel/...@138607
MediaRecorder.cpp
ediarecorder.cpp
65e731f393f704eedab6fbe0af7f8a580c8d4617 11-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@137873
ediaplayer.cpp
ediarecorder.cpp
8365529381f6284f2d59dcc38e26f73adeec9c67 09-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@137197
oneGenerator.cpp
8555d0867c3e8fe6cc5c7ad40af557fe6b92fa72 05-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@136594
udioTrack.cpp
ediarecorder.cpp
89fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
ndroid.mk
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
AudioFlingerClient.cpp
AudioRecord.cpp
AudioTrack.cpp
MediaMetadataRetriever.cpp
MediaPlayer.cpp
MediaPlayerClient.cpp
MediaPlayerService.cpp
MediaRecorder.cpp
etPlayer.cpp
ODULE_LICENSE_APACHE2
OTICE
oneGenerator.cpp
ediametadataretriever.cpp
ediaplayer.cpp
ediarecorder.cpp
15f767b960b38059a74a42a33e16d8df2aec8bc1 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
ndroid.mk
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
AudioFlingerClient.cpp
AudioRecord.cpp
AudioTrack.cpp
MediaMetadataRetriever.cpp
MediaPlayer.cpp
MediaPlayerClient.cpp
MediaPlayerService.cpp
MediaRecorder.cpp
etPlayer.cpp
ODULE_LICENSE_APACHE2
OTICE
oneGenerator.cpp
ediametadataretriever.cpp
ediaplayer.cpp
ediarecorder.cpp
ad04d9201452001dbaac4349f084cc9316190b89 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
udioRecord.cpp
udioTrack.cpp
MediaRecorder.cpp
ediarecorder.cpp
99ffda877980468a9ae31e013cd10fb3645df1b0 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
udioRecord.cpp
udioTrack.cpp
MediaRecorder.cpp
ediarecorder.cpp
925a349b45d1d16eaaca6a1f4827191831271ca0 20-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@132569
udioRecord.cpp
oneGenerator.cpp
25658fd43d150a45fb37734a9f9f27f48bb5c133 19-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@132276
udioTrack.cpp
etPlayer.cpp
7a2146d5807030b2629f347736be5301b61e8811 13-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@131421
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
AudioFlingerClient.cpp
MediaRecorder.cpp
etPlayer.cpp
oneGenerator.cpp
ediaplayer.cpp
ediarecorder.cpp
5e07b5774c8b376776caa4f5b0a193767697e97e 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
ndroid.mk
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
AudioFlingerClient.cpp
etPlayer.cpp
oneGenerator.cpp
ediaplayer.cpp
e5198b620a9a208ec59ea8457282404725f8ff6e 20-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@127101
udioRecord.cpp
udioTrack.cpp
cce8bd12da6d8419a8770e4552a51ec297c250c2 10-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@125939
ndroid.mk
udioTrack.cpp
MediaMetadataRetriever.cpp
etPlayer.cpp
oneGenerator.cpp
ediarecorder.cpp
7b5eb023f8d87cca6d830ae6c11c6aadbe02aca8 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
ndroid.mk
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
MediaMetadataRetriever.cpp
MediaPlayer.cpp
MediaPlayerService.cpp
MediaRecorder.cpp
oneGenerator.cpp
ediametadataretriever.cpp
ediaplayer.cpp
ediarecorder.cpp
2729ea9262ca60d93047e984739887cfc89e82eb 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
ndroid.mk
udioRecord.cpp
udioSystem.cpp
udioTrack.cpp
AudioFlinger.cpp
AudioRecord.cpp
AudioTrack.cpp
MediaPlayer.cpp
MediaPlayerClient.cpp
MediaPlayerService.cpp
ODULE_LICENSE_APACHE2
OTICE
oneGenerator.cpp
ediametadataretriever.cpp
ediaplayer.cpp