am bda01917: libcamera: set antibanding to 60Hz, use cropping information on snapshot

Merge commit 'bda01917a432b68a25d54839eb6f3da949f388bb'

* commit 'bda01917a432b68a25d54839eb6f3da949f388bb':
  libcamera: set antibanding to 60Hz, use cropping information on snapshot
This commit is contained in:
Iliyan Malchev 2009-07-01 22:44:34 -07:00 committed by The Android Open Source Project
commit 7d63e73006
2 changed files with 21 additions and 7 deletions

View File

@ -262,6 +262,7 @@ QualcommCameraHardware::QualcommCameraHardware()
{
memset(&mZoom, 0, sizeof(mZoom));
memset(&mDimension, 0, sizeof(mDimension));
memset(&mCrop, 0, sizeof(mCrop));
LOGV("constructor EX");
}
@ -502,12 +503,13 @@ static bool native_start_preview(int camfd)
return true;
}
static bool native_get_picture (int camfd)
static bool native_get_picture (int camfd, common_crop_t *crop)
{
struct msm_ctrl_cmd ctrlCmd;
ctrlCmd.timeout_ms = 5000;
ctrlCmd.length = 0;
ctrlCmd.length = sizeof(common_crop_t);
ctrlCmd.value = crop;
if(ioctl(camfd, MSM_CAM_IOCTL_GET_PICTURE, &ctrlCmd) < 0) {
LOGE("native_get_picture: MSM_CAM_IOCTL_GET_PICTURE fd %d error %s",
@ -516,6 +518,18 @@ static bool native_get_picture (int camfd)
return false;
}
LOGV("crop: in1_w %d", crop->in1_w);
LOGV("crop: in1_h %d", crop->in1_h);
LOGV("crop: out1_w %d", crop->out1_w);
LOGV("crop: out1_h %d", crop->out1_h);
LOGV("crop: in2_w %d", crop->in2_w);
LOGV("crop: in2_h %d", crop->in2_h);
LOGV("crop: out2_w %d", crop->out2_w);
LOGV("crop: out2_h %d", crop->out2_h);
LOGV("crop: update %d", crop->update_flag);
return true;
}
@ -608,14 +622,12 @@ bool QualcommCameraHardware::native_jpeg_encode(void)
jpeg_set_location();
static common_crop_t scale; // no scaling
if (!LINK_jpeg_encoder_encode(&mDimension,
(uint8_t *)mThumbnailHeap->mHeap->base(),
mThumbnailHeap->mHeap->getHeapID(),
(uint8_t *)mRawHeap->mHeap->base(),
mRawHeap->mHeap->getHeapID(),
&scale)) {
&mCrop)) {
LOGE("native_jpeg_encode: jpeg_encoder_encode failed.");
return false;
}
@ -1572,7 +1584,7 @@ void QualcommCameraHardware::receiveRawPicture()
Mutex::Autolock cbLock(&mCallbackLock);
notifyShutter();
if (mRawPictureCallback != NULL) {
if(native_get_picture(mCameraControlFd)== false) {
if(native_get_picture(mCameraControlFd, &mCrop)== false) {
LOGE("getPicture failed!");
return;
}
@ -1700,7 +1712,7 @@ void QualcommCameraHardware::setAntiBanding(int camfd, const char *antibanding)
antibandvalue = attr_lookup(anti_banding,
antibanding,
CAMERA_ANTIBANDING_OFF);
CAMERA_ANTIBANDING_60HZ);
ctrlCmd.value = (void *)&antibandvalue;
LOGV("In setAntiBanding: match: %s: %d",
antibanding, antibandvalue);

View File

@ -228,6 +228,8 @@ private:
pthread_t mFrameThread;
pthread_t mSnapshotThread;
common_crop_t mCrop;
struct msm_frame frames[kPreviewBufferCount];
bool mInPreviewCallback;
};