自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(221)
  • 资源 (1)
  • 收藏
  • 关注

转载 Camera2 OpenCamera流程

Camera操作过程中最重要的四个步骤:CameraManager–>openCamera —> 打开相机CameraDeviceImpl–>createCaptureSession —> 创建捕获会话CameraCaptureSession–>setRepeatingRequest —> 设置预览界面CameraDeviceImpl–>capture —> 开始捕获图片。

2023-01-30 14:22:54 971

转载 非常难得的 CMOS sensor 工作原理的深入技术科普

关于大像素和高像素(高像素密度)的争论从D70和350D时代就开始了,到了D700和5D2的时代不仅没有争论出正确的结论,反而得出了一个似是而非的结果:高像素好。包括一些号称专业的网站在D3s发布后认为D3s没有大的改进,其理由就是像素没有提高。特别是某些佳能的FANS更是坚信高像素比大像素好,因为佳能单反相机的像素数量在D3X出现之前一直领先于尼康的单反相机。起先是350D的800万像素对D7...

2019-01-11 17:04:05 35924 5

转载 使用Camera2 替代过时的Camera API

概要从5.0开始(API Level 21),可以完全控制安卓设备相机的新api Camera2(android.hardware.Camera2)被引入了进来。在以前的Camera api(android.hardware.Camera)中,对相机的手动控制需要更改系统才能实现,而且api也不友好。不过老的Camera API在5.0上已经过时,在未来的app开发中推荐的是Camera2

2016-06-09 10:23:00 3160

转载 Android指针管理:RefBase,SP,WP

Android中通过引用计数来实现智能指针,并且实现有强指针与弱指针。由对象本身来提供引用计数器,但是对象不会去维护引用计数器的值,而是由智能指针来管理。要达到所有对象都可用引用计数器实现智能指针管理的目标,可以定义一个公共类,提供引用计数的方法,所有对象都去继承这个公共类,这样就可以实现所有对象都可以用引用计数来管理的目标,在Android中,这个公共类就是RefBase,同时还有一个简单版

2016-06-07 20:58:35 589

转载 Android4.2.2 Camer系统架构图(HAL和回调处理)

2016-06-03 11:05:29 964

转载 Android Camera从Camera HAL1到Camera HAL3的过渡(已更新到Android6.0 HAL3.3)

1. Android系统中Camera模块版本号的历史演变进度[cpp] view plain copy /**  * All module versions   * as CAMERA_MODULE_API_VERSION_1_0  */  #define CAMERA_MODULE_API_VERSION_1_0 HARDWARE_MODULE_API_VE

2016-06-02 20:54:05 5758

转载 Android Camera HAL3中预览preview模式下的控制流

Camera3研读前沿:    当初在研读Camera1.0相关的内容时,主要围绕着CameraClient、CameraHardwareInterface等方面进行工作的开展,无论是数据流还是控制流看起来都很简单、明了,一系列的流程化操作使得整个框架学起来特别的容易。因为没有Camera2.0相关的基础,所以这次直接看3.0相关的源码时,显得十分的吃紧,再加上底层高通HAL3.0实现的过

2016-06-02 20:52:26 4316

转载 Android Camera API2中采用CameraMetadata用于从APP到HAL的参数交互

前沿:在全新的Camera API2架构下,常常会有人疑问再也看不到熟悉的SetParameter/Paramters等相关的身影,取而代之的是一种全新的CameraMetadata结构的出现,他不仅很早就出现在Camera API1/API2结构下的Camera2Device、Camera3Device中用于和HAL3的数据交互,而现在在API2的驱使下都取代了Parameter,实

2016-06-02 20:49:35 2838

转载 Android Camera HAL3中拍照Capture模式下多模块间的交互与帧Result与帧数据回调

前沿:        前面博文大多少总结的是Camera HAL1到HAL3的系统架构,但这些架构对于Camera APP开发来说依旧还是处于Camera API1.0的标准。而随着Camera3、HAL3.0等的不断更新,Google先是在Framework中更改了整个架构从而去匹配Camera API1.0的处理逻辑,随着时间的推移,Google直接对Camera API进行了全新

2016-06-02 20:33:08 2268

转载 Android5.1中surface和CpuConsumer下生产者和消费者间的处理框架简述

