frameworks/base: Add support for FM feature.

- Added changes for FM device

Change-Id: I61ab748166e3a8703054b664ba9c53da251f6b83
(cherry picked from commit fa1e277978d7bdf139fe2d790ef4a8b413d31c01)
(cherry picked from commit 2df42ca1ad2b04b9b4920d90ee60658150dfb210)
(cherry picked from commit 292b40317c470e9579bf875f43adecccc2f98b3e)
audio: Define Proxy device

- Added Proxy device changes

Change-Id: I47921d696171de40bcfc30ebf99d4cafa0d4d4a3
(cherry picked from commit a8b7ed78ec088bc6924854661bacde51d7194ab3)
(cherry picked from commit cff61cfd964a1150919d9bfa7ec0ebfe35d5f247)
(cherry picked from commit bf8f7a2a574cb2e6aafae3efa6e4ee163ef65cf7)
media: Configure audio encode parameters only for valid audio codec.

Added extra check for audio codec in profile
(Cherrypicked from commit eed39d0053dee6649424867418e511b918b3c634)

Change-Id: Ie1ac5252e3d544ce61af2b3ae5080ec9c6966e44
(cherry picked from commit 81dfde16ffb3fc8f6b110a3df2921a3d3361db10)
(cherry picked from commit 8069457a313853247f2017237e29bcf3b3eb2323)
(cherry picked from commit db4bf86a6b50ce84b5a678476ee08c12f0fe272b)
frameworks/base: media: add support for DIVX files

Change-Id: I6e922c5d6e17ee590606268af97b7894f35d19ae
(cherry picked from commit 47fea00316203aebba194644f95ca58ef4ff4400)
(cherry picked from commit 1f3ab64cf5bb19ec2e8a996750f44389d4d07187)
(cherry picked from commit 066dff510ec44ee06c3a375e32133e21fbedf9fb)
audio: add support for MSM audio formats

- Add support for EVRC, QCELP, and WMA formats
- Add definition for 5.1 channel recording
- Reference change If3676b88fa287b484ef8616c0a6b67177b61a720

Change-Id: I6b6e5ca98921adeadd2a3d76580fe85fb28eeaf0
(cherry picked from commit 10c4f204bb5ac78b9cf3854b536663ccd3d50333)
(cherry picked from commit 3f99cc5f134b0f00a52218ae1c0273cc11ae7702)
(cherry picked from commit 1d35b52c7c9cf1cfd3a3de372391a7a57f593af9)
audio: audio enhancements for playback and recording.

- Add playback and record support for EVRC, QCELP,
  WMA, AMRWBPLUS, WAV, ACE, and EC3.
- Add support for 5.1 channel recording.
- Add support for in call music.
- Add constants for call_state and vsid.
- Add definition for FM and proxy audio devices.
- Remove unnecessary format checks in frameworks.

Change-Id: If3676b88fa287b484ef8616c0a6b67177b61a720
(cherry picked from commit 6ca6cc15af88992ea485a458e67a8546b156672e)
(cherry picked from commit f65028d1752969bf43c853c1bb12ecd12055d5e8)
(cherry picked from commit b1952442db41188b74f331bd2397a579424821ab)
audio: aapt Support for mxmf file playback

mxmf files couldn't be played.
Added .mxmf file ext to kNoCompressExt array
CRs-Fixed: 465437

Change-Id: I4473380c0aa13f7c18b59aa48f07a87f7849a74c
(cherry picked from commit 42e898c4533e1c9adb37b45c1052414db0eba255)
(cherry picked from commit 40fedd02af600d221488f035abf8fe9d6a8ca215)
(cherry picked from commit 8a98792909ec37bf080a337e941b74c003a01c41)
  audio: Support for MSM audio formats

  -Add audio format support for Voip.

Change-Id: Ie045ba926b3e1266afd3fb6fba09af3a55daaeef
(cherry picked from commit d1810964ecd2d50064a1fed51049ddc354b9a788)
(cherry picked from commit cd9c6dc56bedcabca77c2a01c6fb15f4d2e8edd5)
(cherry picked from commit 01c09aeae38716860ef1a806985cc946dca93f60)
audio: libaudioeffect_jni GREF leak fix

- Excessive JNI global reference in AudioEffects.
- Global references created during native setup
  are not deleted.
- Global references are deleted in setup failure
  and during native release.

Change-Id: I3c90f3a00b2552b4b783375928afc94a7e441449
CRs-fixed: 413633
(cherry picked from commit f60e70097b84c4ef26eeb31024d52e5b1fc8aa64)
(cherry picked from commit 9c9279277ad10582ff3dcf5cad576d2d7f036569)
audio: Fix to enable USB volume during music playback

- The USB device had been added to the mFixedVolumeDevices
  because of which volume change was disabled for music
  stream
- Fixed by removing the USB device from the
  mFixedVolumeDevices.

Change-Id: I82b1876d152030ddcfe9ffc31924b6abe4b2509a
CRs-fixed: 439858
(cherry picked from commit b7ed482f7654d5657fb7497a95cc007229478886)
(cherry picked from commit ae67047a3f95ddde2565a76c44254ad714d3109d)
audio: Fix to remove exception in tonegenerator

- Framework reboot happens, if tonegenerator fails to create
  a track in audioflinger.
- The cause for framework reboot is, an exception thrown by
  tonegenerator if fails to init.
- Fix is to remove the exception and delete the tonegenerator
  instance.
CRs-fixed:466491

Change-Id: Ie7b87f787d8a885cc70be9af4ba9d04ecd691cc2
(cherry picked from commit 1cf494eddfef8f6c0c68dc28cd27203980d1767b)
(cherry picked from commit adf8475157fd8cba9ef527702f7b34f6335554eb)