screenrecord: Add audio support

Adds audio recording to the screenrecord system. Note that
while recording, the audio is muted from the device output,
and that the audio volume is controlled separately (so make
sure to turn up your volume if you hear nothing).
Audio from the microphone can also be recorded by adding
--microphone to the command line.

Change-Id: I97dfcaf3d93b786c5466e1f4215549e3d015bcf0
fix screenrecord abort issues

Change-Id: I95ae71e49506d3dfa7df691f0a9b6464ff691ff1
Merge "screenrecord: Add audio support" into android-4.4
[2/4] av: Audio Themes Support

On the Java side, Android has support for both a
Video Record Start sound, and a different Video
Record Stop sound. However, this part here only
supports one video recording sound.
We added support for RECORDING_STOP sound (by default,
the same as RECORDING).

Change-Id: Iaebddd8ebf8b21633e802589a4a6175492df8f29
screenrecord: Enable SUBMIX_IN as well and cleanup on exit

While on Nexus 5/Nexus 7 (AOSP QCOM audio), trying to turn on
SUBMIX_IN fails and is not needed, it is required on Find 5
and N1 (CAF QCOM audio), or otherwise SUBMIX_OUT won't turn
on.
We also now release the audio routing as it wouldn't revive
the audio speakers otherwise.

Change-Id: I0f80a232304733e0b0a834b188b8cfa5b88915f3
Merge "screenrecord: Enable SUBMIX_IN as well and cleanup on exit" into android-4.4
AudioMixer: fix artifact on 2 short sounds

On multiple devices, when 2 short sounds are played simultaneously, there will be artifact
on the speaker due to the buffer not being cleared.

A common example of this is lockscreen sounds during music playback.

Change-Id: Ifcdbbd7e443aa78ef392f14003d498404f2e4d3a
Fixes for mic and A/V issues on capri based devices

[PATCH 1/2] OMXCodec: set default input buffer size

Broadcom OMX only set the buffer size to 65536 by default which
is not enough for higher bitrate video

[PATCH 2/2] OMXCodec: set default input buffer size only for BCM
decoder

Needed for capri based i9082 device .

Change-Id: Iee5d02829da46f91a326c0fab3e60996af55a1f9
Add LG camera HAL parameters

Change-Id: I0a1d8c4216654abeb3de9882637ad15bc9c23dc9
Add missing functions and signatures for older OMX video libs compat

Nvidia OMX libs need these to work
That fixes hardware OMX video codecs + Camera on TF101

AudioTrack: Do not inline getSessionId either

Should help for other nvomx versions that requires it.

Change-Id: I9f9afa844edf3e6d1fd25524f2cc155b974245ec
Camera: QCOM legacy definitions,HTC cam switch,NO_UPDATE_PREVIEW

Updating Camera parameters, and service with several
compatibility patches:

1., QCOM legacy CameraParameters and functions:
Adding these will make ICS qcomm camera blobs work on JB 4.3.
Use BOARD_USES_QCOM_LEGACY_CAM_PARAMS := true in BoardConfig
to use this.

Also fixes the problem of legacy qcom
camera blobs with recent libcameraservice QCOM_HARDWARE changes,
where the orientation is messed up on first
preview: the fix is leaving out setPreviewWindow(window) for
legacy qcomm cam blobs.

2., Also adding NO_UPDATE_PREVIEW flag for legacy purposes.

3., Adding adding the set orientation patch:
Always set buffers orientation when setting the qcom camera preview window
Fixes the rotated preview on TouchPad
https://github.com/CyanogenMod/android_frameworks_base/commit/1a8e41a3c7434737db89b604352575f8b3109e7a

4., camera: Full support for HTC camera switch

5., Adding more parameters for HTC Explorer

Change-Id: I2bfc72b8ef027665356788f1db7f96b31d037dbe
audioflinger/Threads.cpp: Remove spurious QCOM_HARDWARE

Why the heck was this #ifdefed?  It's in AOSP too

Change-Id: I86a09b892dc87329dab092cd475d3ac1623547ed
Screenrecord: allow force mic for audio

Some older devices audio blobs do not support audio submix,
allow those devices to force using the mic for audio while
screenrecording.

Change-Id: Ief3a14e00d0bf32cc131742fb82556621f54be36
AudioTrack: correct typo

Remove the extraneous dash when initializing status

Change-Id: Ie18e380ec6c2c45f88202c860573b583fd2a8129
audio: Increase kFastTrackMultiplier from 1 to 2

- Fast Track implementation is modified to use single
  buffer in kitkat. This is causing audio breaks when
  long DTMF tones are played
- Fix is to use double buffering to avoid audio breaks

Change-Id: Idc811ee7fe0d7f49bfa95ad34bc6e88bd04b734e
CRs-Fixed: 561567
audio: Use composition instead of multiple inheritance

- AudioTrack is derived from BnDirectTrackClient along
  with RefBase to receive the notifications from
  AudioFlinger in tunnel/LPA mode. This is breaking
  binary compatibility for the clients which use native
  AudioTrack directly instead of Java based AudioTrack
  API
- Fix is to use composition here instead of inheritance

Change-Id: I9fd2c61cff5629924e3b08f63559679e0263bcfd
CRs-fixed: 607574
libmediaplayerservice: be careful what you include
cause it just might cause *bugs* which will take you a long time to find and fix

Change-Id: Ie774813858b2f9a6afc1165bddd0351ff153975d
libmediaplayerservice: Fix commit https://github.com/omnirom/android_frameworks_av/commit/4fbfd595ee192e0617c0cedf58259c8f41f466dd

Change-Id: I5c90d7abe13bffa778e8f955f280b44156f13b2d
libstagefright: bring back mistakenly removed codec quirks

http://review.cyanogenmod.org/#/c/59396/ has mistakenly removed
3 of the codec quirks that are required for certain audio codecs
on OMAP3.

https://github.com/CyanogenMod/android_device_lge_p970/blob/cm-10.1/configs/media_codecs.xml#L28

The implementation of the quirks are still in the upstream code
and they have nothing to do with Legacy HTC.

Change-Id: I2d47bc9cbb451675c5bac6e725c59b367ff458dc
Merge "libstagefright: bring back mistakenly removed codec quirks" into android-4.4