自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小向的专栏

Multimedia Framework从业人员,成长中的菜鸟

  • 博客(106)
  • 收藏
  • 关注

转载 Makefile中命令前的@和-符号

如果make执行的命令前面加了@字符,则不显示命令本身而只显示它的结果; Android中会定义某个变量等于@,例如 hide:= @通常make执行的命令如果出错(该命令的退出状态非0)就立刻终止,不再执行后续命令,但如果命令前面加了-号,即使这条命令出错,make也会继续执行后续命令。通常rm命令和mkdir命令前面要加-号,因为rm要删除的文件可能不存在,mkdir要创建的目

2015-12-31 11:18:29 739

转载 相机知识(节选)

1、持续对焦和触摸对焦的工作原理;答:首先要了解一下对焦的工作原理。AF工作原理:就是通过微距移动镜头,sensor采集图像并传送给ISP处理,ISP把当前frame的对比度值(FV)记录下来并保存为A1,同时按照固定的step把镜头移动到下个位置。下个frame时,sensor又采集图像并传送给ISP处理,ISP把当前frame的对比度值(FV)记录下来并保存为A2。通过

2015-02-25 14:39:57 1332

转载 Android UI框架深度解析

UI界面,对于每个应用而言,是它与用户进行交互的门脸。好的门脸,不只是是要亮丽可人,最好还能秀色可餐过目不忘,甚至还应该有涵养有气质,彬彬有理温柔耐心。  对于开发者来说,锻造这样的面容,不但需要高超的技艺,也需要有称手的工具和对得起党的料子。俗话说,朽木不可雕也,芙蓉不是一日炼成的,不是什么平台都能叫特能书。有套好用的UI框架,对于开发者而言,真有如沙漠中的甘露,而要是撞见了杯具的UI套

2014-12-25 20:15:36 1161

转载 堆栈与函数调用

一 C++程序内存分配1) 在栈上创建。在执行函数时,函数内局部变量的存储单元都在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,一般使用寄存器来存取,效率很高,但是分配的内存容量有限。 2) 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete来释放内存。动态内存的生

2014-11-27 16:58:36 1126

转载 mDNS原理的简单理解

From:http://www.binkery.com/post/318.htmlmDNS multicast DNS , 使用5353端口。在局域网内,你要通过一台主机和其他主机进行通信,你需要知道对方的ip地址,但是有些时候,你并不知道对方的ip地址,因为一般使用DHCP动态分配ip地址的局域网内,各个主机的IP地址是由DHCP服务器来帮你分配IP地址的。所

2014-11-14 14:40:15 18487

转载 C++函数对象与函数指针不同之处

在C++编程语言中,有很多功能都与C语言相通,比如指针的应用等等。在这里我们介绍的则是一种类似于函数指针的C++函数对象的相关介绍。C++函数对象不是函数指针。但是,在程序代码中,它的调用方式与函数指针一样,后面加个括号就可以了。这是入门级的随笔,说的是函数对象的定义,使用,以及与函数指针,成员函数指针的关系。C++函数对象实质上是一个实现了operator()--括号操作符--的类。例如

2014-09-12 14:33:08 771

原创 Chrome/Chromium HTML5 video 视频播放硬件加速

Chromium网站上有个大致的框图,描述了Chromium的video

2014-06-18 14:27:19 8369

转载 HW Video Acceleration in Chrome/Chromium HTML5 video 视频播放硬件加速

IntroductionVideo decode (e.g. YouTube playback) and encode (e.g. video chat applications) are some of the most complex compute operations on the modern web.  Moving these operations from software

2014-06-17 19:43:25 4790

原创 图像处理中Stride的理解

一行有 11 个像素(Width = 11), 对一个 32 位(每个像素 4 字节)的图像, Stride = 11 * 4 = 44.  但还有个字节对齐的问题, 譬如:  一行有 11 个像素(Width = 11), 对一个 24 位(每个像素 3 字节)的图像, Stride = 11 * 3 + 3 = 36.  为什么不是 Stride = 33? 因为它是按

2014-05-15 15:31:23 24648

转载 socket阻塞与非阻塞,同步与异步、I/O模型

socket阻塞与非阻塞,同步与异步作者:huangguisu1. 概念理解     在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步:      所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做

2014-04-02 11:16:52 1078

