Android多媒体——MediaCodec回调与配置(二十五)
在完成 MediaCodec 初始化流程的探索后,我们正站在多媒体处理最精妙的核心地带——回调机制。这不仅是简单的异步通知接口,更是连接应用层与底层编解码引擎的智能控制系统。
一、解码回调流程
在上面的 MediaCodec::init() 方法中回调机制建立过程中,会发送一条 kWhatInit 消息,我们这里就从此开始分析。
1、MediaCodec.cpp
源码位置:/frameworks/av/media/libstagefright/MediaCodec.cpp
onMessageReceived
void MediaCodec::onMessageReceived(const sp<AMessage> &msg) {switch (msg->what()) {……case kWhatInit:{if (mState != UNINITIALIZED) {PostReplyWithError(msg, INVALID_OPERATION);break;}if (mReplyID) {mDeferredMessages.push_back(msg);break;}