自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (12)
  • 收藏
  • 关注

原创 Android CSD信息传递flow

对于某些格式,会要求实际数据以特性的开头为前缀(CSD data)[Codec-special data]。这些数据最终会通过MediaCodec configure来传递。使用MediaCodec,会使用Android自带extractor/Vendor厂商扩展extractor或者apk自带extractor.前两种extractor,会调用Utils.cpp里面的convertMet

2017-05-12 11:33:48 817

原创 Android OMXNodeinstance/OMX Component交互

OMXNodeInstance.cpp:OMX_CALLBACKTYPE OMXNodeInstance::kCallbacks = {    &OnEvent, &OnEmptyBufferDone, &OnFillBufferDone};OMX.cppstatus_t OMX:allocateNode...OMX_ERRORTYPE err = mMaste

2017-05-12 10:51:09 2636

原创 Android systrace使用

在Android debug过程中,有一些特殊情况(比如某个操作后,画面不平滑,已经查看过frame drop的原因,但没有头绪),需要使用systrace来查看CPU/进程/线程的运行情况.1.安装python2.7或以上可执行版本,并将可执行档路径加入环境变量。2.在Dos环境下输入python验证环境变量是否生效3.安装Android Sdk tools4.在Sdk tool

2017-05-11 16:07:01 722

原创 Android media播放卡顿问题分析流程

首先是看Audio是否卡顿,若Audio卡顿,则优先分析Audio.待Audio问题处理结束后,再看Video是否正常。对于non-tunnelplayback, 首先考虑apk是否有frame drop.若有,则主要考虑送数据是否慢以及driver解图是否慢。1.检查当前播放码流fps值,然后检查ACodec FBD是否有达到预期fps值。2.若FBD没有达到,则分析omx co

2017-05-09 20:55:16 5658 1

原创 Android消息处理

Alooper负责创建线程Ahandler负责创建Amessage消息并透过ALooperRoster传给Alooper放到messagequeueAlooper的run方法不停执行,从messagequeue里面获取第一个消息,通过ALooperRoster再返回给Ahandler处理。ALooperRoster负责将所有消息区分开然后再丢回给对应的Ahandler来处理

2017-05-09 20:17:57 363

原创 Android MediaServer初始化流程

Android M版framework/av/media/mediaserver/1.Main_mediaserver.cpp main()->创建mediaserver进程2.创建各种service:MediaPlayerService/ResourceManagerService

2016-03-22 22:22:32 1785 1

原创 Android ACodec学习

enum PortMode {    KEEP_BUFFERS,    RESUBMIT_BUFFERS,    FREE_BUFFERS,}Android ACodec会根据当前处于哪个state来决定buffer如何处理。KEEP_BUFFERS:当ACodec处于BaseState或者收到OnInputBufferFilled消息但是buffer里面没有填有效数据的时

2016-03-03 10:20:51 4462

原创 Android MediaCodec学习

MediaCodec:setCallback:APK通过这个函数设置回调信息,当MediaCodec中需要回调信息给APK时就通过这个callback回调。MediaCodec:onInputBufferAvaible:MediaCodec通过上面的回调告诉APK当前有可用的input bufferMediaCodec:queueInputBuffer:Medi

2016-02-29 20:24:27 1246

原创 Android Surface相关常见问题

1.当Surface发生变化时需要重新设置宽高SurfaceHolder.Callback  mSHCallback = new SurfaceHolder.Callback() {    public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {    ...    holder.set

2016-02-29 11:07:00 712

原创 Android Media相关标准接口

hwc/gralloc相关android根目录\hardware\libhardware\include\hardware\surfaceflingerandroid根目录\frameworks\native\services\surfaceflinger\guiandroid根目录\frameworks\native\libsopengland

2016-02-29 10:13:08 520

原创 Exoplayer学习

DQ input->Q input->DQ input time out->DQ output->...->DQ output time-out->render/frame-drop->DQ input

2016-02-25 23:10:12 1471 1

原创 Anrdoid media中input buffer读取与控制

APK 通过extractor获取文件中的max-input-size并通过configCodec设给MediaCodec/ACodec.ACodec用max-input-size同allocated input buffer size做比较,如果前者大于后者则返回失败。extractor按照自己的逻辑去抓取每一帧数据,extractor中最大的数据size设为max-input-

2016-02-25 23:06:06 716

原创 Android apk退出时与OMX Component之间的交互

当Android apk退出时,会将apk手上的buffer全部drop掉,另外发flush给OMX Component. OMX Component发stop command给codec driver[使codec driver不在理会被上层占住的buffer]. 得到反馈后OMX Component将手上握有的buffer全部归还给media framework.

2016-01-25 14:37:01 600

原创 Android M Media学习

相较L版本,增加了FRAME_RENDERED的OMX Component notify message. For Tunneled Playback.

2016-01-25 14:34:28 588

原创 Android ANR问题分析

当APK因为ANR退出时,在/data/anr目录下会生成traces.txt,通过这个log通常可以看出卡住的callstack.一般开始的第一个callstack就是:"main" prio=5 tid=1 Native  | group="main" sCount=1 dsCount=0 obj=0x737a0fa0 self=0xb88f8350  | sysTid

2016-01-21 20:37:26 1251

原创 Android thumbnail显示逻辑

Android显示thumbnail是通过调用getFrameAtTime(StagefrightMetadataRetriever.cpp)来实现的。通过OMXCodec::kPreferSoftwareCodecs来优先选用software.extractVideoFrame里面透过decoder->dequeueOutputBuffer来获取decoder解码好的frame,

2015-12-23 15:43:56 876

转载 android中if判断引起的crash

在Android debug过程中有如下的crash.11-05 03:11:24.271  1262  1262 F DEBUG   :     #00 pc 00022234  /system/lib/libstagefright_omx.so (android::OMXNodeInstance::onEvent(OMX_EVENTTYPE, unsigned int, unsigne

2015-11-05 19:15:43 747

原创 Android Media显示的层次

Main/Sub/GfxSurfaceTexture是由apk直接创建的

2015-10-30 17:36:17 951

原创 Android ACodec消息机制一

ACodec有一个BaseState和派生出来的其他State. FlushingState,ExecutingState等。    当有消息来的时候,如果派生类有重写,则会调到重写的方法里,如果没有,则会调到BaseState.    ACodec收到的消息分两种,一种是MediaCodec传过来的,一种是OMX Component传过来的。分别对应onMessageReceived和o

2015-09-19 14:35:01 3319

原创 一些有用的linux命令

...

2015-09-14 10:53:07 413

原创 Android中一些常见的进程

init进程:第一个进程

2015-05-20 12:44:57 467

wincvs指导 范例 详细

在网上看了很多的资料,感觉都不是很“门当户对”,这个资料有详细的入门范例,非常适合入门

2010-03-31

世界因你不同 李开复

这是李开复唯一的一本自传,字里行间,是岁月流逝中沉淀下来的宝贵的人生智慧和职场经验。捣蛋的“小皇帝”,11岁的“留学生”,奥巴马的大学同学,26岁的副教授,33岁的苹果副总裁,谷歌中国的创始人,他有着太多传奇的经历,为了他,两家最大的IT公司对簿公堂。而他的每一次人生选择,都是一次成功的自我超越。

2010-01-27

CArchive实例

关于自己对CArchive的理解,希望能有所帮助!

2009-07-16

工作线程 UI线程实例

网上关于这方面的理论介绍很多,但是实例比较少。做了一个比较的对比,希望对大家有所帮助!

2009-07-16

工作线程 UI线程实例

网上关于工作线程和UI线程的理解趋于理论。制作一个小的实例帮助大家理解 不好意思,发错了资源,我再重新发一个啊!

2009-07-15

获取主机名和IP地址

自己写的一个简单的用windows api实现的对话框。能够获取主机名和IP,帮助读者了解基础!

2009-06-19

设计模式(c++)+源代码

设计模式学习 附有源代码加深理解 关于C++方面

2009-05-13

windows网络编程2

中英文书籍见1 附有该书所有源代码,深入浅出 学习的经典代码

2009-05-12

windows网络编程1

讲述windows网络编程经典入门书籍 中英文对照阅读 附有源代码方便学习,见2

2009-05-12

shell高级编程中英版

讲述shell经典著作 入门有效工具 中英文 有源代码

2009-05-06

TrayIcon系统图标闪动

关于托盘程序的一个图标连续闪动的超简单程序。

2009-04-17

空空如也

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

TA关注的人

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