终于开始读Android的代码了。
因为工作需要先从OpenCore看起,OpenCore里又从mp3的codec看起,我看,我看,我看看
看不懂,更加头晕的是OpenCore里有两个地方的代码似乎和mp3的decoder有关,我倒是没有兴趣研究Android里的mp3 decoder有多好的算法,只是想看看到底上层是怎么调用mp3 decoder去实现音频播放的。万恶的Android什么文档说明都没有之后硬看了。
总之是看得头疼,mp3的decoder代码在两个地方都有external/opencore/codecs_v2/audio/mp3/dec还有external/opencore/codecs_v2/omx/omx_mp3,从目前看的结果mp3 decoder的实体是在
external/opencore/codecs_v2/omx/omx_mp3里面(在这里面找到了一些类似create,decode,close的操作,名字不一定对但是大体看上去比较像传统的编解码器的API接口,往上跟踪,一层一层的跟,试图找到哪里调用了这里的decode函数接口,跟踪到了一个Run函数,然后我的ubuntu虚拟机挂了,结果昨天没有继续跟踪。但是到这一步看起来跟踪也并不容易了,Run函数在Android代码中有上千个,看来只有找相关Run函数的对象定义了。
总之,没有文档,真是够烦
Google 不过如此
15 years ago