UPDATE README

Signed-off-by: liushang <liushang2@huawei.com>
This commit is contained in:
liushang
2025-03-21 14:26:55 +08:00
parent 8070c1f147
commit 56f57bb73d
15 changed files with 299 additions and 60 deletions
@@ -21,6 +21,7 @@
#include <unordered_map>
#include "static_extension_list.h"
#include "vpe_log.h"
#include "extension_base.h"
namespace {
using LibFunctionGetRegisters = std::unordered_map<std::string,
OHOS::Media::VideoProcessingEngine::Extension::RegisterExtensionFunc>* (*)();
@@ -215,9 +216,9 @@ std::shared_ptr<DetailEnhancerBase> ExtensionManager::CreateDetailEnhancer(uint3
ExtensionList ExtensionManager::LoadExtensions() const
{
ExtensionList extensionList {};
LoadDynamicExtensions(extensionList);
VPEAlgoErrCode ret = LoadStaticExtensions(extensionList);
CHECK_AND_RETURN_RET_LOG(ret == VPE_ALGO_ERR_OK, {}, "Load extension failed");
LoadDynamicExtensions(extensionList);
return extensionList;
}
@@ -526,6 +527,12 @@ std::shared_ptr<ColorSpaceConverterExtension> ExtensionManager::FindColorSpaceCo
return nullptr;
}
size_t idx = std::get<2>(*(iter->second.cbegin()));
for (const auto &cap : iter->second) {
if (std::get<0>(cap) == Rank::RANK_HIGH) {
idx = std::get<2>(cap);
break;
}
}
return std::static_pointer_cast<ColorSpaceConverterExtension>(extensionList[idx]);
}
@@ -557,6 +564,12 @@ std::shared_ptr<MetadataGeneratorExtension> ExtensionManager::FindMetadataGenera
CHECK_AND_RETURN_RET_LOG(iter != metadataGeneratorCapabilityMap.cend() && !iter->second.empty(), nullptr,
"CSC metadata generator extension is not found");
size_t idx = std::get<2>(*(iter->second.cbegin()));
for (const auto &cap : iter->second) {
if (std::get<0>(cap) == Rank::RANK_HIGH) {
idx = std::get<2>(cap);
break;
}
}
return std::static_pointer_cast<MetadataGeneratorExtension>(extensionList[idx]);
}
@@ -596,6 +609,12 @@ std::shared_ptr<AihdrEnhancerExtension> ExtensionManager::FindAihdrEnhancerExten
CHECK_AND_RETURN_RET_LOG(iter != aihdrEnhancerCapabilityMap.cend() && !iter->second.empty(), nullptr,
"Aihdr enhancer extension is not found");
size_t idx = std::get<2>(*(iter->second.cbegin()));
for (const auto &cap : iter->second) {
if (std::get<0>(cap) == Rank::RANK_HIGH) {
idx = std::get<2>(cap);
break;
}
}
return std::static_pointer_cast<AihdrEnhancerExtension>(extensionList[idx]);
}
@@ -604,7 +623,7 @@ VPEAlgoErrCode ExtensionManager::ExtractColorSpaceConverterCap(const ColorSpaceC
{
auto inputColorSpaceDesc = cap.inputColorSpaceDesc;
auto outputColorSpaceDesc = cap.outputColorSpaceDesc;
uint32_t rank = cap.rank;
Rank rank = cap.rank;
int32_t version = cap.version;
for (const auto &[inputPixelFormat, outputPixelFormats] : cap.pixelFormatMap) {
for (const auto &outputPixelFormat : outputPixelFormats) {
@@ -631,7 +650,7 @@ VPEAlgoErrCode ExtensionManager::ExtractMetadataGeneratorCap(const MetadataGener
MetadataGeneratorAlgoType algoType, MetadataGeneratorCapabilityMap& metadataGeneratorCapabilityMap) const
{
auto colorSpaceDesc = cap.colorspaceDesc;
uint32_t rank = cap.rank;
Rank rank = cap.rank;
int32_t version = cap.version;
for (const auto &pixelFormat : cap.pixelFormats) {
auto key = std::make_tuple(colorSpaceDesc, pixelFormat, algoType);
@@ -664,7 +683,14 @@ VPEAlgoErrCode ExtensionManager::BuildDetailEnhancerCaps(const std::shared_ptr<E
auto realExtension = std::static_pointer_cast<DetailEnhancerExtension>(ext);
auto capabilities = realExtension->capabilitiesBuilder();
for (const auto &level : capabilities.levels) {
detailEnhancerCapabilityMap.emplace(level, idx);
auto itr = detailEnhancerCapabilityMap.find(level);
if (itr == detailEnhancerCapabilityMap.end()) {
detailEnhancerCapabilityMap.emplace(level, idx);
} else {
if (capabilities.rank == Rank::RANK_HIGH) {
itr->second = idx;
}
}
}
return VPE_ALGO_ERR_OK;
}
@@ -673,7 +699,7 @@ VPEAlgoErrCode ExtensionManager::ExtractAihdrEnhancerCap(const AihdrEnhancerCapa
AihdrEnhancerCapabilityMap& aihdrEnhancerCapabilityMap) const
{
auto colorSpaceDesc = cap.colorspaceDesc;
uint32_t rank = cap.rank;
Rank rank = cap.rank;
int32_t version = cap.version;
for (const auto &pixelFormat : cap.pixelFormats) {
auto key = std::make_tuple(colorSpaceDesc, pixelFormat);
@@ -31,6 +31,11 @@ enum class ExtensionType {
AIHDR_ENHANCER
};
enum class Rank : uint32_t {
RANK_DEFAULT = 0,
RANK_HIGH,
};
struct ExtensionInfo {
ExtensionType type {ExtensionType::COLORSPACE_CONVERTER};
std::string name;
@@ -62,7 +62,7 @@ namespace {
using ColorSpaceConverterCapabilityMap =
std::map<
std::tuple<ColorSpaceDescription, GraphicPixelFormat, ColorSpaceDescription, GraphicPixelFormat>,
std::vector<std::tuple<uint32_t, int32_t, size_t>>>;
std::vector<std::tuple<Rank, int32_t, size_t>>>;
using ColorSpaceConverterDisplayCapabilityMap = ColorSpaceConverterCapabilityMap;
/*
{
@@ -76,12 +76,12 @@ using ColorSpaceConverterDisplayCapabilityMap = ColorSpaceConverterCapabilityMap
using MetadataGeneratorCapabilityMap =
std::map<
std::tuple<ColorSpaceDescription, GraphicPixelFormat, MetadataGeneratorAlgoType>,
std::vector<std::tuple<uint32_t, int32_t, size_t>>>;
std::vector<std::tuple<Rank, int32_t, size_t>>>;
using DetailEnhancerCapabilityMap = std::map<uint32_t, size_t>;
using AihdrEnhancerCapabilityMap =
std::map<
std::tuple<ColorSpaceDescription, GraphicPixelFormat>,
std::vector<std::tuple<uint32_t, int32_t, size_t>>>;
std::vector<std::tuple<Rank, int32_t, size_t>>>;
using ColorSpaceConverterDisplaySet = std::set<std::shared_ptr<ColorSpaceConverterDisplayBase>>;
using ColorSpaceConverterDisplayExtensionSet = std::set<std::shared_ptr<ColorSpaceConverterDisplayExtension>>;
@@ -14,9 +14,12 @@
#ifndef VPE_FRAMEWORK_ALGORITHM_EXTENSION_MANAGER_STATIC_EXTENSION_LIST_H
#define VPE_FRAMEWORK_ALGORITHM_EXTENSION_MANAGER_STATIC_EXTENSION_LIST_H
#include "skia_impl.h"
namespace OHOS::Media::VideoProcessingEngine::Extension {
using RegisterExtensionFunc = void (*)(uintptr_t extensionListAddr);
const std::unordered_map<std::string, RegisterExtensionFunc> staticExtensionsRegisterMap = {
{ "Skia", RegisterSkiaExtensions },
};
} // namespace OHOS::Media::VideoProcessingEngine::Extension