自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 收藏
  • 关注

原创 展锐A13 Camera Hal dispatch模块流程 --- 上

4月份就知道展锐A13的Camera Hal有大的变动,但是最近一直在做一个MTK的项目,没去看这个新增部分的流程。最近有时间,就把A13上Camera Hal新增的部分流程捋 了一下,过程是痛苦的,但是坚持一遍遍去读代码,在结合展锐的官方文档,思路就慢慢清晰了。整个hal总共新增了两个模块,dispatch 和 lwp,我们先看dispatch模块,在看lwp模块,最后就可以将两个模块的流程串起来。

2023-08-25 17:29:01 481 2

原创 美颜预览卡顿问题跟踪

美颜预览卡顿问题分析

2022-12-01 14:38:19 1052 1

原创 MTK原生CameraApp端的camera操作流程

MTK原生CameraApp端的camera相关操作流程

2022-09-05 19:35:38 747

原创 camera预览流程 --- 从HAL到OEM

camera 预览流程 --- 从HAL 到 OEM下发预览请求处理预览帧数据log跟踪

2022-08-09 14:13:32 1459 1

原创 Camera HAL 下的SprdCamera3HWI.cpp 内容介绍

Camera HAL 下的SprdCamera3HWI.cpp 内容介绍openCamera、configureStream、processCaptureRequestCameraApp从桌面起来的流程

2022-08-06 16:50:14 1029

原创 Camera Hal OEM模块 ---- cmr_snapshot.c

Camera Hal OEM模块 ---- cmr_snapshot.ccamera 拍照数据的处理

2022-08-01 15:27:20 529

原创 Camera Hal OEM模块 ---- cmr_preview.c

Camera Hal OEM模块 ---- cmr_preview.c这个文件虽然叫cmr_preview,但是其内容却包含了preivew、caprure、video、channel系列的管理配置

2022-07-28 16:04:16 1281

原创 Camera Hal OEM模块 ---- cmr_grab.c

Camera Hal OEM模块 ---- cmr_grab.c ,最开始接收帧数据的地方

2022-07-23 20:04:08 1069 1

原创 Camera Hal OEM模块 ---- hdr算法流程

Camera Hal oem模块 ,hdr 算法流程

2022-07-11 15:00:33 1097

原创 Camera Hal OEM模块 ---- 3dnr算法流程

展锐 oem2v6 多帧降噪算法 cmr_3dnr_sw.c

2022-07-08 17:27:24 4915 2

原创 展锐S 上微距模式不识别问题跟进 --- sensor_config的解析

sensor_config.xml

2022-07-05 18:47:39 977

原创 Hal3_2v6模块介绍---人像模式的流程

人像模式流程介绍

2022-06-17 18:23:02 1011

原创 Hal3_2v6模块介绍---普通Photo模式configureStreams及processCaptureRequest流程

configureStream、processCaptureCapture

2022-06-14 17:56:41 2051

原创 Hal3_2v6模块介绍---普通Photo模式openCamera流程

openCamera、cmr_oem

2022-06-13 18:37:20 748

原创 Hal3_2v6模块介绍---整体流程

Hal3_2v6模块介绍

2022-06-13 11:17:41 1079 2

原创 C++基本语法---重载二元运算符

重载二元运算符

2022-06-05 09:16:59 112

原创 c++基本语法---重载一元运算符

重载一元运算符

2022-06-05 09:15:23 118

原创 GLSurfaceView源码分析

