上文讲述了evs_driver启动,以及opencamera的流程,本文继续梳理后续常规流程。
首先是startVideoStream(),先看代码再进行总结
Return<EvsResult> EvsAISCamera::startVideoStream(const sp<IEvsCameraStream_1_0>& stream) {
Return <EvsResult> result = setMaxFramesInFlight(3);//先设置buffer数据
allocQcarcamInternalBuffers(MIN_AIS_BUF_CNT);//分配高通内部buffer这里是5个,注意一般不能低于3个,负责会报错!!、
mQcarcamOutBufs.buffers = (qcarcam_buffer_t *)calloc(mQcarcamOutBufs.n_buffers, sizeof(*mQcarcamOutBufs.buffers));//分配5个buffer内存
mpGfxBufs = (sp<GraphicBuffer>*)calloc(mQcarcamOutBufs.n_buffers, sizeof(sp<GraphicBuffer>));//分配GraphicBuffer
mpQcarcamMmapBufs = (qcarcam_mapped_b