Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 78a63413 authored by Wonsik Kim's avatar Wonsik Kim Committed by Gerrit Code Review
Browse files

Merge changes Ia99d8f46,I6404ff24 into main

* changes:
  ApexCodecs: misc fixes
  Rename libapexcodecs to libcom.android.media.swcodec.apexcodecs
parents cebfa877 093c8fb7
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -173,10 +173,10 @@ apex_defaults {
        "mediaswcodec",
    ],
    native_shared_libs: [
        "libapexcodecs",
        "libcodec2_hidl@1.0",
        "libcodec2_hidl@1.1",
        "libcodec2_hidl@1.2",
        "libcom.android.media.swcodec.apexcodecs",
        "libstagefright_foundation",
    ],
    prebuilts: [
+2 −2
Original line number Diff line number Diff line
@@ -42,8 +42,8 @@ cc_library {
    cpp_std: "gnu++20",

    header_libs: [
        "libapexcodecs-header",
        "libcodec2_internal", // private
        "libcom.android.media.swcodec.apexcodecs-header",
    ],

    shared_libs: [
@@ -82,7 +82,7 @@ cc_library {
    ],

    export_header_lib_headers: [
        "libapexcodecs-header",
        "libcom.android.media.swcodec.apexcodecs-header",
    ],

    export_shared_lib_headers: [
+15 −12
Original line number Diff line number Diff line
@@ -30,10 +30,11 @@ using android::RWLock;

namespace {

// This file provides a lazy interface to libapexcodecs.so to address early boot dependencies.
// This file provides a lazy interface to libcom.android.media.swcodec.apexcodecs.so
// to address early boot dependencies.

// Method pointers to libapexcodecs methods are held in an array which simplifies checking
// all pointers are initialized.
// Method pointers to libcom.android.media.swcodec.apexcodecs methods are held in an array
// which simplifies checking all pointers are initialized.
enum MethodIndex {
    k_ApexCodec_Component_create,
    k_ApexCodec_Component_destroy,
@@ -84,14 +85,15 @@ public:
    }

private:
    static void* LoadLibapexcodecs(int dlopen_flags) {
        return dlopen("libapexcodecs.so", dlopen_flags);
    static void* LoadApexCodecs(int dlopen_flags) {
        return dlopen("libcom.android.media.swcodec.apexcodecs.so", dlopen_flags);
    }

    // Initialization and symbol binding.
    void bindSymbol_l(void* handle, const char* name, enum MethodIndex index) {
        void* symbol = dlsym(handle, name);
        ALOGI_IF(symbol == nullptr, "Failed to find symbol '%s' in libapexcodecs.so: %s",
        ALOGI_IF(symbol == nullptr,
                "Failed to find symbol '%s' in libcom.android.media.swcodec.apexcodecs.so: %s",
                 name, dlerror());
        mMethods[index] = symbol;
    }
@@ -103,9 +105,9 @@ private:
                return true;
            }
        }
        void* handle = LoadLibapexcodecs(RTLD_NOW);
        void* handle = LoadApexCodecs(RTLD_NOW);
        if (handle == nullptr) {
            ALOGI("Failed to load libapexcodecs.so: %s", dlerror());
            ALOGI("Failed to load libcom.android.media.swcodec.apexcodecs.so: %s", dlerror());
            return false;
        }

@@ -137,7 +139,8 @@ private:
        // Check every symbol is bound.
        for (int i = 0; i < k_MethodCount; ++i) {
            if (mMethods[i] == nullptr) {
                ALOGI("Uninitialized method in libapexcodecs_lazy at index: %d", i);
                ALOGI("Uninitialized method in "
                      "libcom.android.media.swcodec.apexcodecs_lazy at index: %d", i);
                return false;
            }
        }
@@ -146,7 +149,7 @@ private:
    }

    RWLock mLock;
    // Table of methods pointers in libapexcodecs APIs.
    // Table of methods pointers in libcom.android.media.swcodec.apexcodecs APIs.
    void* mMethods[k_MethodCount];
    bool mInit{false};
};
@@ -274,9 +277,9 @@ ApexCodec_Status ApexCodec_ParamDescriptors_getDescriptor(
                  descriptors, index, attr, name, dependencies, numDependencies);
}

ApexCodec_Status ApexCodec_ParamDescriptors_destroy(
void ApexCodec_ParamDescriptors_destroy(
        ApexCodec_ParamDescriptors *descriptors) {
    INVOKE_METHOD(ApexCodec_ParamDescriptors_destroy, APEXCODEC_STATUS_OMITTED, descriptors);
    INVOKE_METHOD(ApexCodec_ParamDescriptors_destroy, void(), descriptors);
}

ApexCodec_Status ApexCodec_Configurable_querySupportedParams(
+8 −8
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ package {
}

cc_defaults {
    name: "libapexcodecs-defaults",
    name: "libcom.android.media.swcodec.apexcodecs-defaults",
    header_libs: [
        "libbase_headers",
    ],
@@ -41,7 +41,7 @@ cc_defaults {
}

cc_library_headers {
    name: "libapexcodecs-header",
    name: "libcom.android.media.swcodec.apexcodecs-header",
    visibility: [
        "//frameworks/av/apex:__subpackages__",
        "//frameworks/av/media/codec2/hal/client",
@@ -50,8 +50,8 @@ cc_library_headers {
}

cc_library {
    name: "libapexcodecs-testing",
    defaults: ["libapexcodecs-defaults"],
    name: "libcom.android.media.swcodec.apexcodecs-testing",
    defaults: ["libcom.android.media.swcodec.apexcodecs-defaults"],

    visibility: [
        ":__subpackages__",
@@ -59,8 +59,8 @@ cc_library {
}

cc_library {
    name: "libapexcodecs",
    defaults: ["libapexcodecs-defaults"],
    name: "libcom.android.media.swcodec.apexcodecs",
    defaults: ["libcom.android.media.swcodec.apexcodecs-defaults"],

    visibility: [
        "//frameworks/av/apex:__subpackages__",
@@ -68,9 +68,9 @@ cc_library {
    ],

    min_sdk_version: "apex_inherit",
    version_script: "libapexcodecs.map.txt",
    version_script: "libcom.android.media.swcodec.apexcodecs.map.txt",
    stubs: {
        symbol_file: "libapexcodecs.map.txt",
        symbol_file: "libcom.android.media.swcodec.apexcodecs.map.txt",
        versions: ["36"],
    },

+1 −3
Original line number Diff line number Diff line
@@ -128,9 +128,7 @@ ApexCodec_Status ApexCodec_ParamDescriptors_getDescriptor(
    return APEXCODEC_STATUS_OMITTED;
}

ApexCodec_Status ApexCodec_ParamDescriptors_destroy(
        ApexCodec_ParamDescriptors *descriptors) {
    return APEXCODEC_STATUS_OMITTED;
void ApexCodec_ParamDescriptors_destroy(ApexCodec_ParamDescriptors *descriptors) {
}

ApexCodec_Status ApexCodec_Configurable_querySupportedParams(
Loading