author | sky.zhou <sky.zhou@droid04.amlogic.com> | 2011-12-08 12:23:51 (GMT) |
---|---|---|
committer | sky.zhou <sky.zhou@droid04.amlogic.com> | 2011-12-08 12:23:51 (GMT) |
commit | aa622457ca74aabfd8d49be7a292e5163dd463fd (patch) | |
tree | cd06e06bb0e2ce39f57d88db44d37dad6c89495b | |
parent | e995eb1ae232a8c82b22e3756b86e73d06e6c6a4 (diff) | |
download | camera-aa622457ca74aabfd8d49be7a292e5163dd463fd.zip camera-aa622457ca74aabfd8d49be7a292e5163dd463fd.tar.gz camera-aa622457ca74aabfd8d49be7a292e5163dd463fd.tar.bz2 |
fix: 1, start autofocus twice will cause exception 2,Copy preview frame error
-rwxr-xr-x[-rw-r--r--] | AppCallbackNotifier.cpp | 8 | ||||
-rwxr-xr-x[-rw-r--r--] | BaseCameraAdapter.cpp | 56 | ||||
-rwxr-xr-x | V4LCameraAdapter/V4LCameraAdapter.cpp | 4 |
3 files changed, 33 insertions, 35 deletions
diff --git a/AppCallbackNotifier.cpp b/AppCallbackNotifier.cpp index d1d730e..4f21590 100644..100755 --- a/AppCallbackNotifier.cpp +++ b/AppCallbackNotifier.cpp @@ -452,8 +452,8 @@ static void copy2Dto1D(void *dst, unsigned int *y_uv = (unsigned int *)src; - CAMHAL_LOGVB("copy2Dto1D() y= %p ; uv=%p.",y_uv[0], y_uv[1]); - CAMHAL_LOGVB("pixelFormat,= %d; offset=%d",*pixelFormat,offset); + CAMHAL_LOGDB("copy2Dto1D() y= %p ; uv=%p.",y_uv[0], y_uv[1]); + CAMHAL_LOGDB("pixelFormat,= %d; offset=%d; length=%d;width=%d,%d;stride=%d;",*pixelFormat,offset,length,width,height,stride); if (pixelFormat!=NULL) { if (strcmp(pixelFormat, CameraParameters::PIXEL_FORMAT_YUV422I) == 0) { @@ -482,8 +482,8 @@ static void copy2Dto1D(void *dst, } } - bufferSrc_UV = ( uint16_t * ) ((uint8_t*)y_uv[1] + (stride/2)*yOff + xOff); - + // bufferSrc_UV = ( uint16_t * ) ((uint8_t*)y_uv[1] + (stride/2)*yOff + xOff); + bufferSrc_UV =( uint16_t * ) ( y_uv[0]+stride*height+ (stride/2)*yOff + xOff) ; if (strcmp(pixelFormat, CameraParameters::PIXEL_FORMAT_YUV420SP) == 0) { uint16_t *bufferDst_UV; diff --git a/BaseCameraAdapter.cpp b/BaseCameraAdapter.cpp index ba1f529..a6b6546 100644..100755 --- a/BaseCameraAdapter.cpp +++ b/BaseCameraAdapter.cpp @@ -233,7 +233,7 @@ void BaseCameraAdapter::addFramePointers(void *frameBuf, void *buf) frame->mYuv[1] = pBuf[1]; mFrameQueue.add(frameBuf, frame); - CAMHAL_LOGVB("Adding Frame=0x%x Y=0x%x UV=0x%x", frame->mBuffer, frame->mYuv[0], frame->mYuv[1]); + CAMHAL_LOGDB("Adding Frame=0x%x Y=0x%x UV=0x%x", frame->mBuffer, frame->mYuv[0], frame->mYuv[1]); } } @@ -809,36 +809,34 @@ status_t BaseCameraAdapter::sendCommand(CameraCommands operation, int value1, in } case CameraAdapter::CAMERA_PERFORM_AUTOFOCUS: - + if(getState() != AF_STATE) + { #if PPM_INSTRUMENTATION || PPM_INSTRUMENTATION_ABS - - refTimestamp = ( struct timeval * ) value1; - if ( NULL != refTimestamp ) - { - memcpy( &mStartFocus, refTimestamp, sizeof( struct timeval )); - } - + refTimestamp = ( struct timeval * ) value1; + if ( NULL != refTimestamp ) + { + memcpy( &mStartFocus, refTimestamp, sizeof( struct timeval )); + } #endif - - if ( ret == NO_ERROR ) - { - ret = setState(operation); - } - - if ( ret == NO_ERROR ) - { - ret = autoFocus(); - } - - if ( ret == NO_ERROR ) - { - ret = commitState(); - } - else - { - ret |= rollbackState(); - } - + if ( ret == NO_ERROR ) + { + ret = setState(operation); + } + + if ( ret == NO_ERROR ) + { + ret = autoFocus(); + } + + if ( ret == NO_ERROR ) + { + ret = commitState(); + } + else + { + ret |= rollbackState(); + } + } break; case CameraAdapter::CAMERA_CANCEL_AUTOFOCUS: diff --git a/V4LCameraAdapter/V4LCameraAdapter.cpp b/V4LCameraAdapter/V4LCameraAdapter.cpp index 9d5cb6e..aa029f7 100755 --- a/V4LCameraAdapter/V4LCameraAdapter.cpp +++ b/V4LCameraAdapter/V4LCameraAdapter.cpp @@ -703,8 +703,8 @@ int V4LCameraAdapter::previewThread() frame.mFrameMask |= CameraFrame::VIDEO_FRAME_SYNC; } frame.mBuffer = ptr; //dest - frame.mLength = width*height*2; - frame.mAlignment = width*2; + frame.mLength = width*height*3/2; + frame.mAlignment = width; frame.mOffset = 0; frame.mYuv[0] = NULL; frame.mYuv[1] = NULL; |