智能手机算法---3编写android hal算法数据处理地方

本文讲述了如何在Android HAL层获取并处理拍照、预览和录像的数据流,特别是在QCameraPostProc.cpp的doReprocess()函数中添加自定义算法来处理YUV数据,以及在预览和录像数据流回调中进行类似操作的过程。
摘要由CSDN通过智能技术生成

联系qq 1923962282@qq.com

由上一篇文件介绍hal 架构在v4l2上面进行了封装那么hal中如何去拿到拍照数据流尼

 

QCameraPostProc.cpp  doReprocess()//拍照

 QCamera2HWICallbacks.cpp  synchronous_stream_cb_routine//预览

QCamera2HWICallbacks.cpp   video_stream_cb_routine//录像

 

下面讲述一下简单的获取yuv拍照数据流算法处理过程在原来的doReprocess()函数增加下面加粗的代码

在这里添加我们自己的算法

 memcpy(dataz,(unsigned char *)pReprocFrame->buffer,768*512*3/2);
/这里添加我们的算法对dataz buf处理/
memcpy((unsigned char *)pReprocFrame->buffer,dataz,768*512*3/2);//拷贝回去

if (mPPChannels[mCurChannelIdx] != NULL) {
        ppreq_job->reprocCount = (int8_t) (mCurReprocCount + 1);
        if ((m_parent->isRegularCapture()) || (ppreq_job->offline_buffer)) {
            m_bufCountPPQ++;
            if (m_ongoingPPQ.enqueue((void *)ppreq_job)) {
                pthread_mutex_lock(&m_reprocess_lock);
                ret = mPPChannels[mCurChannelIdx]->doReprocessOffline(ppInputFrame,
                        meta_buf, m_parent->mParameters);
                if (ret != NO_ERROR) {
                    pthread_mutex_unlock(&m_reprocess_lock);
                    goto end;
                }

                if ((ppreq_job->offline_buffer) &&
                        (ppreq_job->offline_reproc_buf)) {
                    mPPChannels[mCurChannelIdx]->doReprocessOffline(
                            ppreq_job->offline_reproc_buf, meta_buf);
                }
                pthread_mutex_unlock(&m_reprocess_lock);
            } else {
                LOGW("m_ongoingPPQ is not active!!!");
                ret 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值