Nuplayer
bool ACodec::UninitializedState::onAllocateComponent(const sp<AMessage> &msg) {
......
for (size_t matchIndex = 0; matchIndex < matchingCodecs.size();
++matchIndex) {
componentName = matchingCodecs.itemAt(matchIndex).mName.string();
quirks = matchingCodecs.itemAt(matchIndex).mQuirks;
pid_t tid = androidGetTid();
int prevPriority = androidGetThreadPriority(tid);
androidSetThreadPriority(tid, ANDROID_PRIORITY_FOREGROUND);
status_t err = omx->allocateNode(componentName.c_str(), observer, &node);
androidSetThreadPriority(tid, prevPriority);
if (err == OK) {//Get codecs by index in media_codecs.xml
break;
} else {
ALOGW("Allocating component '%s' failed, try next one.", componentName.c_str());
}
node = NULL;
}
......
}
本文介绍了Nuplayer中ACodec::UninitializedState类的方法onAllocateComponent,该方法通过匹配的编解码器列表来分配组件,并调整线程优先级以确保组件正确加载。若分配失败,则尝试下一个编解码器。
932

被折叠的 条评论
为什么被折叠?



