camera open之后,可以调用startPreview函数进行preview,今天主要讲解Camera HAL层startPreview的follow。
先判定camera是否打开,没有打开则直接返回。
status_t CameraHardware:: startPreview()
{
status_t ret = NO_ERROR;
int PreviewFrameSize;
if (mCameraOpened == false)
return UNKNOWN_ERROR;
HAL层有提供函数判定Camera是否打开:
bool CameraHardware::isCameraOpened()
{
return mCameraOpened;
};
camera打开后,先判定是否已经在preview,如果已经preview,直接返回
ALOGI("startPreview");
Mutex::Autolock lock(mPreviewLock);
if (mPreviewEnabled) {
ALOGE("Preview already running");
return ALREADY_EXISTS;
}
根据preview的格式,计算previewFramesize:
if (strcmp(mParameters.getPreviewFormat(), CameraParameters::PIXEL_FORMAT_YUV420SP) =