author | jiyu.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) |
commit | 53c530982e86390f47cc6c2314fcde21812c49ce (patch) | |
tree | e8c7e97e670e209978cb5f746a357dcd4f9eb2aa | |
parent | 6f2b30e443f3bf29a2b893a2e4ce35568750b85b (diff) | |
download | camera-53c530982e86390f47cc6c2314fcde21812c49ce.zip camera-53c530982e86390f47cc6c2314fcde21812c49ce.tar.gz camera-53c530982e86390f47cc6c2314fcde21812c49ce.tar.bz2 |
fixed blob fmt error & zoom error, add dump info
Change-Id: I9f77ab8f9ada89a1a5618ca3a00c15b61fbbaee2
-rwxr-xr-x | v3/EmulatedFakeCamera3.cpp | 23 | ||||
-rwxr-xr-x | v3/fake-pipeline2/Sensor.cpp | 10 |
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; } } |