前面两篇文章介绍了 OMX 相关内容,这里我们就来看一下 ACodec 状态机模式,及 ACodec 和 OMX 建立连接并进行交互。
一、ACodec基础介绍
ACodec 作为 Android 多媒体框架中的关键组件,采用了精心设计的状态机模式来管理编解码器的生命周期和数据处理流程。主要负责与底层 OMX (OpenMAX) 编解码器交互,实现音视频数据的编解码处理。
1、状态类型
源码位置:/frameworks/av/media/libstagefright/include/media/stagefright/ACodec.h
struct ACodec : public AHierarchicalStateMachine, public CodecBase {
……
private:
struct BaseState;
struct UninitializedState;
struct LoadedState;
struct LoadedToIdleState;
struct IdleToExecutingState;
struct ExecutingState;
struct OutputPortSettingsChangedState;
struct ExecutingToIdleState;
struct IdleToLoadedState;
struct Flushin