转载 socket编程原理

socket编程原理1、问题的引入  1) 普通的I/O操作过程:UNIX系统的I/O命令集,是从Maltics和早期系统中的命令演变出来的,其模式为打开一读/写一关闭(open-write-read-close)。在一个用户进程进行I/O操作时,它首先调用“打开”获得对指定文件或设备的使用权,并返回称为文件描述符的整型数,以描述用户在打开的文件或设备上进行I/O操

2014-04-02 11:08:45 1109

转载 DRM in Android

DRM in AndroidDRM,英文全称为Digital Rights Management,译为数字版权管理。它是目前业界使用非常广泛的一种数字内容版权保护技术。随着知识产权保护受重视的程度日益提高,快速攻城略地得Android智能手机是如何利用DRM来有效保护数字版权的呢?本文将通过剖析Android中的DRM框架以及相关工作流程来向读者揭示DRM的神秘面纱。一  DRM架构介

2014-01-16 19:52:30 1023

转载 Android4.2 Camera子系统初探,数据流程简述

Android的Camera应用完成如下三个功能:预览,拍照和录像。以下是Android下UVC的Camera操作流程:一、打开  首先当打开Camera HAL时;会通过ioctl向uvc驱动申请buffer,并通过mmap映射进用户空间。uvc驱动提供HAL的是yuv422(yuyv)格式的原始数据流。二、预览  apk会首先申请surface(假设没有

2014-01-16 16:50:55 2387

转载 android webkit HTML5 video播放

From      http://blog.csdn.net/ownerwu/article/details/6428998摘要:本文主要介绍HTML5 video在android2.2中实现的主要架构和程序流程。一、实现HTML5 video主要的类1.  主要类结构及介绍        图1中绿色类为java类,其余为c++类,下面是各个类的具体介绍

2013-10-25 20:28:15 3998

转载 Android Framebuff 分析

本文转载自http://blog.csdn.net/chychc/article/details/7315786,在这个阶段解答了关于Surface的一些困惑,是个挺不错的文章Linux Framebuffer用于实现对不同框架显示控制器进行抽象,对用户进程而言复杂的显示过程被简化成了写显存。Framebuffer的第二功能是对输出到屏上的数据进行缓冲,将待显示的数据写入至备用显示buff

2013-10-18 11:46:43 2995

转载 Webkit中HTML5 Video的实现分析

转自http://blog.csdn.net/horkychen/article/details/7855814(一) - 基本结构及HTMLMediaElement & MediaPlayer以下为针对Webkit中HTML5 Video实现原理的分析和学习总结。至于其中的UML图档,可以到下面的github链接中下载。首先预览一下Webkit中和Vi

2013-09-13 20:08:20 6234

转载 Android webkit HTML5 Video Play

HTML Video Play1.How will the HTML call video player in the webpage?HTMLMediaElement::updatePlayState()->HTMLMediaElement::m_player->play()->MediaPlayer.cpp(in webkit)->play()//(th

2013-09-13 19:19:58 3809

转载 DRM in Android

DRM in AndroidDRM,英文全称为Digital Rights Management,译为数字版权管理。它是目前业界使用非常广泛的一种数字内容版权保护技术。随着知识产权保护受重视的程度日益提高,快速攻城略地得Android智能手机是如何利用DRM来有效保护数字版权的呢?本文将通过剖析Android中的DRM框架以及相关工作流程来向读者揭示DRM的神秘面纱。一  DRM架

2013-08-12 15:40:02 1589

转载 为什么有时类的析构函数要定义为protected呢?

在看代码的过程中,有时会发现析构函数被定义成virtual,有一些没有定义成virtual但被放置于protected下。网上搜了下了解了原因,下面是较好的解答:1)http://www.cnblogs.com/kanego/archive/2011/10/03/virtual_destructor.html1、如果一个类被继承,同时定义了基类以外的成员对象,且基类析构函数

2013-07-31 10:41:22 3204

转载 用 GStreamer 简化 Linux 多媒体开发

肖文鹏, 自由软件爱好者简介: GStreamer 是 GNOME 桌面环境下用来构建流媒体应用的编程框架(framework),其目标是要简化音/视频应用程序的开发,目前已经能够被用来处理像 MP3、Ogg、MPEG1、MPEG2、AVI、Quicktime 等多种格式的多媒体数据。一、基本概念GStreamer 作为 GNOME 桌面环境推荐的流媒体应用框架,采

