summaryrefslogtreecommitdiff
authorjiyu.yang <jiyu.yang@amlogic.com>2014-11-05 06:07:19 (GMT)
committer jiyu.yang <jiyu.yang@amlogic.com>2014-11-05 12:53:40 (GMT)
commit0303373167fd9ae1040878b1b456fd53d79a00f6 (patch)
tree93f7f7baf7d373f59066689f52b3486111e64f94
parent39bf8d9b342cc6c955b6b2510d0cd4d33d5510db (diff)
downloadcamera-0303373167fd9ae1040878b1b456fd53d79a00f6.zip
camera-0303373167fd9ae1040878b1b456fd53d79a00f6.tar.gz
camera-0303373167fd9ae1040878b1b456fd53d79a00f6.tar.bz2
add flush_all_request interface
Change-Id: I728143be774b64502fe43801a69a5774b4a56c55 Signed-off-by: jiyu.yang <jiyu.yang@amlogic.com>
Diffstat
-rw-r--r--v3/EmulatedCamera3.cpp13
-rw-r--r--v3/EmulatedCamera3.h2
-rwxr-xr-xv3/EmulatedFakeCamera3.cpp58
-rw-r--r--v3/EmulatedFakeCamera3.h1
4 files changed, 53 insertions, 21 deletions
diff --git a/v3/EmulatedCamera3.cpp b/v3/EmulatedCamera3.cpp
index 695a102..588aa77 100644
--- a/v3/EmulatedCamera3.cpp
+++ b/v3/EmulatedCamera3.cpp
@@ -180,6 +180,11 @@ void EmulatedCamera3::dump(int fd) {
return;
}
+int EmulatedCamera3::flush_all_requests() {
+ ALOGE("%s: Not implemented", __FUNCTION__);
+ return -1;
+}
+
/****************************************************************************
* Protected API. Callbacks to the framework.
***************************************************************************/
@@ -274,6 +279,11 @@ void EmulatedCamera3::dump(const camera3_device_t *d, int fd) {
ec->dump(fd);
}
+int EmulatedCamera3::flush(const struct camera3_device *d) {
+ EmulatedCamera3* ec = getInstance(d);
+ return ec->flush_all_requests();
+}
+
int EmulatedCamera3::close(struct hw_device_t* device) {
EmulatedCamera3* ec =
static_cast<EmulatedCamera3*>(
@@ -292,7 +302,8 @@ camera3_device_ops_t EmulatedCamera3::sDeviceOps = {
EmulatedCamera3::construct_default_request_settings,
EmulatedCamera3::process_capture_request,
EmulatedCamera3::get_metadata_vendor_tag_ops,
- EmulatedCamera3::dump
+ EmulatedCamera3::dump,
+ EmulatedCamera3::flush,
};
}; /* namespace android */
diff --git a/v3/EmulatedCamera3.h b/v3/EmulatedCamera3.h
index c154f5a..16d0667 100644
--- a/v3/EmulatedCamera3.h
+++ b/v3/EmulatedCamera3.h
@@ -104,6 +104,7 @@ protected:
virtual void dump(int fd);
+ virtual int flush_all_requests();
/** Tag query methods */
virtual const char *getVendorSectionName(uint32_t tag);
@@ -158,6 +159,7 @@ private:
uint32_t tag);
static void dump(const camera3_device_t *, int fd);
+ static int flush(const struct camera3_device *d);
/** For hw_device_t ops */
static int close(struct hw_device_t* device);
diff --git a/v3/EmulatedFakeCamera3.cpp b/v3/EmulatedFakeCamera3.cpp
index f7228ae..6cb97e7 100755
--- a/v3/EmulatedFakeCamera3.cpp
+++ b/v3/EmulatedFakeCamera3.cpp
@@ -679,6 +679,14 @@ const camera_metadata_t* EmulatedFakeCamera3::constructDefaultRequestSettings(
/** android.noise */
static const uint8_t noiseStrength = 5;
settings.update(ANDROID_NOISE_REDUCTION_STRENGTH, &noiseStrength, 1);
+ static uint8_t availableNBModes[] = {
+ ANDROID_NOISE_REDUCTION_MODE_OFF,
+ ANDROID_NOISE_REDUCTION_MODE_FAST,
+ ANDROID_NOISE_REDUCTION_MODE_HIGH_QUALITY,
+ };
+ settings.update(ANDROID_NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES,
+ availableNBModes, sizeof(availableNBModes)/sizeof(availableNBModes));
+
/** android.color */
static const float colorTransform[9] = {
@@ -755,6 +763,9 @@ const camera_metadata_t* EmulatedFakeCamera3::constructDefaultRequestSettings(
/** android.control */
uint8_t controlIntent = 0;
+ uint8_t controlMode = ANDROID_CONTROL_MODE_AUTO; //default value
+ uint8_t aeMode = ANDROID_CONTROL_AE_MODE_ON;
+ uint8_t awbMode = ANDROID_CONTROL_AWB_MODE_AUTO;
switch (type) {
case CAMERA3_TEMPLATE_PREVIEW:
controlIntent = ANDROID_CONTROL_CAPTURE_INTENT_PREVIEW;
@@ -773,14 +784,15 @@ const camera_metadata_t* EmulatedFakeCamera3::constructDefaultRequestSettings(
break;
case CAMERA3_TEMPLATE_MANUAL:
controlIntent = ANDROID_CONTROL_CAPTURE_INTENT_MANUAL;
+ controlMode = ANDROID_CONTROL_MODE_OFF;
+ aeMode = ANDROID_CONTROL_AE_MODE_OFF;
+ awbMode = ANDROID_CONTROL_AWB_MODE_OFF;
break;
default:
controlIntent = ANDROID_CONTROL_CAPTURE_INTENT_CUSTOM;
break;
}
settings.update(ANDROID_CONTROL_CAPTURE_INTENT, &controlIntent, 1);
-
- static const uint8_t controlMode = ANDROID_CONTROL_MODE_AUTO;
settings.update(ANDROID_CONTROL_MODE, &controlMode, 1);
static const uint8_t effectMode = ANDROID_CONTROL_EFFECT_MODE_OFF;
@@ -789,12 +801,18 @@ const camera_metadata_t* EmulatedFakeCamera3::constructDefaultRequestSettings(
static const uint8_t sceneMode = ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY;
settings.update(ANDROID_CONTROL_SCENE_MODE, &sceneMode, 1);
- static const uint8_t aeMode = ANDROID_CONTROL_AE_MODE_ON;
settings.update(ANDROID_CONTROL_AE_MODE, &aeMode, 1);
static const uint8_t aeLock = ANDROID_CONTROL_AE_LOCK_OFF;
settings.update(ANDROID_CONTROL_AE_LOCK, &aeLock, 1);
+ static const uint8_t aePrecaptureTrigger =
+ ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_IDLE;
+ settings.update(ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER, &aePrecaptureTrigger, 1);
+
+ static const uint8_t afTrigger = ANDROID_CONTROL_AF_TRIGGER_IDLE;
+ settings.update(ANDROID_CONTROL_AF_TRIGGER, &afTrigger, 1);
+
static const int32_t controlRegions[5] = {
0, 0, (int32_t)Sensor::kResolution[0], (int32_t)Sensor::kResolution[1],
1000
@@ -805,7 +823,7 @@ const camera_metadata_t* EmulatedFakeCamera3::constructDefaultRequestSettings(
settings.update(ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION, &aeExpCompensation, 1);
static const int32_t aeTargetFpsRange[2] = {
- 10, 30
+ 5, 20
};
settings.update(ANDROID_CONTROL_AE_TARGET_FPS_RANGE, aeTargetFpsRange, 2);
@@ -813,8 +831,6 @@ const camera_metadata_t* EmulatedFakeCamera3::constructDefaultRequestSettings(
ANDROID_CONTROL_AE_ANTIBANDING_MODE_AUTO;
settings.update(ANDROID_CONTROL_AE_ANTIBANDING_MODE, &aeAntibandingMode, 1);
- static const uint8_t awbMode =
- ANDROID_CONTROL_AWB_MODE_AUTO;
settings.update(ANDROID_CONTROL_AWB_MODE, &awbMode, 1);
static const uint8_t awbLock = ANDROID_CONTROL_AWB_LOCK_OFF;
@@ -831,13 +847,16 @@ const camera_metadata_t* EmulatedFakeCamera3::constructDefaultRequestSettings(
afMode = ANDROID_CONTROL_AF_MODE_AUTO;
break;
case CAMERA3_TEMPLATE_VIDEO_RECORD:
- afMode = ANDROID_CONTROL_AF_MODE_CONTINUOUS_VIDEO;
+ afMode = ANDROID_CONTROL_AF_MODE_AUTO;
+ //afMode = ANDROID_CONTROL_AF_MODE_CONTINUOUS_VIDEO;
break;
case CAMERA3_TEMPLATE_VIDEO_SNAPSHOT:
- afMode = ANDROID_CONTROL_AF_MODE_CONTINUOUS_VIDEO;
+ afMode = ANDROID_CONTROL_AF_MODE_AUTO;
+ //afMode = ANDROID_CONTROL_AF_MODE_CONTINUOUS_VIDEO;
break;
case CAMERA3_TEMPLATE_ZERO_SHUTTER_LAG:
- afMode = ANDROID_CONTROL_AF_MODE_CONTINUOUS_PICTURE;
+ afMode = ANDROID_CONTROL_AF_MODE_AUTO;
+ //afMode = ANDROID_CONTROL_AF_MODE_CONTINUOUS_PICTURE;
break;
case CAMERA3_TEMPLATE_MANUAL:
afMode = ANDROID_CONTROL_AF_MODE_OFF;
@@ -1260,10 +1279,14 @@ status_t EmulatedFakeCamera3::processCaptureRequest(
/** Debug methods */
void EmulatedFakeCamera3::dump(int fd) {
- DBG_LOGA("dump\n");
-
}
-
+//flush all request
+//TODO returned buffers every request held immediately with
+//CAMERA3_BUFFER_STATUS_ERROR flag.
+int EmulatedFakeCamera3::flush_all_requests() {
+ DBG_LOGA("flush all request");
+ return 0;
+}
/** Tag query methods */
const char* EmulatedFakeCamera3::getVendorSectionName(uint32_t tag) {
return NULL;
@@ -1607,7 +1630,7 @@ status_t EmulatedFakeCamera3::constructStaticInfo() {
static const int32_t availableTargetFpsRanges[] = {
- 5, 15,
+ 5, 20,
};
info.update(ANDROID_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES,
availableTargetFpsRanges,
@@ -1746,12 +1769,6 @@ status_t EmulatedFakeCamera3::constructStaticInfo() {
info.update(ANDROID_COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES,
aberrationMode, 1);
- uint8_t availableNBModes[] = {ANDROID_NOISE_REDUCTION_MODE_OFF};
- info.update(ANDROID_NOISE_REDUCTION_MODE,
- availableNBModes, 1);
- info.update(ANDROID_NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES,
- availableNBModes, 1);
-
getAvailableChKeys(&info, supportedHardwareLevel);
mCameraInfo = info.release();
@@ -2013,7 +2030,7 @@ status_t EmulatedFakeCamera3::doFakeAF(CameraMetadata &settings) {
__FUNCTION__, afMode);
return BAD_VALUE;
}
-
+#if 0
e = settings.find(ANDROID_CONTROL_AF_REGIONS);
if (e.count == 0) {
ALOGE("%s:Get ANDROID_CONTROL_AF_REGIONS failed\n", __FUNCTION__);
@@ -2025,6 +2042,7 @@ status_t EmulatedFakeCamera3::doFakeAF(CameraMetadata &settings) {
int32_t y1 = e.data.i32[3];
mSensor->setFocuasArea(x0, y0, x1, y1);
DBG_LOGB(" x0:%d, y0:%d,x1:%d,y1:%d,\n", x0, y0, x1, y1);
+#endif
bool afModeChanged = mAfMode != afMode;
diff --git a/v3/EmulatedFakeCamera3.h b/v3/EmulatedFakeCamera3.h
index cb1a072..4d1edd2 100644
--- a/v3/EmulatedFakeCamera3.h
+++ b/v3/EmulatedFakeCamera3.h
@@ -90,6 +90,7 @@ protected:
/** Debug methods */
virtual void dump(int fd);
+ virtual int flush_all_requests();
/** Tag query methods */
virtual const char *getVendorSectionName(uint32_t tag);