camera: Remove deprecated QCOM camera hacks

Change-Id: If48c5b7c904d26ec2a8307fa690f983660fd7b5a
CameraClient: Enables meta data notifications

- Adds the needed functionality for enabling/disabling
  metadata messages depending on the camera client
  commands.

Change-Id: Iab597d5519b8fb85ee21c824ec19e9aaec9b5219
CameraService: Adds support for longshot mode

- This change introduces additional functionality inside
  CameraClient for supporting continuous compressed data
  callbacks. This is needed for 'Burst/Long shot' mode
  where we could have indefinite number of callbacks after
  capture is triggered.

CRs-Fixed: 514199
Change-Id: I8b155e305a836729b071e5388a7046c6347bb9f3
Merge remote-tracking branch 'cm/cm-10.2' into cm-10.2
camcorder pause feature

--libmedia: add pause() interface in MediaRecorder and IMediaRecorder and add Pause state in mediarecorder's state machine
--libmediaplayerservice: add pause() interface in MediaRecorderClient and StagefrightRecorder
--libstagefright:      1.stop-in-pause implementation in recording pipeline for pause feature;
--camerasource: support switch between start() and stop()
--audiosource:  support switch between start() and stop()
--soft aacenc component:  clear some variables when doing flush to support re-start
--soft amrnbenc component: clear some variables when doing flush to support re-start

Change-Id: I3036ef8f4cc7644c1d36aa0b19e64fc9dc12c1f8
Camera: Dont process dataCalllback if recording is stopped

Issue: Here stopRecording is not finished as the previous
recording frame process has not completed. dataCallbackTimeStamp()
in CameraSource.cpp has stuck in the thread itself waiting for a lock.
In between, reset() function in CameraSource.cpp has called
and acquired lock. Reset() function calls stopRecording.
So the dataCallbackTimeStamp() is continuously waiting.
Unless dataCallbackTimeStamp returns, processRecordFrame
in HAL will not finish.

CRs-Fixed: 518351

Change-Id: I19bbdb4b50b0113a419c9229f0e26c56e8ce91e8
Merge remote-tracking branch 'cm/cm-10.2' into cm-10.2
camera: Re-add micromanagement of preview metadata

 * Some devices still have issues without this fix.

Change-Id: Iae2d4410086fb38bf7f9abeee62c05cae824d436
Merge remote-tracking branch 'cm/cm-10.2' into cm-10.2
Fix build: QCOM_ICS_COMPAT
camera: bring back more of the preview metadata workaround.

Fixes issues with switching between FFC and back camera on some devices.

Change-Id: Ie2cef65263816b22e45513cfc639c32b48a49bec
Merge remote-tracking branch 'cm/cm-10.2' into cm-10.2
AudioPolicyService: Support MR1 audio_policy

Change-Id: I26abd352f327256856021b311efb1e23b46b6023
Merge remote-tracking branch 'cm/cm-10.2' into cm-10.2
Libstagefright modifications for Dolby UDC DD/DD+ Decoder support

Comprising:
Mimetype definitions
MP4 container support
MPEG2 PS/TS container and ES support
OMX Component/Codec Registration

Change-Id: Icd734d07ee85a933b1833a84cf178b2a52b78f13
libstagefright: Use proper ctts offset

Calculate ctts offset as difference between composition
time and decoding time, and avoid adding kMaxCttsOffsetTimeUs
as it increases the sample timestamp by the same amount
which leads to av sync loss.

CRs-Fixed: 524739
Change-Id: I75a1bb594536623e3a445af2ee1ceb0cf0926a6e
libmedia: Update the DSDA tone frequencies

Change the DSDA tone frequencies to 450 Hz
for Hold Recall, Local Call Waiting
and Supervisory/Local Call Hold tones.

Change-Id: I8cfffdff51c02112ec690bbb26781813c24b8e79
libstagefright: Create Extended Extractor for HEVC and AMRWB+

- Create Extended extractor when
  . Audio format is AMRWB OR
  . Default extractor not able to find any track OR
  . Default extractor finds one track and is Video OR
  . Default extractor finds one track and is neither Audio nor
    Video OR
  . Default extractor finds two or more track, and either Video
    or Audio or both tracks(s) not present OR
  . Default extractor finds both Audio and Video track found and
    Audio format is AMRWB

Change-Id: I17d56c72d8f76314be9bb7ac4fc1b7ac88f2d762
libstagefright: Add support for AC3 and EC3 playback in tunnel mode

Add support for AC3 and EC3 playback in tunnel mode

Change-Id: If5de26d3ff9e63737d6ed43b904c6094f93fbfc0
libstagefright: For interlace, set decoder in arbitrary mode

In arbitrary mode, frame parsers sends individual fields
to core. Once both the field is decoded, output done (FBD)
is sent back to client.
Default frame by frame mode will send both the fields in
a single buffer to core, which might decode only one field
or will throw up error.

CRs-Fixed: 531034
Change-Id: I31844093b6a93d3a62577fc8d799353d30573c17