android camera(hal)

android camera有两个版本。

相对于版本一, 版本二在service层增加了streamprocessor/captureqeue. 而版本一的service直接调用hal层的camera接口。这样, 不少工作在hal层处理。

 

ti pandaboard的camera的hal层目前支持版本一。可支持OMX和V4L2 camera driver. OMX的camera支持较丰富的功能。V4L2的功能就比较简单。也就preview了。

 

V4L2的数据流:

ANativeWindow由client的surface提供, 封装成preview_stream_ops_t。CameraHal startPreview的时候, 会调用ANativeWindow的dequeuebuffer得到bufferhandler. 并且调用adapter的usebuffers将V4L2的buffer跟ANativeWindw的buffer用map对照起来。然后hal的preview. 这时queue v4l2的buffers, stream on v4l2. 并启动PreviewThread线程。 这个线程dequeue buffer从v4l2, 并拷贝捕捉的图像到对应map的ANativeWindow的buffer, 调用sendFrameToSubscribers的callback(就是ANativeWindowDisplayAdapter::frameCallbackRelay, 可查看frameprovider知道callback如何注册的)。这个callback会调用ANativeWindow的queuebuffer将buffer递交给surfaceflinger, 并且put一个msg触发ANativeWindowDisplayAdapter::displayThread线程调用handleFrameReturn去dequeue ANativeWindow buffer, 同时调用V4LCameraAdapter::fillThisBuffer将ANativeWindow buffer对应的v4l2的buffer queue给v4l2驱动。这样这个V4L2的camera的preview就转动起来了。

 

 

OMX的, 还有版本二的还要继续调查。

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值