2013-07-02 20:19:30 1360

转载 【转】SurfaceFlinger GraphicBuffer内存共享缓冲区机制

GraphicBuffer 是 Surface 系统中用于GDI内存共享缓冲区管理类,封装了与硬件相关的细节,从而简化应用层的处理逻辑SurfaceFlinger是个服务端,而每个请求服务的应用程序都对应一个Client端,Surface绘图由Client进行,而由SurfaceFlinger对所有Client绘制的图合成进行输出,那么这两者是如何共享这块图形缓冲区的内存呢?简要之就是利用

2013-06-29 09:43:48 1510

转载 #、##和__VA_ARGS__

1.#假如希望在字符串中包含宏参数,ANSI C允许这样作,在类函数宏的替换部分,#符号用作一个预处理运算符,它可以把语言符号转化程字符串。例如,如果x是一个宏参量,那么#x可以把参数名转化成相应的字符串。该过程称为字符串化(stringizing).#incldue #define PSQR(x) printf("the square of" #x "is %d.\n",(x)*

2013-02-28 11:35:27 595

转载 zz Android HTML5 video play

1.How will the HTML call video player in the webpage? (from dom parsing to mediaplayer)HTMLMediaElement::updatePlayState()->HTMLMediaElement::m_player->play()->MediaPlayer.cpp(in webkit)->pl

2012-10-19 17:15:42 3345

转载 ffmpeg 中的 attribute_deprecated 属性

阅读ffmpeg源码是 发现一些函数前面加了 attribute_deprecated 属性;如:attribute_deprecated int url_fopen( AVIOContext **s, const char *url, int flags);在libavutil/attributes.h  中有如下定义:   83 #ifndef attribute_deprec

2012-04-14 22:44:53 8444

转载 HTTP Live Streaming (HLS) 视频直播技术

常用的流媒体协议主要有 HTTP 渐进下载和基于 RTSP/RTP 的实时流媒体协议,这二种基本是完全不同的东西,目前比较方便又好用的我建议使用 HTTP 渐进下载的方法。在这个中 apple 公司的 HTTP Live Streaming 是这个方面的代表。它最初是苹果公司针对iPhone、iPod、iTouch和iPad等移动设备而开发的流.现在见到在桌面也有很多应用了, HTML5

2012-04-14 22:07:51 1316

转载 Android kernel Download

当我们按照http://source.android.com/source/downloading.html下载完源码后,并没有看到linux kernel的源码,因而,需要单独下载,下载方法git clone http://android.googlesource.com/kernel/common.git。在Android源码子目录下有许多.git文件,这代表整个源码是由许多git仓库

2011-12-31 10:54:00 727

转载 Android2.3 中如何使用GPU硬件加速

Android2.3 中如何使用GPU硬件加速Android2.3 中如何使用GPU硬件加速 1.名词解释GPU:Graphic Processing Unit (图形处理器)OpenGL:Open Graphic Library 定义了一个跨编程语言、跨平台的编程接口的规格,不同厂商会有不同的实现方法,它主要用于三维图象(二维的亦可)绘制。Su

2011-11-20 10:42:21 2229

转载 Ffmpeg 支持的所有格式列表

FFMPEG目前为止支持的所有格式列表1.文件格式:                                        Supported File Format                      Encoding                      Decoding                      C

2011-11-17 14:52:54 19732 2

转载 数字智能电视的架构与设计关键

随着Google TV的出现,数字电视越来越火爆,以下是网上对数字电视配置的期望(1)主芯片:采用一体化智能电视主芯片或分体式,主频不低于800M,ARM架构,带DSP(视频硬解码)。(2)内存:不低于256M DDR2(3)Nand(内部存储):不低于2G(4)操作系统:Android 2.1或Android 2.2再转一篇介绍数字电视架构的文章,以增进了解:http

2011-11-04 11:44:40 5828

转载 c++虚函数原理及实现(转载)

1、什么是虚函数和多态  虚函数是在类中被声明为virtual的成员函数,当编译器看到通过指针或引用调用此类函数时,对其执行晚绑定,即通过指针(或引用)指向的类的类型信息来决定该函数是哪个类的。通常此类指针或引用都声明为基类的,它可以指向基类或派生类的对象。 多态指同

