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

Commit 39d1ff52 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "codec2: fix to encode smpte2094-40 for gralloc4 metadata" am: dec27c17

parents 9e5fff6a dec27c17
Loading
Loading
Loading
Loading
+13 −8
Original line number Diff line number Diff line
@@ -1178,9 +1178,6 @@ c2_status_t SetHdrMetadataToGralloc4Handle(
    }
    if (dynamicInfo && *dynamicInfo && dynamicInfo->flexCount() > 0) {
        ALOGV("Setting dynamic HDR info as gralloc4 metadata");
        hidl_vec<uint8_t> vec;
        vec.resize(dynamicInfo->flexCount());
        memcpy(vec.data(), dynamicInfo->m.data, dynamicInfo->flexCount());
        std::optional<IMapper4::MetadataType> metadataType;
        switch (dynamicInfo->m.type_) {
        case C2Config::HDR_DYNAMIC_METADATA_TYPE_SMPTE_2094_10:
@@ -1190,13 +1187,21 @@ c2_status_t SetHdrMetadataToGralloc4Handle(
            metadataType = MetadataType_Smpte2094_40;
            break;
        }

        if (metadataType) {
            std::vector<uint8_t> smpte2094_40;
            smpte2094_40.resize(dynamicInfo->flexCount());
            memcpy(smpte2094_40.data(), dynamicInfo->m.data, dynamicInfo->flexCount());

            hidl_vec<uint8_t> vec;
            if (gralloc4::encodeSmpte2094_40({ smpte2094_40 }, &vec) == OK) {
                Return<Error4> ret = mapper->set(buffer.get(), *metadataType, vec);
                if (!ret.isOk()) {
                    err = C2_REFUSED;
                } else if (ret != Error4::NONE) {
                    err = C2_CORRUPTED;
                }
            }
        } else {
            err = C2_BAD_VALUE;
        }