acodec专题

AMessage/ACodec消息分析(十七)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言:  人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. ​

Android 13 - Media框架(32)- ACodec(八)

拖了好久都没有更新,前面写的东西都有些忘了,回过头来再看之前写的内容,觉得有很多地方写的不好,或者说现在又有了新的理解,想要重新修改但是需要修改的内容太多,因此决定按照当前的思路把剩余的内容写完。 Android ACodec OpenMax部分还有OutputPortSettingsChangedState、Flush、Release、output buffer的处理这四块内容,写完了之后可能

Android 9.0 multimedia框架解析(五)ACodec配置解码器过程

概述 先来回顾下上篇文章所讲的MediaPlayerService的start过程。MediaPlayerService的start通过层层调用会调用到NuPlayer::onStart,onStart会先启动GenericSource,然后通过异步的方式调用到NuPlayer::instantiateDecoder。在instantiateDecoder中,会创建NuPlayer::Decod

Android 13 - Media框架(28)- ACodec(五)

前面几节我们了解了OMXNodeInstance是如何处理setPortMode、allocateBuffer、useBuffer的,这一节我们再回到ACodec,来看看 ACodec start 的其他部分。 我们首先来回顾一下,ACodec start 的状态切换以及处理的事务,我们用一张不太准确的图来表示: 可以看到将 OMX 组件设置为 OMX_StateIdle 之后,OMX 组

Android 13 - Media框架(21)- ACodec(三)

这一节我们将继续来学习 ACodec 的剩余部分。 enum {kFlagIsSecure = 1,kFlagPushBlankBuffersToNativeWindowOnShutdown = 2,kFlagIsGrallocUsageProtected = 4,kFlagPrere

Android 13 - Media框架(22)- ACodec(四)

前面两节我们了解了 ACodec 的创建及配置流程,配置完成后 ACodec 进入了 LoadedState,这一节开始将会了解 ACodec 的启动过程。 调用 ACodec::initiateStart 方法发出的 kWhatStart 消息将有 LoadedState 状态来处理,这个方法会向 OMX 组件发送命令OMX_CommandStateSet ,将组件的状态设定为 OMX_

Android 13 - Media框架(20)- ACodec(二)

这一节开始我们就来学习 ACodec 的实现 1、创建 ACodec ACodec 是在 MediaCodec 中创建的,这里先贴出创建部分的代码: mCodec = mGetCodecBase(name, owner);if (mCodec == NULL) {ALOGE("Getting codec base with name '%s' (owner='%s') fail

Android 13 - Media框架(20)- ACodec(二)

这一节开始我们就来学习 ACodec 的实现 1、创建 ACodec ACodec 是在 MediaCodec 中创建的,这里先贴出创建部分的代码: mCodec = mGetCodecBase(name, owner);if (mCodec == NULL) {ALOGE("Getting codec base with name '%s' (owner='%s') fail

Android 13 - Media框架(19)- ACodec(一)

这一节我们将会了解 ACodec 的状态转换机制,从 ACodec 的基类名称HierarchicalStateMachine来看,它用到的是分层状态机,了解这里的状态转换将会对我们学习 OpenMax 会有所帮助,也会对我们自己的代码书写有所帮助。 1、AHierarchicalStateMachine 1.1 AState 2、ACodec