[RK3288][Android6.0] Camera HAL层拍照编码成JPEG流程小结

本文主要介绍了在ROCKCHIP平台,运行Android 6.0系统中,当接收到Service拍照命令后,Camera HAL层的工作流程。在`camera_take_picture`接口被调用后,会触发JPEG编码过程。编码工作由`hw_jpeg_encode`函数执行,但具体的编码实现细节未公开,相关头文件可以在`hw_jpegenc.h`中找到。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Platform: ROCKCHIP
OS: Android 6.0
Kernel: 3.10.92


camera_take_picture -> CameraHal_Module.cpp    //CameraService收到Service命令后会调用HAL层的拍照接口.

    gCameraHals[rk_dev->cameraid]->takePicture -> //cameraid由于区分前后摄像头.
        CameraHal::takePicture    -> CameraHal.cpp
            commandThreadCommandQ.put    //cmd: CMD_CONTINUOS_PICTURE,单拍和连拍都走这个,只是数量不一样.
                CameraHal::commandThread ->    thread收到命令后被触发
                    mDisplayAdapter->pauseDisplay    //如果没在录像且是单拍就暂停显示. 另外看代码rk3288部支持recording的时候拍照.
                    //如果当前preview size和要设置preview size一样就不再重新preview,否则要执行stoppreview -> startpreivew的动作.
                    mEventNotifier->stopReceiveFrame
                    mCameraAdapter->stopPreview
                    mCameraAdapter->startPreview
                    mDisplayAdapter->startDisplay    //当连续拍照的时候,显示也恢复正常,否则会看到画面卡着不动以为死机了.
                    //preview size一样时作闪光灯控制,rk也没实现,空函数.
                    mCameraAdapter->flashcontrol
                    //接下来是单张/多张通用流程
                    fillPicturInfo    //获取jpeg参数,如旋转,gps坐标, jpeg质量, thumbnail, focus length. format固定为V4L2_PIX_FMT_NV12.
                    mEventNotifier->takePicture ->
                 &nbs
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值