01Android
文章平均质量分 69
lhzhang1985
热爱嵌入式开发,喜欢打球、看电影、户外活动
展开
-
如何将ffmpeg整合到opencore中
如何将ffmpeg整合到opencore中 最近移植在想如何将FFMPEG整合到OPENCORE中,这里说的并不是用NDK编译FFMPEG后提供给JNI调用,这种思路已经实现过,但是效果并不是很好,所以现在考虑如何把FFMPEG整合到OPENCORE中,这涉及比较多的技术细节,比如如何对FFMPEG进行封装,基于OPENMAX标准构建NODE等等,这些相对比较复杂。 现在FFMPEG中的LIBAVCODE可以通过编译,但是LIBAVFOORMAT编译时还是出现一些问题,问题还在修改原创 2010-09-28 14:13:00 · 3211 阅读 · 3 评论 -
stagefright框架(一)Video Playback的流程
stagefright框架(一)Video Playback的流程 在Android上,預設的多媒體框架(multimedia framework)是OpenCORE。OpenCORE的優點是兼顧了跨平台的移植性,而且已經過多方驗證,所以相對來說較為穩定;但是其缺點是過於龐大複雜,需要耗費相當多的時間去維護。從Android 2.0转载 2011-03-14 15:28:00 · 2116 阅读 · 0 评论 -
stagefright框架(二)- 和OpenMAX的運作
stagefright框架(二)- 和OpenMAX的運作 Stagefright的編解碼功能是利用OpenMAX框架,而且用的還是OpenCORE之OMX的實作,我們來看一下Stagefright和OMX是如何運作的。(1) OMX_InitOMXClient mClient;Awesome转载 2011-03-14 15:30:00 · 1753 阅读 · 0 评论 -
An overview of Stagefright player
An overview of Stagefright player There is a new playback engine implemented by Google comes with Android 2.0 (i.e, Stagefright), which seems to be quite simple and stra转载 2011-03-14 18:07:00 · 1717 阅读 · 0 评论 -
stagefright + omx小结(转载)
stagefright + omx小结 看了将近1个多月的stagefright和OMX IL,感觉对框架有了一点感觉,趁感觉还在,记录下来和大家分享,由于本人也是刚开始看多媒体框架,有认识不当的地方还请务必指正. 由于stagefright和openmax运行在两个不同的进程上,所以他们之间的通讯要经过openBinder进行处理,对openBinder这一块还没有了解,所以恕stagefrig转载 2011-03-14 18:10:00 · 3690 阅读 · 1 评论 -
基于android多媒体框架实现播放APE音频的实现
一、APE格式及结构分析(类似flac实现) 待续二、整合到android多媒体框架 待续三、实现播放APE具体实现 待续四、性能分析及改进原创 2012-02-27 15:42:23 · 1994 阅读 · 0 评论 -
Android自动化测试shell脚本(飞车Asphalt5)
Android自动化测试shell脚本(飞车Asphalt5) 本文为本人原著,转载请注明出处:http://blog.csdn.net/lhzhang1985/article/details/6580595 谢谢! 由于需要对飞车Asphalt5进行自动化测试,飞车又不能自动重新再开始,因此需要写个脚本完成自动化测试,然后就让它跑个几天几夜。刚开始不太熟悉自动化测试脚本,就原创 2011-07-02 18:48:14 · 15435 阅读 · 20 评论 -
DDD调试opencore/stagefright(转载更新版)
参考:http://blog.chinaunix.net/u2/61880/showart_2393482.html Google为Android应用开发提供了eclipse加插件作为开发工具,基于eclipse可以方便调试apk,而对于底层开发人员(比如opencore开发)原创 2010-12-02 16:08:00 · 1587 阅读 · 6 评论 -
stagefright框架(三)-選擇Video Decoder
stagefright框架(三)-選擇Video Decoder 在《Stagefright (1) – Video Playback的流程》中,我們並沒有詳述Stagefright是如何根據影片檔的類型來選擇適合的video decoder,現在,就讓我們來看一看。(1) Video decoder是在onPrepareA转载 2011-03-14 17:28:00 · 1438 阅读 · 0 评论 -
stagefright框架(五)-Video Rendering
stagefright框架(五)-Video Rendering AwesomePlayer::onVideoEvent除了透過OMXCodec::read取得解碼後的資料外,還必須將這些資料(mVideoBuffer)傳給video renderer,以便畫到螢幕上去。(1)要將mVideoBuffer中的資料畫出來之前,转载 2011-03-14 17:31:00 · 1449 阅读 · 0 评论 -
最近学习openmax总结
最近在学习openmax IL, 里头学问不少。对于多媒体而言,是个很不错的框架。目前好几个芯片厂家也实现相关的代码,但是具体怎么实现的,需要深入学习。越学越有劲。希望可以进一步深入openmax IL。目前主要针对openmax IL进行深入。看代码是最好的学习途径,其次是官方的文档,500多页的文档看完了,主要讲述的是思想,如何实现与运作。再结合代码看,其实也不是那么难懂。个人觉得原创 2012-11-21 15:27:08 · 1951 阅读 · 0 评论 -
25 Free Digital Audio Editors You Should Know
A digital audio editor is defined as a computer application for manipulating digital audio. As a multimedia creator, we normally use audio editor for recording audio, edit the duration and timeline, m转载 2013-03-14 09:43:17 · 1553 阅读 · 0 评论 -
EXPAT usage
Expat can be intimidating due to the many kinds of handlers and options you can set. But you only need to learn four functions in order to do 80% of what you'll want to do with it:XML_ParserCreate原创 2013-03-13 11:41:07 · 898 阅读 · 0 评论 -
EXPAT(XML解析库)
expat是一个由C语言编写的XML解析库。James Clark创建了这个库,现在是制定XML标准的W3组织的技术leader。现在的版本是2.0。2.0开始就由Clark Cooper领导的开发组在sourceforge.net负责开发。 expat是一个基于SAX模型的、非验证(默认,v1.2开始提供验证接口,需要用户手动处理)的轻量级XML解释器。目前XML的解析主要有转载 2013-03-13 11:12:52 · 3102 阅读 · 0 评论 -
基于Android的KFFMPEG
为了发挥FFMPEG潜能,将用户态程序FFMPEG移植到内核态,花费不少时间啊。目前可解码,还有很多问题需要解决。大多数的开发者都将FFMPEG整合到libstagefright或者opencore,甚至采用NDK的方式写播放器。效果大家可以知道。如果在内核态运行软解码,效果是否要比用户态的软解码要好呢?应该来说是肯定的。希望两者有明显的区别。任务很重啊,继续加油。原创 2012-07-06 15:36:32 · 1219 阅读 · 1 评论 -
stagefright框架(七)-Audio和Video的同步
stagefright框架(七)-Audio和Video的同步 講完了 audio 和 video 的處理流程,接下來要看的是 audio 和 video 同步化 (synchronization) 的問題。 OpenCORE 的做法是設置一個主 clock ,而 audio 和 video 就分 別 以此作為輸出的依據。而在 Sta转载 2012-07-17 14:18:50 · 1465 阅读 · 0 评论 -
stagefright框架(六)-Audio Playback的流程
stagefright框架(六)-Audio Playback的流程 到目前為止,我們都只著重在video處理的部分,對於audio卻隻字未提。這篇文章將會開始audio處理的流程。Stagefright中關於audio的部分是交由AudioPlayer來處理,它是在AwesomePlayer::play_l中被建立的。转载 2011-03-14 17:57:00 · 1065 阅读 · 0 评论 -
stagefright框架(四)-Video Buffer傳輸流程
stagefright框架(四)-Video Buffer傳輸流程 這篇文章將介紹Stagefright中是如何和OMX video decoder傳遞buffer。(1) OMXCodec會在一開始的時候透過read函式來傳送未解碼的data給decoder,並且要求decoder將解碼後的data傳回來转载 2011-03-14 17:29:00 · 1505 阅读 · 0 评论 -
利用 android手机DLNA功能,实现手机视频无线播放到电脑、电视
利用DLNA功能可实现个人PC、消费电器、移动设备在内的无线网络和有线网络的互联互通。DLNA可以支持的格式:Image:JPEG PNG, GIF, TIFFAudio:LPCM AAC, AC-3, ATRAC 3plus, MP3, WMA9AV: MPEG2 MPEG-1, MPEG-4, AVC, WMV9利用手机DLNA功能,可实现手机视频无线播放到电脑播放器,或手机直接播放电脑中的视转载 2011-06-21 11:32:00 · 25808 阅读 · 0 评论 -
ANDROID2.3音频系统HAL
<br />从大的方面来说,Android2.3的音频系统架构与Android2.2相比并没有太多的改变。对2.2的音频架构分析依然适用于2.3,之前很多人已经对这方面进行非常详尽的阐述,这里就不重复了。各模块文件的存放位置有所变更,这点倒是要了解的。<br />1、有个较大的改进的是引入了mixable audio effects系统。我草草翻了翻代码,应该是opensles实现的。opensles也是2.3新引入的一个音频库,这使得Android的音效变得更强大。但应该会牺牲一些性能,比方说之前Andr转载 2011-04-28 10:28:00 · 1987 阅读 · 0 评论 -
ASF文件格式详解(2)
<br />ASF Data Object<br />? Data object:由ASF data packet组成。Data packet是一个定长的数据包。每一个数据包携带一个或多个数字媒体流。Data packet在data object中按照发送时间顺序保存。也就是一个data packet可能包含来自不同的码流的中的数据。Data packet通过entry objects来组织管理来自不同码流的数据。<br />? Data packet:data object的组成单位。转载 2011-01-18 17:37:00 · 2324 阅读 · 0 评论 -
android中的强指针和弱指针
<br />在Android的源代码中,经常会看到形如:sp<xxx>、wp<xxx>这样的类型定义,这其实是Android中的智能指针。智能指针是C++中的一个概念,通过基于引用计数的方法,解决对象的自动释放的问题。在C++编程中,有两个很让人头痛的问题:一是忘记释放动态申请的对象从而造成内存泄露;二是对象在一个地方释放后,又在别的地方被使用,从而引起内存访问错误。程序员往往需要花费很大精力进行精心设计,以避免这些问题的出现。在使用智能指针后,动态申请的内存将会被自动释放(有点类似Java的垃圾回收),不转载 2011-01-07 16:09:00 · 1239 阅读 · 0 评论 -
Android Codec 集成和 video Overlay
<br />转载:http://jinguo.javaeye.com/blog/724561<br /> <br />个人认为本文讲述的挺好,所以留个记录。<br /> <br />Codec集成和video overlay是现在FSL对android多媒体修改的所有东西,codec library以.so的形式放在prebuilt目录下,没有源文件。而video overlay的实现主要是使用了FSL的ipu底层库,将视频数据直接发送到硬件,由硬件进行merge。<br />A、Codec 集成<br /转载 2010-12-06 15:25:00 · 2680 阅读 · 0 评论 -
Android多媒体支撑库OpenCore视频硬件加速
转载:http://my.unix-center.net/~Simon_fu/?p=748Android2.2之前版本的视频音频的播放默认支撑库为OpenCore。OpenCore功能非常强大,可以支持多种媒体格式,并支持扩展。当然本文将要简单介绍一下怎样对OpenCore进行视频硬件加速,以提高其视频运行效率。 OpenCore的作用简单的说就是对媒体(音频视频)数据进行解码,并输出到终端设备。音频数据解码和输出比较简单,本文重点介绍视频数据的解码和输出。为了使OpenCore的视频播放支持And转载 2010-12-06 11:52:00 · 2230 阅读 · 1 评论 -
opencore内部调度
转载:http://blog.chinaunix.net/u2/61880/showart_2330325.html1引言<br />多媒体框架是非常重要而又令人关心的模块,尤其在android的系统上,多媒体播放效果如何,对其框架了解是非常必要的。<br />多媒体中的调度问题,是个背后的故事,但却对性能影响至关重要,本文并非全面分析多媒体框架,旨在探讨媒体框架调度方面与传统的多线程应用间的差异。 2基本知识<br />1. 多媒体框架:<br />宏观上看多媒体框架一般包含:engine、转载 2010-12-06 15:10:00 · 1078 阅读 · 0 评论 -
Android通过软解码播放视频
Android通过软解码播放视频,其实这个在源码目录hardware/msm7k/libgralloc和libgralloc-qsd8k已有实现,源码中的确没有。可以完全仿照该目录下进行更改。以下参考一篇文章,描述很详细,可以借鉴下。参考:http://my.unix-center.net/~Simon_fu/?p=601一般情况下Android的平台都是硬解码视频的,尤其是在Arm平台这种成熟的硬件平台上面(硬解码代码由芯片厂商提供)。但是Android移植到MIPS平台时间还不长,还不成熟,还需要自己实原创 2010-12-06 11:45:00 · 7536 阅读 · 2 评论 -
C++引用与指针的比较
转:http://www.cnblogs.com/kingln/archive/2008/03/29/1129118.html引用是C++中的概念,初学者容易把引用和指针混淆一起。 以下程序中,n是m的一个引用(reference),m是被引用物(referent)。 int m; int &n = m; n相当于m的别名(绰号),对n的任何操作就是对m的操作。 所以n既不是m的拷贝,也不是指向m的指针,其实n就是m它自己。 引用的规则: (1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化转载 2010-12-03 16:31:00 · 605 阅读 · 0 评论 -
stagefright与opencore对比
转:http://blog.chinaunix.net/u2/61880/showart_2339481.html 1引言Android froyo版本多媒体引擎做了变动,新添加了stagefright框架,并且默认情况android选择stagefright,弃用之前的opencore,仅仅对opencore中的omx-component部分做了引用。Stagefright自android2.0后才添加,其稳定性有待商榷,是否存在bug也未知,opencore自android诞生起便存在,稳定性有保障。转载 2010-12-02 13:04:00 · 1044 阅读 · 0 评论 -
android2.2源码编译-Ubuntu10.04 (X86) + android2.2 + JDK1.6 (个人觉得写得很全)
<br />android2.2源码编译<br />环境:--Ubuntu10.04 (X86) + android2.2 + JDK1.6<br />注意:官方声明,32位系统下JDK必须用1.5---这是因为编译android api docs 需要1.5。要用JDK1.6必须用64位系统---为什么是64目前不得而知。要是想一次成功,最好还是按照官方说的用JDK1.5(当然你用64位linux就更方便了),这样的话基本没什么大问题。<br />1)安装必要的软件环境view sourceprint?1转载 2011-01-26 17:58:00 · 910 阅读 · 0 评论 -
RIFF文件规范
<br />RIFF文件规范<br />Peter Lee 2007-10-02<br /> <br />摘要:RIFF全称为资源互换文件格式(Resources Interchange File Format),RIFF文件是windows环境下大部分多媒体文件遵循的一种文件结构,常见的如WAV文件、AVI文件等。RIFF可以看成一种树状结构,其基本组成单元为LIST和CHUNK,分别如树的节点和叶子。<br /> <br />一、RIFF文件简介<br />RIFF是Microsoft提出的一种多媒体文转载 2011-03-01 10:31:00 · 1050 阅读 · 0 评论 -
Android Audio System 之二:AudioFlinger
引言 AudioFlinger是Android音频系统的两大服务之一,另一个服务是AudioPolicyService,这两大服务都在系统启动时有MediaSever加载,加载的代码位于:frameworks/base/media/mediaserver/main_mediaserver.cpp。AudioPolicyService的相关内容请参考另一编文章:《Android Audio System 之三: AudioPolicyService 和 AudioPolicyManager 》http转载 2011-04-28 16:11:00 · 1435 阅读 · 0 评论 -
hw mixer还是sw mixer实现setMasterVolume?
<br />昨天分析了一把snd_kcontrol,可以认为上层应用的确是通过名称标识name来遍历底层的snd_kcontrol链表,从而找到相匹配的kcontrol。见snd_ctl_find_id函数<br />view plaincopy to clipboardprint?<br />·········10········20········30········40········50········60········70········80········90········100······转载 2011-04-28 11:17:00 · 2620 阅读 · 0 评论 -
Android Audio System 之一:AudioTrack如何与AudioFlinger交换音频数据
<br />Android Framework的音频子系统中,每一个音频流对应着一个AudioTrack类的一个实例,每个AudioTrack会在创建时注册到AudioFlinger中,由AudioFlinger把所有的AudioTrack进行混合(Mixer),然后输送到AudioHardware中进行播放,目前Android的Froyo版本设定了同时最多可以创建32个音频流,也就是说,Mixer最多会同时处理32个AudioTrack的数据流。<br />如何使用AudioTrack<br />Audi转载 2011-04-28 16:06:00 · 1521 阅读 · 1 评论 -
Ubuntu10.04系统 32位机上安装编译Android2.3源码
<br />转自:http://blog.163.com/fenglang_2006/blog/static/1336623182011115111052818/<br />Ubuntu10.04系统 32位机上安装编译Android2.3源码,其步骤和注意事项如下:<br /><br />1.安装JDK6<br />对于Android2.3系统,不要安装JDK5,应该安装最新的JDK6。<br />如果安装了JDK6,Android会自动按64位编译,如果系统是32位的,会有编译错误,后面会说如何修改这个转载 2011-06-01 14:20:00 · 1042 阅读 · 0 评论 -
Android深入浅出之Audio(1,2,3)
<br />android音频系统的分析很到位,通俗易懂,很强大,推荐之。<br /> <br />作者:Innost<br /> <br />Android深入浅出之Audio 第一部分 AudioTrack分析<br />http://www.cnblogs.com/innost/archive/2011/01/09/1931457.html 或者http://blog.csdn.net/Innost/archive/2011/01/09/6125779.aspx<br />Android深入浅出之Au转载 2011-05-10 12:10:00 · 1741 阅读 · 1 评论 -
source insight快捷键及使用技巧
source insight快捷键及使用技巧<br />退出程序 : Alt+F4<br />重画屏幕 : Ctrl+Alt+Space<br />完成语法 : Ctrl+E<br />复制一行 : Ctrl+K<br />恰好复制该位置右边的该行的字符 : Ctrl+Shi转载 2011-03-21 15:34:00 · 818 阅读 · 0 评论 -
Git 使用手冊
<br />*** refer to: http://zx-1986.blogspot.com/2010/08/git-manual.html ***<br />Git(http://git-scm.com/)是一套分散式的版本管理系統。<br />類似 SVN(Subversion)或 CVS(Concurrent Version System)對程式碼或文件進行管理。<br />Git 的概念很單純,想像一下:<br />你的書櫃裡有許多書,偶而有新書進來,有舊書捐出去。<br />有時候你還會在某些書转载 2011-03-05 12:24:00 · 1521 阅读 · 0 评论 -
AVI文件规范(更新版)
AVI文件规范本文主要参考了如下资料:http://blog.csdn.net/sunshine1314/archive/2007/10/14/1824432.aspx 格式规范http://blogold.chinaunix.net/u2/69656/showart_1110871.html 格式规范http://blog.csdn.net/njuitjf/archive/2010/06/19/5680632.aspx 格式解析一、AVI文件简介AVI的英文全称为Audio Video Interle原创 2011-03-01 10:21:00 · 1630 阅读 · 0 评论 -
Audio Effects
Audio EffectsThis page provides an overview of the most common audio effects used in sound production, with links to more detailed tutorials.EqualizationEqualization means boosting or redu转载 2013-03-14 15:01:53 · 1542 阅读 · 0 评论