media.codec服务启动时,
会创建 implementation::Omx 和 implementation::OmxStore,
构造 Omx时,
会解析codec相关的xml文件,一般从会如下目录中,
cpp
// from getDefaultSearchDirs()
{ "/product/etc",
"/odm/etc",
"/vendor/etc",
"/system/etc" }
依次匹配如下文件:
cpp
// from getDefaultXmlNames()
{ "media_codecs.xml"
"media_codecs_performance.xml"
"media_codecs_shaping.xml" }
Pixel 8a上在/vendor/etc/ 目录下搜到了如下文件
cpp
media_codecs.xml
media_codecs_performance.xml
会根据xml中的字符集,挂载对应的解析函数,将各个属性值读取到内存
构造 OmxStore时
会根据解析的xml的属性,构建 RoleMap,随后建立的各个类直接的关系如下:
