1

Androidソースコード(4.1)でtegra 3のハードウェアコーデックコーデックを見つけたいです。見つけたソースコードで

// /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 OS はlibstagefrighthw.soをロードします。tegre 3 は h.264 hareware コーデック (リンク) をサポートしているため、Android OS でコードを検索したいと考えています。しかし、qcom と TI のコードしか見つかりません。

tegra 3 ハードウェア コーデック コードの場所を教えてくれる人はいますか?

4

1 に答える 1

0

このライブラリは、ベンダー独自のメディア フレームワークに Android 内のlibstagefrighthwフレームワークをパッチする単純な「接着剤」コードです。libstagefrightこのアプローチは、ハードウェア固有のカスタム コーデックを実装するために使用されます。

ご覧のコードはqcomtiかなり前に「メインライン」の Android リポジトリに同期されたものです。Tegra 固有のコードについては、適切な Tegra 開発リポジトリを手に入れる必要があります。(これかも?)


CM 10.2 リポジトリ内のTegra3libstagefrighthwコードをチェックアウトすることもできます。

于 2014-03-23T05:56:59.720 に答える