Squashed commit of updates from CodeAurora

auido: Add amr-wb+ codec to ACodec.

-Add an entry for amr-wb+ decoder in ACodec.
-amr-wb+ non tunnel will be enabled by default.

Change-Id: Ied8902eb83da29a3164eb99e88630570a43f681e

libstagefright: Create MP3 decoder libraries without OMX layer

- With the current MP3 OMX SW decoders, the decoding time
is increased w.r.t the libraries without OMX layer that are
present in GB. This increase in decoding time results reduction in
power savings in LPA mode.
- This commit is to remove OMX layer for MP3 to reduce the
power consumption in LPA mode

Change-Id: I835ab6d013a326f111e513586f884bacd5f7106a

audioflinger: EffectModules are updated with device change

Issue: Effects modules are not updated with the device change
information
Fix: 1) Add setDevice information to mLPAEffectChain
2) Remove the return after sending the device route information to
Direct track so that mixer thread is also aware of the device
change for EffectsChain

Change-Id: I82936cd47290946a5e4772e448669d81e0e4d6f5

libmedia : Add a NULL pointer check

- Print frame count in AudioTrack::dump() only if the control
  block is valid

Change-Id: Icf594eb721b48795c43d7bd165f6086031ce6efd
CRs-Fixed: 435050

libstagefright: Query AudioSystem for suggested record mute duration

- AudioSource mutes a pre-defined duration (defined by kAutoRampStartUs)
  at the beginning of a recording.
- Instead, query the audio system for any ongoing playback streams
  and use its output latency to calculate the duration to mute the incoming PCM stream.
- This assumes all current playback threads will be paused once recording
  is started.

Change-Id: Ie9b1d62e7be803ef1d8a59127b95c73e03fa5ce6
CRs-Fixed: 438149

libstagefright: Convert mono to stereo for LPA clips

- Sound effects are not supported for mono clips
- Repetative calling of effects_configure and effect_process for
  mono clips is resulting in crash in the sound effects library.
- So, Mono clips are now converted to stereo by copying the left
  sample to right.
- This is same as what Resampler does in Non-LPA Playback.

This commit is a port of fcc0647fab20ceaf1c07bc10bb243f14c48b114c
CRs-Fixed: 421639

Change-Id: Ie579c8d11afe3db8d42a35956e8bf23eeb88cfe6

audioflinger: Fix to set volume from MediaPlayer in Tunnel mode

Issue: MediaPlayer.setVolume does not have effect on Playback
volume in TunnelPlayer mode
Fix: the left and right volume parameters of setVolume are
hardcoded and defaulted in DirectAudioTrack. Updating the
parameters from the input arguments fixes the issue

Change-Id: I8a107ce57284b225b17d95fed0f69e3adc5fb131
CRs-Fixed: 441849

libstagefright: Enable Tunnel Decode for select formats

- Enable tunnel mode decode only if the audio mime type
  matches a supported list.

Change-Id: I32afd83e5fda1e90cb671dd747f17cb83bb84fc1
CRs-Fixed:437651

framework/av:: Add support to decode mp3 data in mp4 container

- Added support to decode mp3 data in mp4 container packed as mp4a
  atom and .mp3 atom as well.

Port of 8fa3774adf9259b33ee721cfaeff26da42c29928

Change-Id: I1a04022f30a9f6516575440aba7652986ab7dc58
CRs-Fixed: 439897

audiomixer: Use High Quality resampler

Use very high quality resampler to upsample to 48KHz sample
rate.

Change-Id: I1ba5b839f1e74ae71b405538d970e6a966bd1d47
CRs-fixed: 416730

audioflinger: Fix a deadlock

- A deadlock will happen if the obit recipient
  registered by the DirectAudioTrack is called.
- Fix this by moving the lock acquisition in DirectAudioTrack::clearPowerManager()
  to after DirectAudioTrack::releaseWakeLock() is called.
- Also synchronize use of mPowerManager in the DirectAudioTrack
  destructor with DirectAudioTrack::clearPowerManager()

Change-Id: Ib127db1406c4a61a4054ca0cf30f4c7347a5c92a
CRs-Fixed: 444093

libstagefright: TunnelPlayer: update condition to send SEEK_COMPLETE

- If the client tries to seek to 0 (e.g as a result of LOOPING)
  without ever calling getPosition(), we will always sent an immediate
  seek notification without seeking.

Change-Id: Id2b9d00c611278d0521cb6fd402710f0ec37bbdd
CRs-Fixed: 441411

libstagefright: Remove unnecessary code from TunnelPlayer

- TunnelPlayer tries to mimick AudioPlayer when trying
  to delete the extractor source.
- It is needed for AudioPlayer as the OMXCodec object
  is referenced by the CallbackDispatcher as well as AudioPlayer.
- This condition is not true for TunnelPlayer, so why do it.

Change-Id: I79c4e17d01910e73ad01c5640ef374626313a18e
CRs-Fixed: 442365

Add MediaDebug header from CAF

Change-Id: I68dbe72f86a49685b82b64927d1aa80231647a7a