summaryrefslogtreecommitdiff
authorjiyu.yang <jiyu.yang@amlogic.com>2014-12-10 08:40:58 (GMT)
committer jiyu.yang <jiyu.yang@amlogic.com>2014-12-10 08:43:02 (GMT)
commit53c530982e86390f47cc6c2314fcde21812c49ce (patch)
treee8c7e97e670e209978cb5f746a357dcd4f9eb2aa
parent6f2b30e443f3bf29a2b893a2e4ce35568750b85b (diff)
downloadcamera-53c530982e86390f47cc6c2314fcde21812c49ce.zip
camera-53c530982e86390f47cc6c2314fcde21812c49ce.tar.gz
camera-53c530982e86390f47cc6c2314fcde21812c49ce.tar.bz2
fixed blob fmt error & zoom error, add dump info
Change-Id: I9f77ab8f9ada89a1a5618ca3a00c15b61fbbaee2
Diffstat
-rwxr-xr-xv3/EmulatedFakeCamera3.cpp23
-rwxr-xr-xv3/fake-pipeline2/Sensor.cpp10
2 files changed, 28 insertions, 5 deletions
diff --git a/v3/EmulatedFakeCamera3.cpp b/v3/EmulatedFakeCamera3.cpp
index d2bea83..8f8bdf9 100755
--- a/v3/EmulatedFakeCamera3.cpp
+++ b/v3/EmulatedFakeCamera3.cpp
@@ -1100,7 +1100,6 @@ status_t EmulatedFakeCamera3::processCaptureRequest(
mSensor->setExposure(exposureCmp);
}
-
int32_t cropRegion[4];
int32_t cropWidth;
int32_t outputWidth = request->output_buffers[0].stream->width;
@@ -1115,7 +1114,8 @@ status_t EmulatedFakeCamera3::processCaptureRequest(
cropWidth = cropRegion[2] = e.data.i32[2];
cropRegion[3] = e.data.i32[3];
for (int i = mZoomMin; i <= mZoomMax; i += mZoomStep) {
- if ( (float) i / mZoomMin >= (float) outputWidth / cropWidth) {
+ //if ( (float) i / mZoomMin >= (float) outputWidth / cropWidth) {
+ if ( i * cropWidth >= outputWidth * mZoomMin ) {
mSensor->setZoom(i);
break;
}
@@ -1365,9 +1365,28 @@ status_t EmulatedFakeCamera3::processCaptureRequest(
/** Debug methods */
void EmulatedFakeCamera3::dump(int fd) {
+
+ String8 result;
+ uint32_t count = sizeof(mAvailableJpegSize)/sizeof(mAvailableJpegSize[0]);
+ result = String8::format("%s, valid resolution\n", __FILE__);
+
+ for (uint32_t f = 0; f < count; f+=2) {
+ result.appendFormat("width: %d , height =%d\n",
+ mAvailableJpegSize[f], mAvailableJpegSize[f+1]);
+ }
+ result.appendFormat("\nmZoomMin: %d , mZoomMax =%d, mZoomStep=%d\n",
+ mZoomMin, mZoomMax, mZoomStep);
+
+ if (mZoomStep <= 0) {
+ result.appendFormat("!!!!!!!!!camera apk may have no picture out\n");
+ }
+
+ write(fd, result.string(), result.size());
+
if (mSensor.get() != NULL) {
mSensor->dump(fd);
}
+
}
//flush all request
//TODO returned buffers every request held immediately with
diff --git a/v3/fake-pipeline2/Sensor.cpp b/v3/fake-pipeline2/Sensor.cpp
index 111a33c..c9fbc7b 100755
--- a/v3/fake-pipeline2/Sensor.cpp
+++ b/v3/fake-pipeline2/Sensor.cpp
@@ -378,7 +378,10 @@ int Sensor::getZoom(int *zoomMin, int *zoomMax, int *zoomStep)
if ((qc.flags == V4L2_CTRL_FLAG_DISABLED) || ( ret < 0)
|| (qc.type != V4L2_CTRL_TYPE_INTEGER)) {
ret = -1;
- ALOGE("%s: Can't get zoom level!\n", __FUNCTION__);
+ *zoomMin = 0;
+ *zoomMax = 0;
+ *zoomStep = 1;
+ CAMHAL_LOGDB("%s: Can't get zoom level!\n", __FUNCTION__);
} else {
*zoomMin = qc.minimum;
*zoomMax = qc.maximum;
@@ -1297,12 +1300,13 @@ int Sensor::getStreamConfigurations(uint32_t picSizes[], const int32_t kAvailabl
picSizes[k + 1] = picSizes[k - 3];
picSizes[k + 2] = picSizes[k - 2];
- picSizes[k - 3] = frmsize.discrete.width;
- picSizes[k - 2] = frmsize.discrete.height;
} else {
break;
}
}
+
+ picSizes[k + 1] = frmsize.discrete.width;
+ picSizes[k + 2] = frmsize.discrete.height;
}
}