Camera: use the correct preview dimensions in initPreview
As preview dimensions can be changed based on the record-size, always use the
updated preview dimensions in mDimension.
CRs-Fixed: 251971
Change-Id: I1cc8e45546fc560978478733f33173dc2f5f77cf
diff --git a/QualcommCameraHardware.cpp b/QualcommCameraHardware.cpp
index 17e988b..ed4c6bc 100755
--- a/QualcommCameraHardware.cpp
+++ b/QualcommCameraHardware.cpp
@@ -988,7 +988,7 @@
mDisEnabled(0),
mRotation(0)
{
-
+ LOGI("QualcommCameraHardware constructor E");
// Start opening camera device in a separate thread/ Since this
// initializes the sensor hardware, this can take a long time. So,
// start the process here so it will be ready by the time it's
@@ -1114,7 +1114,7 @@
void QualcommCameraHardware::initDefaultParameters()
{
- LOGV("initDefaultParameters E");
+ LOGI("initDefaultParameters E");
// Initialize constant parameter strings. This will happen only once in the
// lifetime of the mediaserver process.
@@ -1372,7 +1372,7 @@
mInitialized = true;
- LOGV("initDefaultParameters X");
+ LOGI("initDefaultParameters X");
}
void QualcommCameraHardware::findSensorType(){
@@ -2473,6 +2473,9 @@
}
}
+ mDimension.display_width = previewWidth;
+ mDimension.display_height= previewHeight;
+
LOGV("initPreview E: preview size=%dx%d videosize = %d x %d", previewWidth, previewHeight, videoWidth, videoHeight );
if( ( mCurrentTarget == TARGET_MSM7630 ) || (mCurrentTarget == TARGET_QSD8250) || (mCurrentTarget == TARGET_MSM8660)) {
@@ -2915,7 +2918,7 @@
void QualcommCameraHardware::release()
{
- LOGD("release E");
+ LOGI("release E");
Mutex::Autolock l(&mLock);
#if DLOPEN_LIBMMCAMERA
@@ -2929,6 +2932,7 @@
int cnt, rc;
struct msm_ctrl_cmd ctrlCmd;
+ LOGI("release: mCameraRunning = %d", mCameraRunning);
if (mCameraRunning) {
if(mDataCallbackTimestamp && (mMsgEnabled & CAMERA_MSG_VIDEO_FRAME)) {
mRecordFrameLock.lock();
@@ -2937,6 +2941,7 @@
mRecordFrameLock.unlock();
}
stopPreviewInternal();
+ LOGI("release: stopPreviewInternal done.");
}
if( (mCurrentTarget == TARGET_MSM7630) || (mCurrentTarget == TARGET_MSM8660)
@@ -2956,6 +2961,7 @@
mJpegThreadWaitLock.unlock();
deinitRawSnapshot();
+ LOGI("release: clearing resources done.");
ctrlCmd.timeout_ms = 5000;
@@ -2966,6 +2972,7 @@
LOGE("ioctl CAMERA_EXIT fd %d error %s",
mCameraControlFd, strerror(errno));
+ LOGI("release: CAMERA_EXIT done.");
LINK_release_cam_conf_thread();
close(mCameraControlFd);
mCameraControlFd = -1;
@@ -2986,12 +2993,14 @@
singleton_releasing_start_time = systemTime();
singleton_lock.unlock();
- LOGD("release X");
+ LOGI("release X: mCameraRunning = %d, mFrameThreadRunning = %d", mCameraRunning, mFrameThreadRunning);
+ LOGI("mVideoThreadRunning = %d, mSnapshotThreadRunning = %d, mJpegThreadRunning = %d", mVideoThreadRunning, mSnapshotThreadRunning, mJpegThreadRunning);
+ LOGI("camframe_timeout_flag = %d, mAutoFocusThreadRunning = %d", camframe_timeout_flag, mAutoFocusThreadRunning);
}
QualcommCameraHardware::~QualcommCameraHardware()
{
- LOGD("~QualcommCameraHardware E");
+ LOGI("~QualcommCameraHardware E");
singleton_lock.lock();
if( mCurrentTarget == TARGET_MSM7630 || mCurrentTarget == TARGET_QSD8250 || mCurrentTarget == TARGET_MSM8660 ) {
@@ -3005,7 +3014,7 @@
singleton_releasing_start_time = 0;
singleton_wait.signal();
singleton_lock.unlock();
- LOGD("~QualcommCameraHardware X");
+ LOGI("~QualcommCameraHardware X");
}
sp<IMemoryHeap> QualcommCameraHardware::getRawHeap() const
@@ -3070,7 +3079,7 @@
void QualcommCameraHardware::stopPreviewInternal()
{
- LOGV("stopPreviewInternal E: %d", mCameraRunning);
+ LOGI("stopPreviewInternal E: %d", mCameraRunning);
if (mCameraRunning) {
// Cancel auto focus.
{
@@ -3117,7 +3126,7 @@
}
else LOGE("stopPreviewInternal: failed to stop preview");
}
- LOGV("stopPreviewInternal X: %d", mCameraRunning);
+ LOGI("stopPreviewInternal X: %d", mCameraRunning);
}
void QualcommCameraHardware::stopPreview()
@@ -3582,7 +3591,7 @@
extern "C" sp<CameraHardwareInterface> openCameraHardware()
{
- LOGV("openCameraHardware: call createInstance");
+ LOGI("openCameraHardware: call createInstance");
return QualcommCameraHardware::createInstance();
}
@@ -3593,7 +3602,7 @@
// and return it.
sp<CameraHardwareInterface> QualcommCameraHardware::createInstance()
{
- LOGD("createInstance: E");
+ LOGI("createInstance: E");
singleton_lock.lock();
@@ -3635,6 +3644,7 @@
sp<QualcommCameraHardware> hardware(cam);
singleton = hardware;
+ LOGI("createInstance: created hardware=%p", &(*hardware));
if (!cam->startCamera()) {
LOGE("%s: startCamera failed!", __FUNCTION__);
singleton_lock.unlock();
@@ -3642,8 +3652,8 @@
}
cam->initDefaultParameters();
- LOGD("createInstance: X created hardware=%p", &(*hardware));
singleton_lock.unlock();
+ LOGI("createInstance: X");
return hardware;
}