2011-09-15 10:22:45 519

转载 Android的垃圾回收机制(android refbase类(sp wp))

sp和wp的实现过程~~        个人觉得sp和wp实际上就是android为其c++实现的自动垃圾回收机制,具体到内部实现,sp和wp实际上只是一个实现垃圾回收功能的接口而已,比如说对*,->的重载,是为了其看起来跟真正的指针一样,而真正实现垃圾回收的是refbase

2011-08-26 10:30:36 765

原创 android的开机动画是如何启动的

在SurfaceFlinger::readyToRun()的最后启动开机动画SurfaceFlinger::readyToRun(){  ......    // start boot animation    property_set("ctl.start", "bootanim");}然后,init.rc里面记录的bootanim进程被创建,开机动画由这个进程放出来。

2011-08-01 21:54:11 1682

转载 关于framebuffer

来自: http://blog.163.com/t_gf/blog/static/3068247620096273387171/?fromdm&fromSearch&isFromSearchEngine=yes大家都知道Unix/Linux系统是由命令驱动的。那么最基本的系统是命

2011-07-28 20:59:45 869

转载 asound.conf的作用

2.Android中音频配置文件问题:    配置文件/system/etc/asound.conf其实是alsa体系留的一手。alsa体系提供了这样一种机制:应用层直接改变音频codec的寄存器,具体而言:linux驱动中创建snd_kcontrol_new控制结构,并关联到c

2011-07-09 09:25:56 6522

原创 #define宏定义中特殊符号

1. #:在宏展开的时候会将#后面的参数替换成字符串,如:  #define ToString(x) #x  那么 char  *str = ToString(123); 结果str="123"; 2. ##:将前后两个的单词拼接在一起,如:  #define cat(x,y) x##y  那么 int n = cat(52, 123); 结果 n =52123; 

2011-06-21 11:11:00 2748

转载 音频设备的3种硬件接口--PCM,IIS和AC97

 音频设备的3种硬件接口--PCM,IIS和AC97 一些Audio Codec中总是出现PCM字样,一直以为它是一种音频数据编码格式,但是越看Spec觉得越不像,赶紧到网上查了下,发现它是一种类似与IIS的数据传输格式。 1. PCM接口    针对不同的数字音频子系统,出现了几种微处理器或DSP与音频器件间用于数字转换的接口。最简单的音频接口是PCM(脉冲编码调

2011-06-09 14:59:00 9170

原创 用git的windows客户端msysgit下载android代码

在家里一直都是用windows,琢磨着弄套android的代码,以前能想到的方法就是建一个Linux虚拟机,用git把代码下下来,共享到windows,或者直接到android的git网站下压缩包。前段时间突然发现原来git是有windows客户端的,有一个叫做msysgit,于是用msysgit下载了一份代码,以下是过程:1.下载msysgithttp://code.google.c

2011-06-08 21:02:00 2937

原创 编译了一把linux内核

想学习linux驱动编程,LDD3说最好自己编内核建立起编译环境,所以编译了一把linux内核,但是内核编出来后,这个内核启动不起来,大概是因为内核的配置没搞好吧。发现用Ubuntu的代码路径也可以编,所以先折腾到这里吧,今后了解更多东西后再来把内核编译搞搞好。在Ubuntu 8.04 Desktop中折腾的先从kernel.org把内核代码下下来,下的是linux-2.6.38.6编译步骤:1. make mrproper    清除原先此目录下残留的.config和.o(object文件)2. make

2011-05-20 11:36:00 867

原创 让Ubuntu的vi支持backspace

<br /> <br />Ubuntu的vi不支持方向键和退格键,所以要想加入这些功能配置如下:<br />vi /etc/vim/vimrc.tiny<br />将 set compatible 改为set nocompatible<br />加入一句:set backspace=2

2011-05-18 16:35:00 2951 2

原创 linux的module的“hello world”程序

终于看到使用module的hello world了,哈哈哈我使用的是Ubuntu10.04-64位的Desktop建立源文件hello.c和Makefile:hello.c#include #include MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){printk("Hello, world/n");return 0;}static void hello_exit(void){printk("Goodbye, cruel world/

2011-05-12 16:53:00 1126

空空如也

空空如也

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

TA关注的人

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