摘要: 这一节来学习MediaCodec的工作原理,相关代码路径: http://aospxref.com/android-12.0.0_r3/xref/frameworks/av/media/libstagefright/MediaCodec.cpp 1、创建mediacodec对象 mediacodec 阅读全文
posted @ 2022-04-08 16:53 青山渺渺 阅读(2030) 评论(0) 推荐(1) 编辑
摘要: 学以致用,这一节来native binder实战! android 12中的service用到的Bp、Bn文件多由aidl生成,所以实战中也用aidl来生成。 1、文件目录结构 文件目录结构如上,偷懒没有把头文件放到include目录当中去 2、aidl文件 package android.test 阅读全文
posted @ 2022-03-31 16:33 青山渺渺 阅读(1154) 评论(0) 推荐(0) 编辑
摘要: 前面一节学习了ServiceManager这个特殊service的工作过程,这一节来看看普通service的工作过程。 就用media.extractor这个service来当例子! 1、服务的注册及启动 media.extractor这个service的注册及启动在 frameworks/av/s 阅读全文
posted @ 2022-03-30 15:36 青山渺渺 阅读(935) 评论(0) 推荐(0) 编辑
摘要: 今天开始了解一下binder,就先从ServiceManager开始学习。 网上的相关博文普遍是Android 11之前的,阅读时对比Android 11或12的代码发现有很多内容找不到了,比如 frameworks/native/cmds/servicemanager 下面的binder.c没有了 阅读全文
posted @ 2022-03-29 17:59 青山渺渺 阅读(2990) 评论(0) 推荐(1) 编辑
摘要: 来写个demo试试看到底是ALooper AHandler AMessage是怎么运行的,源文件以及Android.bp如下: // EvenHandler.h #ifndef __MESSAGE_TEST_H__ #define __MESSAGE_TEST_H__ #include <media 阅读全文
posted @ 2022-03-25 17:24 青山渺渺 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 卧榻之侧岂容他人酣睡,到现在ALooper AHandler AMessage的工作原理一直都没搞懂,很慌!看他们的路径都在libstagefright/foundation下,作为一个foundation怎么能不去搞明白,今天必须解决他们! 相关代码路径: AHandler.cpp - OpenG 阅读全文
posted @ 2022-03-25 13:53 青山渺渺 阅读(631) 评论(0) 推荐(0) 编辑
摘要: NuPlayer的AVSync由Renderer实现,接下来主要来看AVSync的工作原理 相关代码位置: NuPlayerRenderer.cpp - OpenGrok cross reference for /frameworks/av/media/libmediaplayerservice/n 阅读全文
posted @ 2022-03-24 15:53 青山渺渺 阅读(937) 评论(0) 推荐(1) 编辑
摘要: 本节来看一下NuPlayer Source中的GenericSource,GenericSource主要是用来播放本地视频的,接下来着重来看以下5个方法: prepare,start,pause,seek,dequeueAccessUnit 相关代码位置: http://aospxref.com/a 阅读全文
posted @ 2022-03-17 17:20 青山渺渺 阅读(953) 评论(2) 推荐(0) 编辑
摘要: 接下来将会从4个角度来记录NuPlayerDecoder部分 相关代码路径: http://aospxref.com/android-12.0.0_r3/xref/frameworks/av/media/libmediaplayerservice/nuplayer/NuPlayer.cpp http 阅读全文
posted @ 2022-03-09 15:09 青山渺渺 阅读(867) 评论(0) 推荐(0) 编辑
摘要: 之前几节看到MediaPlayer的java接口最终会调用到native层中的NuPlayer,NuPlayer由Render,DecoderBase,Source三部分组成。 Render:负责AVSync DecoderBase:负责解码 Source:负责数据的读取 之前以为这三部分相互独立, 阅读全文
posted @ 2022-03-08 14:16 青山渺渺 阅读(499) 评论(0) 推荐(0) 编辑