前沿:前面博文大多少总结的是Camera HAL1到HAL3的系统架构,但这些架构对于Camera APP开发来说依旧还是处于Camera API1.0的标准。而随着Camera3、HAL3.0等的不断更新,Google先是在Framework中更改了整个架构从而去匹配Camera API1.0的处理逻辑,随着时间的推移,Google直接对Camera API进行了全新的升级,去除了原先的Ca

2016-06-01 21:24:13 1198

转载 定语从句的用法讲解

18.1 关系代词引导的定语从句   关系代词所代替的先行词是人或物的名词或代词,并在句中充当主语、宾语、定语等成分。关系代词在定语从句中作主语时,从句谓语动词的人称和数要和先行词保持一致。1)who, whom, that  这些词代替的先行词是人的名词或代词,在从句中所起作用如下:  Is he the man who/that wants to see y

2016-04-16 19:02:13 692

转载 Android Camera API2.0下全新的Camera FW/HAL架构简述

前沿:前面博文大多少总结的是Camera HAL1到HAL3的系统架构,但这些架构对于Camera APP开发来说依旧还是处于Camera API1.0的标准。而随着Camera3、HAL3.0等的不断更新,Google先是在Framework中更改了整个架构从而去匹配Camera API1.0的处理逻辑,随着时间的推移,Google直接对Camera API进行了全新的升级,去除了原先的

2016-03-03 12:00:34 2125

转载 Android Camera HAL V3 Vendor Tag及V1,V3参数转换

转眼一看,上一次发博文都快是三年之前了,惭愧 ! 主要是三年前找的这份工作,虽然是世界500强的技术大牛公司,但是工作可一点都不高大上,非常的忙,一天不但要处理各种camera的bug,还要开发camera的各种feature和sensor驱动,还要和内部、外部的人各种扯皮,你懂的。忙的三年了才有闲心来发表这片博文。       牢骚已完,言归正传。       在Android 

2016-03-03 11:40:28 1321

转载 Android Camera API2中采用CameraMetadata用于从APP到HAL的参数交互

前沿:在全新的Camera API2架构下,常常会有人疑问再也看不到熟悉的SetParameter/Paramters等相关的身影,取而代之的是一种全新的CameraMetadata结构的出现,他不仅很早就出现在Camera API1/API2结构下的Camera2Device、Camera3Device中用于和HAL3的数据交互,而现在在API2的驱使下都取代了Parameter,实现了

2016-03-03 11:39:54 1650

转载 Android Camera HAL3中预览preview模式下的数据流

前沿:为了更好的梳理preview下buffer数据流的操作过程,前一文中对surface下的buffer相关的操作架构进行了描述。本文主要以此为基础,重点分析再Camera2Client和Camera3Device下是如何维护并读写这些视频帧缓存的。 1. Camera3Device::convertMetadataListToRequestListLocked函数

2016-03-01 11:08:29 7480 3

转载 android camera接口介绍

1.CameraAndroid的camera硬件抽象层(HAL)将更高层次的android.hardware中的camera框架层API与底层的camera驱动和camera硬件模块连接了起来。Camera子系统包括camera流水线上各个组件的实现,而camera HAL提供了这些组件的使用接口。注:camera HAL起着承上启下的作用。在camera HAL层实现中,芯片厂商一般

2015-12-25 20:28:30 2229

转载 android camera HAL v3.0详细介绍(二)

3.Startup and expected operation sequence这段描述了使用camera API的详细步骤。其中涉及到的结构体和函数请参考文件:platform/hardware/libhardware/include/hardware/camera3.h1.       Framework层调用函数camera_module_t->common.open(),将返回一

2015-12-21 11:11:17 7726 1

转载 android camera HAL v3.0详细介绍(一)

1.        RequestsApplication framework层向camera子系统发出一系列捕获数据的请求。一个请求对应于结果中的一个单元。请求封装了这些结果关于捕获数据和处理数据的所有配置信息。这些信息包括:分辨率,像素格式,sensor调整,镜头和闪光灯控制,3A操作模式,RAW转YUV处理,统计信息产生,等等。这里考虑了很多关于对结果数据的输出和处理的控制。多个请求可以

2015-12-21 11:10:29 11310 1

转载 android camera系统3A模式及其状态转换(二)

