[RK3399][Android7.1] Camera HAL中的几个adapter

Platform: rk3399
OS: Android 7.1
Kernel: v4.4.83

HAL中在new CamaerHal对象的时候会根据不同类型的sensor创建不同的adapter,以下是区别:

  • CameraUSBAdapter: USB接口类型的摄像头,走v4l2.
  • CameraIspSOCAdapter:dvp接口,isp控制器接收。
  • CameraIspAdapter:mipi接口,isp控制器接收,不走v4l2.
  • CameraSOCAdapter:dvp接口,VIP控制器接收。

到rk3399上, 据说VIP控制器已经没有了,TRM不知道是因为不全还是没有写VIP的信息,至少ISP的内容也是没看到的。

像素低的camera,一般用yuv格式,用dvp接口传输;
像素高的camera,一般用raw格式,用mipi来传输,因为相对来说raw的数据量更小,mipi传输的速率更高。

调用在CameraHal.cpp:

  if((strcmp(gCamInfos[cameraId].driver,"uvcvideo") == 0)) {
            LOGD("it is a uvc camera!");
            mCameraAdapter = new CameraUSBAdapter(cameraId);
        }
        else if(gCamInfos[cameraId].pcam_total_info->mHardInfo.mSensorInfo.mPhy.type == CamSys_Phy_Cif){
            LOGD("it is a isp soc camera");
            if(gCamInfos[cameraId].pcam_total_info->mHardInfo.mSensorInfo.mPhy.info.cif.fmt == CamSys_Fmt_Raw_10b
            || gCamInfos[cameraId].pcam_total_info->mHardInfo.mSensorInfo.mPhy.info.cif.fmt == CamSys_Fmt_Raw_12b)
                mCameraAdapter = new CameraIspSOCAdapter(cameraId);
            else
                mCameraAdapter = new CameraIspAdapter(cameraId);
        }
        else if(gCamInfos[cameraId].pcam_total_info->mHardInfo.mSensorInfo.mPhy.type == CamSys_Phy_Mipi){
            LOGD("it is a isp  camera");
            mCameraAdapter = new CameraIspAdapter(cameraId);
        }
        else{
            LOGD("it is a soc camera!");
            mCameraAdapter = new CameraSOCAdapter(cameraId);
            //mCameraAdapter->is_cif_driver = true;
            mCameraAdapter->cif_driver_iommu = gCamInfos[cameraId].pcam_total_info->mIsIommuEnabled;
            mPreviewBuf->is_cif_driver = true;
            mVideoBuf->is_cif_driver = true;
            mRawBuf->is_cif_driver = true;
            mJpegBuf->is_cif_driver = true;
        }

VIP:
VIP全称Video Input Processer, 用于将外部的Camera数据传送到memory中,其中YUV数据的话会被独立成Y和UV数据,然后传给memory,而Raw data不做处理直接传输。
另外VIP还是有Crop功能。

[RK3399][Android7.1] Camera HAL中的几个adapter_第1张图片

你可能感兴趣的:(RK3399,子类__Camera)