自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Gaojian.Shi

hello world!!!

原创 Android graphics buffer在CameraService、CameraProvider、CameraHAL的申请、传递、归还流程

总共分三部分介绍: processCaptureRequest申请buffer流程 processCaptureResult释放buffer流程 buffer在CameraService、CameraProvider及HAL之间的传递流程 processCaptureReque...

2019-11-22 11:52:53

阅读数 271

评论数 1

原创 直接通过native_handle对象创建GraphicBuffer对象和直接渲染到graphibuffer的方法

在跨进程传递GraphicBuffer时,并不是直接传递GraphicBuffer对象,而是传递的GraphicBuffer的类型为native_handle的handle成员。 在跨进程传递完成之后,如果期望再将native_handle型handle转换为GraphicBuffer, 可以...

2019-12-21 10:31:06

阅读数 39

评论数 0

原创 opengles GL_OVR_multiview2 使用介绍

最近在研究GL_OVR_multiview2 需求是对 unity 渲染完成的GL_TEXTURE_2D_ARRAY做二次渲染 首先介绍下GL_OVR_multiview,在OpenGL ES SDK for Android上详细介绍了GL_OVR_multiview基本使用方法。 可以理解...

2019-12-16 20:55:38

阅读数 43

评论数 0

原创 Android Native层调用JAVA层方法以生成带文字纹理的方法

很多时候,如果我们想在Native层使用opengles 渲染绘制时,希望渲染绘制一些文字。 但是opengl es 其实是不支持直接绘制文字的,但是Android JAVA层却是有整套的绘制文字方法,如采用bitmap,在bitmap上绘制文字代码如下: //create t...

2019-12-16 20:46:23

阅读数 21

评论数 0

原创 CameraService是如何将camera3_stream_buffer_t类型buffer转换为ANativeWindowBuffer_t类型的

