<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[eternity9255的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/eternity9255</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; eternity9255]]></copyright><item><title><![CDATA[Android USB Camera(2) : UVC协议分析]]></title><link>https://blog.youkuaiyun.com/eternity9255/article/details/53522966</link><guid>https://blog.youkuaiyun.com/eternity9255/article/details/53522966</guid><author>eternity9255</author><pubDate>Thu, 08 Dec 2016 19:15:18 +0800</pubDate><description><![CDATA[1. 前言

本文对USB的功能类协议USB Video Class（UVC）的具体设计进行介绍，但不会介绍USB基础协议，所以需要对USB基础协议有一定的了解，包括USB四大描述符以及四种传输方式。分析usb协议的重点在于描述符，这里将以实际设备的描述符为线索，贯穿、分析uvc协议。

2. UVC功能概述

UVC设备都是多Interface设备，这点同普通的u盘不同。UVC设备最起码有两个I]]></description><category></category></item><item><title><![CDATA[Android USB Camera(1) : 调试记录]]></title><link>https://blog.youkuaiyun.com/eternity9255/article/details/53069037</link><guid>https://blog.youkuaiyun.com/eternity9255/article/details/53069037</guid><author>eternity9255</author><pubDate>Mon, 07 Nov 2016 19:00:26 +0800</pubDate><description><![CDATA[1.    前言

前段时间应为公司项目需要调试了一个uvc摄像头，这里做下记录。硬件平台为mt6735，软件平台为android 5.0



2.    底层配置

UVC全称是usb video class，一种usb视频规范。所有遵循uvc协议的摄像头都不需要安装额外的驱动，只需要一个通用驱动即可。Linux内核已经集成了uvc驱动，代码路径是kernel-3.10/drivers/med]]></description><category></category></item><item><title><![CDATA[Android 5.0 Camera系统源码分析(5)：Camera预览3A流程]]></title><link>https://blog.youkuaiyun.com/eternity9255/article/details/52848775</link><guid>https://blog.youkuaiyun.com/eternity9255/article/details/52848775</guid><author>eternity9255</author><pubDate>Tue, 18 Oct 2016 14:39:13 +0800</pubDate><description><![CDATA[本文分析的是Android Hal层的源码，硬件平台基于mt6735。之前几篇讲的预览流程中3A相关的环节都忽略了，现在重新整理下。3A指的是Auto Exposure，Auto Focus，Auto White Balance。这三个一起放上来代码实在太多了，这里将重点记录AF的代码。]]></description><category></category></item><item><title><![CDATA[Android 5.0 Camera系统源码分析(4)：Camera预览流程数据流]]></title><link>https://blog.youkuaiyun.com/eternity9255/article/details/52838696</link><guid>https://blog.youkuaiyun.com/eternity9255/article/details/52838696</guid><author>eternity9255</author><pubDate>Mon, 17 Oct 2016 14:46:06 +0800</pubDate><description><![CDATA[1. 前言，上一篇讲了怎么让Camera进入预览模式，提到了DisplayClient负责显示图像数据，而CamAdapter负责提供图像数据，这里主要记录了CamAdapter怎么获取图像，然后DisplayClient怎么将图像显示在屏幕上。2. DisplayClient，上一篇提到在setPreviewWindow的时候会构造并初始化DisplayClient，之前没有仔细分析，现在来看看]]></description><category></category></item><item><title><![CDATA[Android 5.0 Camera系统源码分析(3)：Camera预览流程控制流]]></title><link>https://blog.youkuaiyun.com/eternity9255/article/details/52790962</link><guid>https://blog.youkuaiyun.com/eternity9255/article/details/52790962</guid><author>eternity9255</author><pubDate>Tue, 11 Oct 2016 19:28:22 +0800</pubDate><description><![CDATA[本文分析的是Android系统源码，从frameworks层到hal层，记录了Camera进入预览模式的重点代码，主要为控制流程的代码，有关图像buffer的传递暂不涉及，硬件平台基于mt6735。由于某些函数比较复杂，在贴出代码时会适当对其进行简化。这里将分析app层令Camera进入预览模式的两个重点api：setPreviewDisplay和startPreview]]></description><category></category></item><item><title><![CDATA[Android 5.0 Camera系统源码分析(2)：Camera打开流程]]></title><link>https://blog.youkuaiyun.com/eternity9255/article/details/52126392</link><guid>https://blog.youkuaiyun.com/eternity9255/article/details/52126392</guid><author>eternity9255</author><pubDate>Fri, 05 Aug 2016 10:09:17 +0800</pubDate><description><![CDATA[1. 前言
本文将分析android系统源码，从frameworks层到hal层，暂不涉及app层和kernel层，属于自己对源码的总结，仅仅是贯穿代码流程，不会深入分析各个细节。由于某些函数比较复杂，在贴出代码时会适当对其进行简化
2. app层
从apk开始，简单列出各个入口函数

private void initCamera()
{
    Camera mCamera = Ca]]></description><category></category></item><item><title><![CDATA[Android 5.0 Camera系统源码分析(1)：CameraService启动流程]]></title><link>https://blog.youkuaiyun.com/eternity9255/article/details/52085864</link><guid>https://blog.youkuaiyun.com/eternity9255/article/details/52085864</guid><author>eternity9255</author><pubDate>Mon, 01 Aug 2016 15:11:04 +0800</pubDate><description><![CDATA[本文将分析android系统源码，从frameworks层到hal层，暂不涉及app层和kernel层。由于某些函数比较复杂，在贴出代码时会适当对其进行简化。本文属于自己对源码的总结，仅仅是贯穿代码流程，不会深入分析各个细节。Android的各个子模块的启动都是从它们的Service的启动开始的，所以我们将从CameraService的启动开始分析。CameraService的启动就在MediaServer的main函数中，代码路径在：frameworks/av/media/mediaserver/main]]></description><category></category></item></channel></rss>