CameraService: Setup extended callbacks

Pass camera_device_extended_ops_t instance to HAL to initialize
extended callbacks if any.

Change-Id: Ie1c700d2aed05bbd4c2a8ba4dc6118a83397f4d3
Signed-off-by: Daniel Levin <dendy@ti.com>
Camera: Implementation for takePictureWithParameters()

1. Implemement initial ShotParameters class which inherits
   CameraParameters, extending it with extra keys.
2. Add takePictureWithParameters() to take in ShotParameters.
3. The ShotParameters is built as separate static library
   libcpcamcamera_client to avoid breaking ABI with regular
   Camera clients.

Change-Id: I80a359eda2bbd060c6ddd9958e2c3ef86f7e79b6
Signed-off-by: Tyler Luu <tluu@ti.com>
Signed-off-by: Vladimir Petrov <vppetrov@mm-sol.com>
Signed-off-by: Daniel Levin <dendy@ti.com>
Camera: Initial implmentation of BufferSource API

In this initial implementation of setBufferSource(), BufferSource is
nothing but an instance of the SurfaceTexture class and passed as a
preview_stream_ops to camera HAL module.

BufferSource will be the allocator interface for tap-in and tap-out
points to allow for zero-copy buffer passing between processes using
camera.

Change-Id: I54ae0690928cd972a93b2cef035041ba8f23c8b8
Signed-off-by: Tyler Luu <tluu@ti.com>
Signed-off-by: Vladimir Petrov <vppetrov@mm-sol.com>
Signed-off-by: Daniel Levin <dendy@ti.com>
Camera: Add camera_metadata_t structure

- POD structure containing metadata for a given frame
- The ICS equivalent of this patch implements metadata as
  a String8 based object that will be passed around. Scrapping
  that approach due to latency and overhead of passing large data
  with a string.
- Used to pass metadata information to applications via BufferQueue

Change-Id: I1e9800dcbf38e3ec058ba7205e639cb28dbecb0c
Signed-off-by: Tyler Luu <tluu@ti.com>
Signed-off-by: Daniel Levin <dendy@ti.com>
Camera: Add flush config and EV compensation

Added support to set EV compensation array and flush shot config
in ShotParameters.

Application can set EV compensation vector as:
-200,-100,0,+100,0,-100,-200

If Application has set flush shot config option, the internal shot
config queue could be cleared before to set the new values.

Change-Id: I11e6a7a7f72325b4919ce914ddc43a96a8ff7b49
Signed-off-by: Vladimir Petrov <vppetrov@mm-sol.com>
Signed-off-by: Tyler Luu <tluu@ti.com>
Signed-off-by: Daniel Levin <dendy@ti.com>
camera: Add parameters for HTC msm8960

This is mainly taken from the ICS commit
dc4a6eb75a44136c9e753d1569058a7cfc1e1704

all ifdef'ed with QCOM_HARDWARE
and necessary for the camera on the HTC One S (ville)

Change-Id: Ieaf3e9110c78d677a16e096ae6848d3a08aa5ddc
Merge "CameraService: Setup extended callbacks" into p-jb-release
Merge "Camera: Implementation for takePictureWithParameters()" into p-jb-release
Merge "Camera: Initial implmentation of BufferSource API" into p-jb-release
Merge "Camera: Add camera_metadata_t structure" into p-jb-release
Merge "Camera: Add flush config and EV compensation" into p-jb-release
Revert "CameraService: Setup extended callbacks"

This reverts commit 0c1b599861a7cd0c31c68ea0cc84a5d6cd1b3894.

Conflicts:

	services/camera/libcameraservice/CameraHardwareInterface.h

Change-Id: I6919ae2c2bb5afb63e3447e71af300029dfe95d2
Signed-off-by: Sundar Raman <sunds@ti.com>
Merge "camera: Add parameters for HTC msm8960" into jellybean
CameraService: Setup extended callbacks

Pass camera_device_extended_ops_t instance to HAL to initialize
extended callbacks if any.

Change-Id: Iffe5cac6dccf98ae021f86fc696ae40a97ab5fa3
Signed-off-by: Daniel Levin <dendy@ti.com>
Merge branch 'jellybean' of git://github.com/CyanogenMod/android_frameworks_av into jellybean
Merge branch 'p-jb-release' of git://git.omapzoom.org/platform/frameworks/av into jellybean

Conflicts:
	services/camera/libcameraservice/CameraService.cpp