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

Commit 5972bcd1 authored by Chong Zhang's avatar Chong Zhang Committed by android-build-merger
Browse files

Merge "Log fatal error when c2 sw codec fails to load" into qt-dev

am: ca45d6b3

Change-Id: I88bfaabf8bffeca7a244b00ea60fef2278ced029
parents 687f5c97 ca45d6b3
Loading
Loading
Loading
Loading
+19 −16
Original line number Original line Diff line number Diff line
@@ -661,15 +661,18 @@ c2_status_t C2PlatformComponentStore::ComponentModule::init(
    ALOGV("in %s", __func__);
    ALOGV("in %s", __func__);
    ALOGV("loading dll");
    ALOGV("loading dll");
    mLibHandle = dlopen(libPath.c_str(), RTLD_NOW|RTLD_NODELETE);
    mLibHandle = dlopen(libPath.c_str(), RTLD_NOW|RTLD_NODELETE);
    if (mLibHandle == nullptr) {
    LOG_ALWAYS_FATAL_IF(mLibHandle == nullptr,
        // could be access/symbol or simply not being there
            "could not dlopen %s: %s", libPath.c_str(), dlerror());
        ALOGD("could not dlopen %s: %s", libPath.c_str(), dlerror());

        mInit = C2_CORRUPTED;
    } else {
    createFactory =
    createFactory =
        (C2ComponentFactory::CreateCodec2FactoryFunc)dlsym(mLibHandle, "CreateCodec2Factory");
        (C2ComponentFactory::CreateCodec2FactoryFunc)dlsym(mLibHandle, "CreateCodec2Factory");
    LOG_ALWAYS_FATAL_IF(createFactory == nullptr,
            "createFactory is null in %s", libPath.c_str());

    destroyFactory =
    destroyFactory =
        (C2ComponentFactory::DestroyCodec2FactoryFunc)dlsym(mLibHandle, "DestroyCodec2Factory");
        (C2ComponentFactory::DestroyCodec2FactoryFunc)dlsym(mLibHandle, "DestroyCodec2Factory");
    LOG_ALWAYS_FATAL_IF(destroyFactory == nullptr,
            "destroyFactory is null in %s", libPath.c_str());


    mComponentFactory = createFactory();
    mComponentFactory = createFactory();
    if (mComponentFactory == nullptr) {
    if (mComponentFactory == nullptr) {
@@ -678,7 +681,7 @@ c2_status_t C2PlatformComponentStore::ComponentModule::init(
    } else {
    } else {
        mInit = C2_OK;
        mInit = C2_OK;
    }
    }
    }

    if (mInit != C2_OK) {
    if (mInit != C2_OK) {
        return mInit;
        return mInit;
    }
    }