我想在android源代码(4.1)中找到tegra 3的硬件编解码器编解码器。在源代码中,我发现哪里是tegra的android源代码中的硬件编解码代码(4.1)
// /androidos/android4.1/frameworks/av/media/libstagefright/omx
void OMXMaster::addVendorPlugin() {
addPlugin("libstagefrighthw.so");
}
void OMXMaster::addPlugin(const char *libname) {
mVendorLibHandle = dlopen(libname, RTLD_NOW);
// some code
if (createOMXPlugin) {
addPlugin((*createOMXPlugin)());
}
}
void OMXMaster::addPlugin(OMXPluginBase *plugin) {
// some code
while ((err = plugin->enumerateComponents(
name, sizeof(name), index++)) == OMX_ErrorNone) {
String8 name8(name);
if (mPluginByComponentName.indexOfKey(name8) >= 0) {
ALOGE("A component of name '%s' already exists, ignoring this one.",
name8.string());
continue;
}
mPluginByComponentName.add(name8, plugin);
}
// some code
}
因此,Android操作系统将加载 libstagefrighthw.so时需要编码/解码的视频硬件。由于tegre 3支持h.264 hareware编解码器(link),我想在android操作系统中找到代码。但我只能找到qcom和TI的代码。
有没有人可以帮忙指出在哪里可以找到tegra 3硬件编解码器的代码?
它几乎肯定会作为'blob'发布 - 这是一个只有二进制文件的库。除非你有nVidia的NDA。 – marko
@Marko感谢您的评论。对不起,我没有很好地描述我的问题。我只想知道构建'libstagefrighthw.so'的makefile在哪里。例如,对于omap3平台,Android.mk位于'/ androidOS/Android4.1/hardware/ti/omap3/libstagefrighthw'中。 – pyrisn
好吧,我根据'/ androidOS/Android4.1/frameworks/av/media/libstraight'中的“Acodec.cpp”编写了一个例子。它可以工作,但解码具有很高的延迟(640x480分辨率约2〜4秒)。 – pyrisn