typedef struct camera3_stream_buffer { /** * The handle of the stream this buffer is associated with */ camera3_stream_t *stream; /** * The na...

2019-12-16 20:00:46

阅读数 28

评论数 0

原创 Android GraphicBuffer神奇之处---direct texture

研究了Android GraphicBuffer一段时间了,那么Android GraphicBuffer到底有什么优点呢? 我在网上搜了下,转载一篇比较好的文章了介绍下这个问题。

2019-12-03 10:22:39

阅读数 106

评论数 0

原创 Android GraphicBuffer是系统什么buffer及其分配过程

先贴上几篇我学习的好文章 SurfaceFlinger中Buffer的创建与显示 Android P 图像显示系统(二)GraphicBuffer和Gralloc分析 Android P 图形显示系统 Android P 图形显示系统(一)硬件合成HWC2 ...

2019-11-25 15:18:42

阅读数 113

评论数 0

原创 SurfaceView创建Surface的过程

在分析SurfaceView如何创建Surface之前需要先了解下SurfaceFlinger的知识, 三篇好文章 一篇文章看明白 Android 图形系统 Surface 与 SurfaceFlinger 之间的关系 AndroidO 图形框架下应用绘图过程——Surface创建 ...

2019-10-15 13:59:23

阅读数 355

评论数 1

原创 CameraService是如何通过Surface将帧数据刷新到屏上的初步研究

最近修改了一个bug,在相机帧回调onFrameAvailable中,一旦出现崩溃,会导致相机出帧失败。 为研究该为什么onFrameAvailable崩溃会导致相机出帧失败,本文对CameraService如何见帧数据传递给surface上,最终显示到屏幕上做初步的研究。 其backtrac...

2019-08-28 15:46:09

阅读数 182

评论数 0

原创 Android OpenGLES 如何通过SurfaceTexture获取纹理数据及更新纹理的学习总结

在学习OpenGL ES显示相机预览数据的过程中,发现SurfaceTexture是通过纹理id来生成 SurfaceTexture创建代码 int[] tex = new int[1]; GLES20.glGenTextures(1, tex, 0); GLES2...

2019-08-16 12:22:34

阅读数 859

评论数 1

原创 AIDL学习总结--扩展ICameraService.aidl接口实现跨进程向CameraService传递几兆级别数据的实现方案

可以通过Parcel的readBlob和writeBlob来跨进程传递大数据(实际上用的ashmem来传递) 以后完善

2019-07-25 11:38:44

阅读数 171

评论数 1

原创 Android CameraService CameraMetadata与CameraPovider CameraMetadata的定义、IPC传递数据能力及相互转换

framework CameraMetadata 定义如下: //frameworks\av\camera\include\camera\CameraMetadata.h /** * A convenience wrapper around the C-based camera_metad...

2019-07-22 20:53:46

阅读数 89

评论数 0

原创 CameraService服务启动流程

启动rc脚本文件 service cameraserver /system/bin/cameraserver ... 进入入口: int main(int argc __unused, char** argv __unused) { signal(SIGPIPE...

2019-07-20 13:51:22

阅读数 70

评论数 0

原创 android camera API1调用camera HAL3流程学习总结

从AndroidP 开始,高通camera系统全面使用HAL3,之前的HAL1已经被移除,对应HAL3主流的相机开发接口是camera API2 ,但是依然存在大量的使用Camera API 1开发的相机应用,为此Android专门设计了一套兼容API1调用HAL3的中间转换接口,本门主要从几个方...

2019-07-19 14:50:11

阅读数 530

评论数 0

原创 HIDL学习总结--扩展ICameraProvider.hal接口实现跨进程向CameraProvider进程传递兆级别数据的实现方案

CameraAPI2 向Camera HAL 传递数据如相机参数主要是通过camera_metadata实现的,最近项目有个需求是向Camera HAL 传递一个YUV数据,大小是几兆左右,使用现有的camera_metadata来实现困难(需要以后研究下其可行性)。 为实现该功能,进一步提升C...

2019-07-18 16:54:15

阅读数 167

评论数 1

原创 CameraProvider进程启动流程

camera hal3 所属进程启动:cameraprovider进程启动流程 rc启动脚本: //hardware\interfaces\camera\provider\2.4\default\android.hardware.camera.provider@2.4-service.rc ...

2019-07-16 19:58:32

阅读数 89

评论数 0

原创 HIDL学习总结--如何在由ICameraProvider.hal文件定义的HIDL接口实现中添加调试Log

稍后更新

2019-07-16 15:01:54

阅读数 126

评论数 0

原创 CameraService启动流程-获取ICameraProvider服务代理对象BpHwCameraProvider并由此获取所有相机设备代理对象BpHwCameraDevice的流程

本文分析下CameraService获取ICameraProvider,已方便后边分析CameraService与ICameraProvider的通讯方式及探究下其他进程是否也可以获取ICameraProvider,直接与ICameraProvider通讯(即直接和HAL通讯) cameraSe...

2019-07-06 22:37:11

阅读数 120

评论数 0

原创 MediaRecorder创建Surface流程学习

提醒自己以后更新!!

2019-07-06 15:06:03

阅读数 187

评论数 0

原创 修改系统时间导致pthread_cond_timedwait超时问题的解决

最近在调查一个,相机在使用过程中,进程莫名奇妙报申请预览超时的问题, 报的错误如下: camxsession.cpp:1269 ProcessCaptureRequest() Lets do a Reset camxchi.cpp:588 ChiSubmitPipelineRequest(...

2019-07-06 09:25:24

阅读数 346

评论数 0

原创 Camera API2在不开启录像的情况下实现HFR功能的学习总结

    API2较API1接口变少,由frameworks\av\camera\aidl\android\hardware\camera2\ICameraDeviceUser.aidl定义     如下: ...

2019-07-03 16:32:33

阅读数 343

评论数 0

原创 一种提升基于Anroid Camera API1/HAL1开发的相机应用拍照缩率图生成效率的实现方案

从上家公司离职了一段时间了,总结下之前做的一种提升拍照缩率图生成效率的实现方案 开发环境: Android qcom 系列平台 Camera APK基于Camera API1 开发 Camera HAL为HAL1 一般的拍照流程如下(好久不看HAL1了,可能存在问题): camera ...

2019-06-27 15:50:45

阅读数 91

评论数 0

原创 Android CameraService对多进程同时打开不同相机的限制分析

开天辟地第一篇文章     之前在做相机应用时,发现只要有一个进程了打开相机,其他相机应用再次尝试打开相机,会提示“相机设备被占用”,“打开失败”的错误信息,即使是打开不同的相机。最近项目需要,需要多个进程同时打开不同的相机,于是研究了下CameraSer...

2019-06-26 21:01:59

阅读数 570

评论数 2

原创 Android Camera 调试常用调式命令

1、adb shell dumpsys media.camera 代码入口是: frameworks\native\cmds\dumpsys\main.cpp int main(int argc, char* const argv[]) { signal(SIGPIPE, SIG_...

2019-06-18 10:25:08

阅读数 742

评论数 0

原创 Android Native层函数调用堆栈打印通用方法

Android为方便Native层打印函数的调用堆栈,专门在system/core/libutils下设计了CallStack.cpp类 如果需要打印Native的stack只需要在自己的代码的mk文件中添加对libutils.so添加依赖,在类文件中include <utils/Call...

2019-06-11 23:52:42

阅读数 796

评论数 3

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