5.        AF state machines mode = AF_MODE_OFF or AF_MODE_EDOF   StateTransformation causeNew stateNotesINACTIVE  AF is disabledmode = AF_MODE_AUTO or AF_

2015-12-21 11:09:21 2014

转载 android camera系统3A模式及其状态转换(一)

虽然HAL层负责实现3A算法,但HAL interface定义了一个高层次的状态机描述,允许HAL层设备和framework层交流3A当前状态和3A事件的触发情况。当设备被打开时,所有3A状态都应该是STATE_INACTIVE。码流配置不需重置3A。例如,需要通过调用configure()来修改固定焦点。要触发3A行为,需要为下一个请求简单地设置相关触发器实体,以引导触发器的启动。例

2015-12-21 11:08:28 13946

转载 android camera HAL v3.0中元数据及其控制

1.        Metadata supportAndroid framework层为了支持保存raw图像文件,增加了大量关于sensor特性的元数据。这些元数据包括大量信息,例如颜色空间和lens shading。在camera子系统中,大多数元数据信息都是以静态属性的方式存在,因此在配置输出流水线或者提交请求之前获取这些元数据。在新的camera API中,通过getCam

2015-12-21 11:07:37 1189

转载 android camera HAL v3.0概述

Android的camera硬件抽象层(HAL)将更高层次的android.hardware.Camera中的camera框架层API与底层的camera驱动和camera硬件模块连接了起来。Android最新版本介绍了camera栈的一个新的、底层的实现。如果你有一个以前开发的camera HAL模块,可以驱动android其他版本,那你将发现在camera流水线中发生了非常大的变化。由

2015-12-21 11:00:51 1997

转载 Android camera子系统HAL层介绍集锦

版权声明:本文为博主原创文章,未经博主允许不得转载。Android官网上对camera子系统HAL层进行了详细的介绍,其官方网址如下:https://source.android.com/devices/camera/index.html在这个网址上,android官方从九个方面对camera子系统HAL的接口做了详细描述。对这些网址的内容,我做了系统的翻译,希望对大家能有所帮

2015-12-21 10:59:45 1028

转载 android camera接口介绍

1.CameraAndroid的camera硬件抽象层(HAL)将更高层次的android.hardware中的camera框架层API与底层的camera驱动和camera硬件模块连接了起来。Camera子系统包括camera流水线上各个组件的实现,而camera HAL提供了这些组件的使用接口。注:camera HAL起着承上启下的作用。在camera HAL层实现中,芯片厂商一般

2015-12-21 10:58:29 1745

转载 Android Hal 分析

本文是基于android4.0.3.对应其他低版本的代码,可能有所差异,但基本大同小异。      Android的HAL是为了保护一些硬件提供商的知识产权而提出的,是为了避开linux的GPL束缚。思路是把控制硬件的动作都放到了Android HAL中,而linux driver仅仅完成一些简单的数据交互作用,甚至把硬件寄存器空间直接映射到user space。而Android是基于Apar

2015-08-20 17:51:31 564

转载 mp4 文件格式系列

不同。sample-to-chunk atom存储sample与chunk的映射关系。 Sample-to-chunk atoms的类型是'stsc'。它也有一个表来映射sample和trunk之间的关系,查看这张表,就可以找到包含指定sample的trunk,从而找到这个sample。 字段      长度(字节)  描述 尺寸         4         这个ato

2015-04-03 16:24:20 1125

转载 获取mp4文件信息3 - 计算电影声音采样频率

从tkhd – track header atom中找出audio track的time scale即是声音的采样频率。

2015-04-03 16:18:21 2114

转载 获取mp4文件信息2 - 计算电影图像宽度和高度

从tkhd – track header atom中找到宽度和高度即是。

2015-04-03 16:16:14 1686

转载 mp4文件格式系列1 - 综述

Overview and IntroductionCore ConceptsMP4文件格式中,所有的内容存在一个称为movie的容器中。一个movie可以由多个tracks组成。每个track就是一个随时间变化的媒体序列,例如,视频帧序列。track里的每个时间单位是一个sample,它可以是一帧视频,或者音频。sample按照时间顺序排列。注意,一帧音频可以分解成多个音频sa

2015-04-03 16:14:13 930

转载 详解coredump

