2011年6月19日

PVAuthor开发指南

摘要: 目 录1 引言.... 42 架构概述.... 42.1 PVAuthor架构... 42.2 整体顺序图... 53 PVAuthor状态机.... 64 创建和打开会话.... 65 数据源.... 65.1 创建和增加数据源... 65.2 数据源配置... 76 文件格式组成.... 76.1 composer选择... 76.2 composer配置... 86.2.1 3GPP 和 MPEG4 composer. 86.2.2 AMR 和 AAC composer. 97 媒体音轨.... 97.1 增加媒体音轨... 97.2 编码器配置... 98 数据Sinks.. 99 通 阅读全文

posted @ 2011-06-19 21:05 eustoma 阅读(567) 评论(0) 推荐(0)

Android 本地代码中的LIKELY和UNLIKELY宏

摘要: 阅读Android Frameworks中的C++代码时,经常会碰到在条件判断语句中使用了LIKELY和UNLIKELY这两个宏,找到这两个宏的定义如下:#define LIKELY( exp ) (__builtin_expect( (exp) != 0, true )) #define UNLIKELY( exp ) (__builtin_expect( (exp) != 0, false )) long __builtin_expect (long exp, long c)是GCC的内建函数,解析如下:你可以使用__builtin_expect给编译器提供分支预测... 阅读全文

posted @ 2011-06-19 16:05 eustoma 阅读(562) 评论(0) 推荐(0)

单向链表的反转最简单方法

摘要: 给出一个单向链表的header,要求经过处理变成反向,即原链表尾变为链表头,原链表头变成链表尾。例如: 10->20->30->NULL 处理后变为: 30->20->10->NULL我想,下面这应该是时间和空间方面都最简单的方法。struct list{int value;struct list* next;};static int reverse(struct list **pl){struct list* header,*tmp;if(*pl==NULL) return 0;header = NULL;//add node to header and 阅读全文

posted @ 2011-06-19 15:43 eustoma 阅读(255) 评论(0) 推荐(0)

文件内容查找 find+grep

摘要: 看到chinaunix上一哥们用于查找文件内容的命令:-----------------------------------------------------------#> find . -type f -exec grep 'mingtian' -l {} /;grep -l :是显示匹配的内容的文件名字!或者:#> find . -type f -name "*.*" |xargs grep 'xiaoshou' -l(这个方法 不好,挺乱的,还慢,推荐前一个方法!)---------------------------- 阅读全文

posted @ 2011-06-19 15:42 eustoma 阅读(222) 评论(0) 推荐(0)

android2.2 froyo竖屏显示

摘要: 实现以后才发现,google在1.5到2.2这个过程中改进了很多,1.5修改竖屏比较麻烦,而2.2是相当的容易!其实基本上google将之前版本的默认为竖屏的做法进行了改进,不需要再花费更多力气在屏幕的默认横竖切换上面。1.还是kernel竖屏,可以显示到屏幕出现"A N D R O I D"字样 启动参数里加入fbcon=rotate:1 (0:正常屏; 1:顺时钟转90度; 2:转180度; 3:顺时钟转270度;)最后生成的autoconf.h里有类似项:#define CONFIG_CMDLINE "console=ttySAC0,115200 fbcon 阅读全文

posted @ 2011-06-19 15:41 eustoma 阅读(224) 评论(0) 推荐(0)

android 1.5 之前竖屏显示

摘要: 屏是LANDSCAPE的,要让它默认显示为PORTRAIT.1.kernel里要旋转FrameBuffer. 启动参数里加入fbcon=rotate:1 (0:正常屏; 1:顺时钟转90度; 2:转180度; 3:顺时钟转270度;)最后生成的autoconf.h里有类似项:#define CONFIG_CMDLINE "console=ttySAC0,115200 fbcon=rotate:1"此项的解析在$(kernel)/drivers/video/console/fbcon.cstatic int __init fb_console_setup(char *this 阅读全文

posted @ 2011-06-19 15:40 eustoma 阅读(192) 评论(0) 推荐(0)

2011年6月18日

Android Overlay学习

摘要: 前文仅了解了overlay HAL的架构,下面继续看看系统层是如何调用Overlay模块。1、 测试代码frameworks/base/libs/surfaceflinger/tests/overlays/overlays.cpp提供了一个简单的overlay调用流程,可惜这个测试程序有错误, 在sp<Surface> surface = client->createSurface(getpid(), 0, 320, 240, PIXEL_FORMAT_UNKNOWN, ISurfaceComposer::ePushBuffers);这句话编译不过去,错误在Surface的申 阅读全文

posted @ 2011-06-18 23:31 eustoma 阅读(12526) 评论(2) 推荐(1)

Android ISurface PostBuffer 处理流程

摘要: 1 ISurface 的Create 想了解surface的create 和surfaceflinger 可参考这篇文章,比较详细:http://blog.csdn.net/yili_xie/archive/2009/11/12/4803527.aspx Android 起步比较早的大牛们挺多,我现在只能一步步踏着革命先烈的后尘。 每个相应的应用都会有个相应的ISurface 的对象被set进来,例如camera 的cameraService,opencore的MIO。我们只需要知道这么用就可以了。2 App调用流程。 看过code就知道,这个调用是很简单的。 先初始化memoryview p 阅读全文

posted @ 2011-06-18 23:11 eustoma 阅读(1060) 评论(0) 推荐(0)

向Surface写位图数据的方法

摘要: Surface的Buffer准备好后,就可以向Buffer写位图数据,Surface的Buffer跟普通的图像数据一样,也是按一定格式组织的一根根的扫描线数据。下面的例子假设源和目的格式都是32位,并且大小不超标uint8_t *sbits;sbits = (uint8_t *)bitmap->getPixels();int sstride;sstride = bitmap->rowBytes();int sbpp; // bytes per pixelsbpp = bitmap->bytesPerPixel();uint8_t *sline;sline = sbits + 阅读全文

posted @ 2011-06-18 23:09 eustoma 阅读(362) 评论(0) 推荐(0)

普通应用使用Surface的方法

摘要: Android的NDK提供了Surface类,可供应用向屏幕绘图,但使用这个类,有很多机关,如果不注意,代码就不会正常工作。下面是我们使用的时候遇到的问题与解决方法。1,在C++代码里要使用Surface类,必须在APK的工程文件Android.mk里增加权限uses-permissionandroid:name="android.permission.ACCESS_SURFACE_FLINGER"如果没有这句,则创建Surface会失败。2,创建Surface//sp client;client = new SurfaceComposerClient();// 然后向 S 阅读全文

posted @ 2011-06-18 23:08 eustoma 阅读(3547) 评论(0) 推荐(0)

导航