最近在项目开发中遇到了GLSurfaceView的使用,就把GLSurfaceView的源码看了下,内容不算特别多。首先,GLSurfaceView的继承关系public class GLSurfaceView extends SurfaceView implements SurfaceHolder.Callback2public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCallback {GLS

2022-05-25 11:43:35 436

原创 c++基本语法---友元函数

#include <iostream>using namespace std;class Box{ private: double width; public: double length; friend void printWidth(Box box); void setWidth(double wid);};void Box::setWidth(double wid){ width = wid;}void printWidth(Box box){ cou

2022-05-25 08:44:26 82

原创 C++基本语法---命名空间

#include <iostream>using namespace std;namespace first_nameSpace{ void fun(){ cout << "Inside First_nameSpace" << endl; }}namespace second_nameSpace{ void fun(){ cout << "In side Second_nameSpace" << endl; }}

2022-05-24 22:04:32 73

原创 c++基本语法---拷贝构造函数

#include <iostream>using namespace std;class Line{ public: int getLength(); Line(int len); Line(const Line &obj); ~Line(); private: int *ptr; };Line::Line(int len){ cout << "Line 构造函数调用" << endl; ptr = new int; *ptr

2022-05-22 10:07:14 154

原创 c++基本语法---继承修饰符

#include <iostream>using namespace std;class A{ public: int a ; A(){ a1 = 1; a2 = 2; a3 = 3; a = 4; } void fun(){ cout << a << endl; cout << a1 << endl; cout << a2 << endl; cout << a

2022-05-21 21:36:13 163

原创 C++基本语法---vector的使用

#include <iostream>#include <vector>using namespace std;int main(){ vector<int> vec; //int i = 0 ; cout << "vector原始大小:" << vec.size() << endl; for (int i = 0 ; i < 5 ; i++){ vec.push_back(i); } co

2022-05-19 21:12:28 163

原创 C++基本语法---指针的使用

#include <iostream>using namespace std;int main(){ const int MAX = 3; int var[MAX] = {10,100,1000}; int *ptr = NULL; ptr = var; for (int i = 0 ;i < MAX ; i++){ cout << i << " ptr的值" << endl; cout << ptr <&l

2022-05-18 22:01:34 90

原创 C++基本语法---new_delete使用

#include <iostream>using namespace std;class Box{ public: Box(){ cout << "Box构造函数创建" << endl; } ~Box(){ cout << "Box析构函数调用" << endl; }};int main(){ double *ptr = NULL; ptr = new double; *ptr = 2949

2022-05-17 21:35:23 101

原创 Gralloc模块总结

Android系统在硬件抽象层提供了一个Grallo模块,封装了对帧缓冲区的所有操作。上层应用使用帧缓冲区的流程如下:

2022-02-08 14:05:38 1190

原创 openCamera的 hal 端流程

本文从流程、代码、log三个方面介绍openCamera 0的hal端流程。一,流程图二,代码逻辑从SprdCamera3Factory开始int SprdCamera3Factory::open(const struct hw_module_t *module, const char *id, struct hw_device_t **hw_device) { HAL_LOGD("E"); return gSprdCame

2021-11-16 16:37:42 2651

原创 Camera HAL 下的SprdCamera3Channel.cpp 内容介绍

展锐平台下的SprdCamera3Channel.cpp文件路径如下:vendor\sprd\modules\libcamera\hal3_2v6\SprdCamera3Channel.cpp该文件内容不是很多,并且结构很清晰,包括如下四个channelSprdCamera3ChannelSprdCamera3RegularChannelSprdCamera3PicChannelSprdCamera3MetadataChannel其中SprdCamera3Channel里面只有一个 isF

2021-09-06 17:18:43 570

原创 Camera HAL下的SprdCamera3Stream.cpp 内容介绍

展锐平台hal下的SprdCamera3Stream.cpp文件路径如下:vendor\sprd\modules\libcamera\hal3_2v6\SprdCamera3Stream.cpp该文件内容不多,主要是维护如下几个成员变量camera_stream_type_t mStreamType;int32_t mWidth;int32_t mHeight;Vector<hal_buff_list_t *> mBufferList;mMemory = new SprdCamer

2021-09-06 15:27:01 551

原创 Camera HAL下的SprdCamera3OEMIf.cpp 介绍

vendor\sprd\modules\libcamera\hal3_2v6\SprdCamera3OEMIf.cpp 是我们追踪camera流程到hal会经常关注的cpp文件,今天我们就以打开camera、点击拍照这个流程,从SprdCamera3OEMIf.cpp 的log中来看下它的流程。首先,我们先介绍一下SprdCamera3OEMIf.cpp大致内容(该文件1.3w行,没错,是我见过的最长的文件。。)可分为三个部分:参数管理 SetCameraParaTagMemory管理帧数据管理(

2021-09-04 15:06:36 867

原创 Camera HAL 参数传递流程 ---- 以ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION为例追踪

CameraApp里面用户操作的设置项分为两类:一类由App自行处理,比如照片保存路径、绘制九宫格参照线、拍照声音等等一类需要经由framework下发到hal,然后进一步流转到相应的算法库中去处理本题我们以用户设置AE补偿参数为例,来跟踪第二种情况下的参数设置流程。代码路径:vendor\sprd\modules\libcamerahal3_2v6下:一,hal中第一步接受参数的地方就是SprdCamera3Settings.cpp,我们在之前的文章中有介绍这个类,SprdCamera3S

2021-08-14 13:49:21 1920 2

原创 Camera HAL中参数管理 --- SprdCamera3Setting.cpp

在一次拍照请求中,CameraApp会设置一些参数下来,如果只看App,就会以为这就是Camera拍照需要的所有参数了。但其实hal管理着比App下发参数多得多的参数集合,并且提供构建一个默认CameraMetadata对象的方法。定义一个代表所有参数集合的structtypedef struct { struct img_size preview_size; struct img_size picture_size; struct img_size video_size;

2021-08-07 14:43:24 634

原创 Camera Hal 数据类型定义

Hal中常见的数据类型缩写定义如下:typedef unsigned long cmr_uint;typedef long cmr_int;typedef uint64_t cmr_u64;typedef int64_t cmr_s64;typedef unsigned int cmr_u32;typedef int cmr_s32;typedef unsigned short cmr_u16;typedef short cmr_s16;typedef unsigned char cmr_

2021-08-07 09:44:36 695

原创 跨进程通信---AIDL

有过一定工作经验的Android程序员,肯定是听过AIDL的。之前我也是经常听别人讲,最近下功夫去专门看了下,总算自己参照示例写出来一个Demo出来,为了加深印象,总结本篇文章。AIDL:Android Interface Definition Language,Android接口定义语言。看这名称:是一种语言。我学过java语言、C语言、C++语言,虽然知道每种语言之间有一定的互通之处,但是却也是各有各的规则。AIDL称为一种语言,想来应该有一套完整体系。在来关注 Interface ,接口,我们知道,

2021-07-31 15:08:36 1530 1

原创 android.hardware.camera2系列----CameraCaptureSession

上篇文章中我们讲了CameraDevice,其中有关于CameraCaptureSession的概念,我们没有详细说明,本篇就来看下CameraCaptureSession是什么。frameworks\base\core\java\android\hardware\camera2\CameraCaptureSession.java我们知道在openCamera的时候,CameraApp拿到了CameraDevice的对象,但是在后续请求预览、拍照的操作中,CameraApp却并不是直接拿这个Camera

2021-06-25 17:09:04 699

原创 android.hardware.camera2 系列----CameraDevice

我们在之前的文章中介绍了 openCamera的流程,openCamera最终使CameraApp拿到了一个叫CameraDevice的对象,后面我们在创建会话、开启预览、拍照等流程中均看到这个CameraDvice的身影,今天我们来详细看这个在Camera中占据重要地位的对象:CameraDevice。打开:frameworks\base\core\java\android\hardware\camera2\CameraDevice.java开篇来了一个枚举的Template:@IntDef(pre

2021-06-22 11:41:40 1687

原创 AndroidR上展锐平台实现长按拍照键连拍的功能

某客户定制需求:长按拍照键实现连拍功能。我们先来跟进下单拍的流程,连拍与单拍流程重叠度很高,只是连拍在单拍的照片callback回来之后,在立即下发下一次的拍照请求。View的click流程就不说了,点击拍照键后,点击事件会回调到PhotoModule的onShutterButtonClick方法中。在这个方法中会做拍照前的逻辑判断,比如当前对否设置了拍照倒计时,如果有的话,就转到倒计时的逻辑中,延时拍照。我们这里不考虑这些设置,后面就是调用FocusOverlayManager的 focusAndC

2021-05-28 15:14:31 698

原创 AndroidR展讯平台Camera管理众多设置项

我们知道,Camera里面有很多设置,比如HDR、Flash、白平衡、倒计时,水印、PictureSize 等等,不仅有在界面上展现出来给用户设置的开关项,还有默认的比如是否打开3DNR、帧率设置等等。那么众多的设置项是如何管理的呢?先来看下APP中直接管理Settings数据的关系链。跟我们之前看的CameraAgent那条线十分类似。在介绍之前,我们先来说下在AndroidCameraSettings中一个比较重要的成员变量com.android.ex.camera2.utils.Camera

2021-04-28 18:26:39 768

原创 AndroidR上展讯平台Camera创建会话和开启预览流程

上篇绘制了CameraApp启动在onResume中去openCamera的流程,本篇来总结在openCamera得到CameraDevice对象之后创建会话,即得到CameraCaptureSession 和 通过会话session对象开启预览的流程。

2021-04-27 14:37:49 620

原创 AndroidR上展讯平台openCamera流程

总结制作时序图如下:

2021-04-22 10:14:50 368

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除