stagefright: 24-bit audio support via offloading

 * PCM offload feature can handle 24 bit streams padded to 32 bits,
   bypassing resampling and truncation.
 * Add support for 32-bit padding in FLAC and WAV decoders
 * Refactor the FLACExtractor a little
 * Set flags where appropriate
 * Tested with 96KHz/192KHz 24-bit FLAC files on msm8974pro
 * Audiophiles, rejoice!

Change-Id: I87bfabd991da34fbb6115e69ee5a935d941c29da
Merge remote-tracking branch 'cm/cm-11.0' into cm-11.0
stagefright: Fix compile for non-QCOM_HARDWARE

* AUDIO_FORMAT_FLAC is only defined for QCOM_HARDWARE, move it inside
  the AV_ENHANCEMENTS ifdef so only AV_ENHANCEMENTS enabled devices can
  possibly offload it.

Change-Id: I83c1d527527c2545c5cea599fb01632604c73c23
Merge remote-tracking branch 'cm/cm-11.0' into cm-11.0
appop: protect mediaserver with OP_RECORD_AUDIO op check.

Some apps could use a binder to direct link to the mediaserver, bypassing
the android media framework security. Add an internal check to createTrack and openRecord
mediaserver's methods to protect them from undesired access.

Thanks to Blackphone for discovery and contribute this patch.

Change-Id: I12601d19ee093cf4c76ebf3a96aa63f6562dafac
Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
libaudioflinger: add stock resampler in pcm offload path

- when samplerate changes in b\w playback, resampler should be plugged-in
  so that the o\p sample rate remains the same to h\w
- this resampler is only enabled on 16 bit PCM path, when channel count is
  <= 2 and channel count doesn't change mid-stream
- once the sample rate resets to original\initial sample rate, resampling
  should not be done
- by default this feature is disabled

Change-Id: Ic27bbf9174d0a83297ebc4418eebdc8850272a6b
frameworks/av: Add output close in AudioTrack destructor for offload case

Close audio output handle inside AudioTrack destructor for
offload case to make output handle close/open independent of
each other and support multiple concurrent offload plyabck
session.
This is controlled runtime based on system property:
audio.offload.multiple.enabled

Change-Id: I98b3a6fe03bfddca2ed01a2adc5a33e4ad540e67
Merge remote-tracking branch 'cm/cm-11.0' into cm-11.0
stagefright: Handle offload fallback for 24-bit tracks

 * We need to carefully handle fallback in the 24-bit lossless
   sources for outputs such as A2DP, which cannot use PCM
   offload.
 * Clean up the code while in here as well.

Change-Id: I398d964a3c5b18f58fcc79376bc29222e796badc
Merge remote-tracking branch 'cm/cm-11.0' into cm-11.0
Merge "appop: protect mediaserver with OP_RECORD_AUDIO op check." into cm-11.0
Merge remote-tracking branch 'cm/cm-11.0' into cm-11.0
Revert "appop: protect mediaserver with OP_RECORD_AUDIO op check."

This reverts commit 688b6b46db58bceb8fa0e5b3a14ea192153c0fd3.

Change-Id: I8b1feb4eb22257024ef4426988be7d5f084df9db
Merge "Revert "appop: protect mediaserver with OP_RECORD_AUDIO op check."" into cm-11.0
Merge remote-tracking branch 'cm/cm-11.0' into cm-11.0
audioflinger: exchange AUDIO_SOURCE_HOTWORD with AUDIO_SOURCE_VOICE_RECOGNITION for pre-kitkat blobs.

Change-Id: I6241cf6667c97dfd7fb1c238b1fbadea5cdb863e
appop: reimplement OP_RECORD_AUDIO op check in mediaserver

Obtain the real package name for the calling app from the packagemanager binder and
link to client registry. Also block only openRecord and createEffect (which are the
methods used to record audio), and ignore the createTrack that is used also by
legacy audio apps and isn't related to audio recording.

Change-Id: Iedd6022fab1efab47a29da7bd07e922dcdeb294c
Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
Camera: Add Samsung klte camera parameters

Change-Id: I3a30f901befc001a8be6788641226405c6d550ca
Merge remote-tracking branch 'cm/cm-11.0' into cm-11.0
Merge "appop: reimplement OP_RECORD_AUDIO op check in mediaserver" into cm-11.0