一,什么是coredump        我们经常听到大家说到程序core掉了,需要定位解决,这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满足一定条件下(这里为什么说需要满足一定的条件呢?下面会分析)会产生一个叫做core的文件。        通常情况下,core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函

2014-08-19 20:27:33 854

转载 WifiP2pService的启动以及P2P的连接

这一章主要总结从WifiP2pService的启动到用户通过四种连接方式连接P2P的过程,四种方式包括:主动连接、被动连接、主动invite和被动invite。首先来看WifiP2pService的启动。WifiP2pService的启动WifiP2pService的创建以及启动是在SystemServer中,主要代码如下:[java] view

2014-08-16 11:16:28 6930 2

转载 Android WiFi系统

一、wpa_supplicant是什么?      wpa_supplicant本是开源项目源码,被谷歌修改后加入android移动平台,它主要是用来支持WEP,WPA/WPA2和WAPI无线协议和加密认证的,而实际上的工作内容是通过socket(不管是wpa_supplicant与上层还是wpa_supplicant与驱动都采用socket通讯)与驱动交互上报数据给用户,而用户可以通过s

2014-08-16 11:05:46 744

转载 Android WiFi--系统架构

1. 系统架构        Android WiFi系统引入了wpa_supplicant,它的整个WiFi系统以wpa_supplicant为核心来定义上层用户接口和下层驱动接口。整个WiFi系统架构如下图所示:   一切尽在上图中,下面将对每部分进行详细分析。1.1 WifiService        由SystemServer启动的时候生成的Con

2014-08-16 11:04:23 1028

转载 Android中基于NuPlayer的RTSP框架学习

一、整体框架图Android中基于NuPlayer的RTSP框架如下图所示(该图来自网上)。整个图主要分为两个部分,一部分是NuPlayer的架构,另一部分则是实现了基于RTSP的流媒体播放功能,即RTSPSource。当然还有一些其他的Source,如图中的HTTPLiveSource,还有图中没有画出的GenericSource、StreamingSou

2014-08-12 12:19:35 8516

转载 Android系统启动过程

一、开机加电bootloader(汇编语言)进行底层初始化,并加载内核代码,最终跳转到内核的boot程序。二、Linux内核引导  1)kernel核心初始化(内存初始化,打开中断,初始化进程表等等);  2)驱动初始化;  3)启动内核后台(daemons)线程  4)安装根(root)文件系统  5) 启动第一个用户级进程init

2014-08-08 19:45:26 807

转载 select、poll、epoll的比较

http://my.chinaunix.net/space.php?uid=20196318&do=blog&id=366042http://blog.endlesscode.com/2010/03/27/select-poll-epoll-intro/  linux提供了select、poll、epoll接口来实现IO复用,三者的原型如下所示,本文从参数、

2014-08-06 21:00:20 640

转载 用管道(pipe)使消息队列通知(mq_notify)可以在Select和poll中使用

这是在Unix网络编程第二卷进程间通信中看到的一个技巧。它使得posix消息队列的mq_notify可以在select中使用。具体方法为:1、建立管道;2、在主线程中用select监听管道的读事件;3、在mq_notify的时间处理程序中往管道里写数据,通知主线程只是不知道这样做,效率怎么样。UNP-IPC有一段实例代码,如下:[cpp] view

2014-08-06 20:57:08 2817

转载 非阻塞式socket编程

select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方式

2014-08-06 20:48:18 599

转载 socket编程 及select poll epoll示例

1、关于字节排序    网际协议采用大端字节序,来传输多字节整数。    系统提供了转换的宏定义,如果主机与网际协议相同,则宏定义为空。2、客户端    socket -> connect(阻塞,三次握手)-> rcv3、服务器端    socket -> bind -> listen -> accept(阻塞,三次握手)-> send4、函数介绍         a..s

2014-08-06 20:35:01 1025

转载 select, poll和epoll (ZZ)

select()系统调用提供一个机制来实现同步多元I/O:#include sys/time.h>#include sys/types.h>#include unistd.h>int select (int n,fd_set *readfds,fd_set *writefds,fd_set *exceptfds,struct timeva

2014-08-06 20:30:49 557

程序员面试宝典,这一份是完整的

这一份是完整的 程序员面试的常见题目分析

2010-04-11

空空如也

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

TA关注的人

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