summaryrefslogtreecommitdiffstats
path: root/camera
diff options
context:
space:
mode:
authorSundar Raman <a0393242@ti.com>2012-06-28 12:02:01 -0500
committerDaniel Levin <dendy@ti.com>2012-07-25 08:56:44 -0500
commitdbe882e2f8d75f60653114217f1a4ec1250e9b75 (patch)
tree7d68dde309ef4a2b4fda6467815eb5fac408b08f /camera
parentcfc30f5231838fda97bc436df095e9f6dd620d65 (diff)
downloadhardware_ti_omap4-dbe882e2f8d75f60653114217f1a4ec1250e9b75.zip
hardware_ti_omap4-dbe882e2f8d75f60653114217f1a4ec1250e9b75.tar.gz
hardware_ti_omap4-dbe882e2f8d75f60653114217f1a4ec1250e9b75.tar.bz2
Revert "Camera HAL: Second stereo camera added"
This reverts commit 67045e06e7b58e644a5089a2a253879abc28a5fd. Conflicts: camera/OMXCameraAdapter/OMXAlgo.cpp Change-Id: Id22974e1822d06f574548afd86db398c76c05a9b
Diffstat (limited to 'camera')
-rw-r--r--camera/OMXCameraAdapter/OMXAlgo.cpp11
-rw-r--r--camera/OMXCameraAdapter/OMXCameraAdapter.cpp110
-rw-r--r--camera/inc/CameraProperties.h2
-rw-r--r--camera/inc/OMXCameraAdapter/OMXCameraAdapter.h33
4 files changed, 49 insertions, 107 deletions
diff --git a/camera/OMXCameraAdapter/OMXAlgo.cpp b/camera/OMXCameraAdapter/OMXAlgo.cpp
index 2dacb68..f24cee9 100644
--- a/camera/OMXCameraAdapter/OMXAlgo.cpp
+++ b/camera/OMXCameraAdapter/OMXAlgo.cpp
@@ -76,16 +76,15 @@ status_t OMXCameraAdapter::setParametersAlgo(const CameraParameters &params,
mCapabilitiesOpMode = MODE_HIGH_QUALITY;
}
- if (mIsStereo) {
- mCapabilitiesOpMode = MODE_STEREO;
+ if ( mSensorIndex == 2 ) {
+ mCapabilitiesOpMode = MODE_STEREO;
}
- if ( mCapMode != capMode )
- {
+ if ( mCapMode != capMode ) {
mCapMode = capMode;
mOMXStateSwitch = true;
mPendingPreviewSettings |= SetCapMode;
- }
+ }
CAMHAL_LOGDB("Capture Mode set %d", mCapMode);
@@ -636,7 +635,7 @@ status_t OMXCameraAdapter::setCaptureMode(OMXCameraAdapter::CaptureMode mode)
{
OMX_INIT_STRUCT_PTR (&camMode, OMX_CONFIG_CAMOPERATINGMODETYPE);
- if (mIsStereo)
+ if ( mSensorIndex == OMX_TI_StereoSensor )
{
if ( OMXCameraAdapter::VIDEO_MODE == mode ) {
CAMHAL_LOGDA("Camera mode: STEREO VIDEO");
diff --git a/camera/OMXCameraAdapter/OMXCameraAdapter.cpp b/camera/OMXCameraAdapter/OMXCameraAdapter.cpp
index 5562f9b..8b2fcc0 100644
--- a/camera/OMXCameraAdapter/OMXCameraAdapter.cpp
+++ b/camera/OMXCameraAdapter/OMXCameraAdapter.cpp
@@ -47,10 +47,6 @@ const char OMXCameraAdapter::DEFAULT_PROFILE_PATH[] = "/data/dbg/profile_data.bi
#define FPS_PERIOD 30
Mutex gAdapterLock;
-// android <-> omx camera indexes correlation container filled when
-// omx camera capabilities are parsed
-static Vector<OMXCameraAdapter::OMXCamera> OMXCameras;
-
/*--------------------Camera Adapter Class STARTS here-----------------------------*/
status_t OMXCameraAdapter::initialize(CameraProperties::Properties* caps)
@@ -249,7 +245,7 @@ status_t OMXCameraAdapter::initialize(CameraProperties::Properties* caps)
mEXIFData.mModelValid = false;
mEXIFData.mMakeValid = false;
- if (!mIsStereo) {
+ if (mSensorIndex != 2) {
mCapabilities->setMode(MODE_HIGH_SPEED);
}
@@ -1165,7 +1161,7 @@ status_t OMXCameraAdapter::setFormat(OMX_U32 port, OMXCameraPortParameters &port
CAMHAL_LOGEB("Unsupported port index (%lu)", port);
}
- if (mIsStereo && (OMX_CAMERA_PORT_VIDEO_OUT_VIDEO != port)) {
+ if (( mSensorIndex == OMX_TI_StereoSensor ) && (OMX_CAMERA_PORT_VIDEO_OUT_VIDEO != port)) {
ret = setS3DFrameLayout(port);
if ( NO_ERROR != ret )
{
@@ -4056,24 +4052,13 @@ OMXCameraAdapter::CachedCaptureParameters* OMXCameraAdapter::cacheCaptureParamet
return params;
}
-OMXCameraAdapter::OMXCameraAdapter(int sensor_index)
+OMXCameraAdapter::OMXCameraAdapter(size_t sensor_index)
{
LOG_FUNCTION_NAME;
- mSensorIndex = sensor_index;
- mIsStereo = false;
-
- for (int i = 0; i < static_cast<int>(OMXCameras.size()); i++) {
- const OMXCamera & omxCam = OMXCameras.itemAt(i);
- if (omxCam.GetAndroidId() == sensor_index) {
- mSensorIndex = omxCam.GetOmxId();
- mIsStereo = omxCam.IsStereo();
- break;
- }
- }
-
mOmxInitialized = false;
mComponentState = OMX_StateInvalid;
+ mSensorIndex = sensor_index;
mPictureRotation = 0;
// Initial values
mTimeSourceDelta = 0;
@@ -4196,7 +4181,7 @@ extern "C" CameraAdapter* OMXCameraAdapter_Factory(size_t sensor_index)
if ( adapter ) {
CAMHAL_LOGDB("New OMX Camera adapter instance created for sensor %d",sensor_index);
} else {
- CAMHAL_LOGEB("OMX Camera adapter create failed for sensor index = %d!",sensor_index);
+ CAMHAL_LOGEA("OMX Camera adapter create failed for sensor index = %d!",sensor_index);
}
LOG_FUNCTION_NAME_EXIT;
@@ -4376,8 +4361,7 @@ public:
}
status_t fetchCapabilitiesForSensor(int sensorId,
- CameraProperties::Properties * properties,
- bool stereo_mode)
+ CameraProperties::Properties * properties)
{
CAMHAL_LOGD("Disabling all ports...");
const status_t disableAllPortsError = disableAllPorts();
@@ -4405,7 +4389,7 @@ public:
}
status_t err = NO_ERROR;
- if (stereo_mode) {
+ if ( sensorId == 2 ) {
CAMHAL_LOGD("Camera mode: STEREO");
properties->setMode(MODE_STEREO);
err = fetchCapabiltiesForMode(OMX_CaptureStereoImageCapture,
@@ -4569,6 +4553,8 @@ extern "C" status_t OMXCameraAdapter_Capabilities(
LOG_FUNCTION_NAME;
supportedCameras = 0;
+
+ int num_cameras_supported = 0;
OMX_ERRORTYPE eError = OMX_ErrorNone;
Mutex::Autolock lock(gAdapterLock);
@@ -4585,60 +4571,44 @@ extern "C" status_t OMXCameraAdapter_Capabilities(
return ErrorUtils::omxToAndroidError(eError);
}
- // clear container previous state
- while (!OMXCameras.empty()) {
- OMXCameras.erase(OMXCameras.end());
- }
+ // Continue selecting sensor and then querying OMX Camera for it's capabilities
+ // When sensor select returns an error, we know to break and stop
+ while (eError == OMX_ErrorNone &&
+ (starting_camera + num_cameras_supported) < max_camera) {
- // Parse first all sensors in mono mode then continue with stereo mode
- for (bool stereo_mode = false; (starting_camera + supportedCameras) < max_camera; stereo_mode = true) {
- bool stereo_mode_found = false;
- // Go through all sensor indexes
- for (int sensorId = 0; sensorId <= OMX_TI_StereoSensor && (starting_camera + supportedCameras) < max_camera; ) {
- CapabilitiesHandler handler;
- OMX_CALLBACKTYPE callbacks;
-
- callbacks.EventHandler = CapabilitiesHandler::eventCallback;
- callbacks.EmptyBufferDone = 0;
- callbacks.FillBufferDone = 0;
-
- eError = OMXCameraAdapter::OMXCameraGetHandle(&handler.componentRef(), &handler, callbacks);
- if (eError != OMX_ErrorNone) {
- CAMHAL_LOGEB("OMX_GetHandle -0x%x", eError);
- goto EXIT;
- }
+ CapabilitiesHandler handler;
- CameraProperties::Properties * properties = properties_array + starting_camera + supportedCameras;
- const status_t err = handler.fetchCapabilitiesForSensor(sensorId, properties, stereo_mode);
+ OMX_CALLBACKTYPE callbacks;
+ callbacks.EventHandler = CapabilitiesHandler::eventCallback;
+ callbacks.EmptyBufferDone = 0;
+ callbacks.FillBufferDone = 0;
- // clean up
- if (handler.component()) {
- CAMHAL_LOGD("Freeing the component...");
- OMX_FreeHandle(handler.component());
- CAMHAL_LOGD("Freeing the component... DONE");
- handler.componentRef() = NULL;
- }
+ eError = OMXCameraAdapter::OMXCameraGetHandle(&handler.componentRef(), &handler, callbacks);
+ if (eError != OMX_ErrorNone) {
+ CAMHAL_LOGEB("OMX_GetHandle -0x%x", eError);
+ goto EXIT;
+ }
- if (err == NO_ERROR) {
- OMXCameras.add(OMXCameraAdapter::OMXCamera(
- starting_camera + supportedCameras, sensorId, stereo_mode));
- supportedCameras++;
- if (stereo_mode) {
- stereo_mode_found = true;
- }
- }
- // if stereo sensor already found skip parsing OMX_TI_StereoSensor
- if (++sensorId == OMX_TI_StereoSensor && (!stereo_mode || stereo_mode_found)) {
- break;
- }
+ const int sensorId = num_cameras_supported;
+ CameraProperties::Properties * properties = properties_array + starting_camera + sensorId;
+ const status_t err = handler.fetchCapabilitiesForSensor(sensorId, properties);
+
+ // clean up
+ if(handler.component()) {
+ CAMHAL_LOGD("Freeing the component...");
+ OMX_FreeHandle(handler.component());
+ CAMHAL_LOGD("Freeing the component... DONE");
+ handler.componentRef() = NULL;
}
- if (stereo_mode) {
+
+ if ( err != NO_ERROR )
break;
- }
+
+ num_cameras_supported++;
+ CAMHAL_LOGDB("Number of OMX Cameras detected = %d \n",num_cameras_supported);
}
- CAMHAL_LOGDB("Number of OMX Cameras detected = %d \n", supportedCameras);
-EXIT:
+ EXIT:
CAMHAL_LOGD("Deinit...");
OMX_Deinit();
CAMHAL_LOGD("Deinit... DONE");
@@ -4650,6 +4620,8 @@ EXIT:
return ErrorUtils::omxToAndroidError(eError);
}
+ supportedCameras = num_cameras_supported;
+
LOG_FUNCTION_NAME_EXIT;
return NO_ERROR;
diff --git a/camera/inc/CameraProperties.h b/camera/inc/CameraProperties.h
index 7dba09d..dcfc2c7 100644
--- a/camera/inc/CameraProperties.h
+++ b/camera/inc/CameraProperties.h
@@ -32,7 +32,7 @@
namespace android {
-#define MAX_CAMERAS_SUPPORTED 4
+#define MAX_CAMERAS_SUPPORTED 3
#define MAX_SIMUL_CAMERAS_SUPPORTED 1
#define MAX_PROP_NAME_LENGTH 50
#define MAX_PROP_VALUE_LENGTH 2048
diff --git a/camera/inc/OMXCameraAdapter/OMXCameraAdapter.h b/camera/inc/OMXCameraAdapter/OMXCameraAdapter.h
index 188c3eb..912ea68 100644
--- a/camera/inc/OMXCameraAdapter/OMXCameraAdapter.h
+++ b/camera/inc/OMXCameraAdapter/OMXCameraAdapter.h
@@ -284,34 +284,6 @@ public:
BracketingValueCompensationForced
};
- class OMXCamera
- {
- public:
- OMXCamera() : mAndroidId(-1), mOmxId(-1), mIsStereo(false) {}
- OMXCamera(const int android_id, const int omx_id, const bool is_stereo) :
- mAndroidId(android_id), mOmxId(omx_id), mIsStereo(is_stereo) {}
-
- int GetAndroidId() const
- {
- return mAndroidId;
- }
-
- int GetOmxId() const
- {
- return mOmxId;
- }
-
- bool IsStereo() const
- {
- return mIsStereo;
- }
-
- private:
- int mAndroidId;
- int mOmxId;
- bool mIsStereo;
- };
-
class GPSData
{
public:
@@ -417,7 +389,7 @@ public:
public:
- OMXCameraAdapter(int sensor_index);
+ OMXCameraAdapter(size_t sensor_index);
~OMXCameraAdapter();
///Initialzes the camera adapter creates any resources required
@@ -1189,8 +1161,7 @@ private:
Mutex mDoAFMutex;
Condition mDoAFCond;
- int mSensorIndex;
- bool mIsStereo;
+ size_t mSensorIndex;
CodingMode mCodingMode;
// Time source delta of ducati & system time