diff --git a/interfaces/kits/taihe/BUILD.gn b/interfaces/kits/taihe/BUILD.gn index f5fa090..0d41848 100644 --- a/interfaces/kits/taihe/BUILD.gn +++ b/interfaces/kits/taihe/BUILD.gn @@ -19,7 +19,7 @@ import("//build/ohos/taihe_idl/taihe.gni") import("//foundation/multimedia/video_processing_engine/config.gni") subsystem_name = "multimedia" -part_name = "image_framework" +part_name = "video_processing_engine" taihe_generated_file_path = "$taihe_file_path/out/$subsystem_name/$part_name" config("video_processing_engine_taihe_config") { @@ -29,7 +29,7 @@ config("video_processing_engine_taihe_config") { copy_taihe_idl("copy_video_processing_engine_taihe") { sources = [ - "${INTERFACES_DIR/kits/taihe/idl/ohos.multimedia.videoProcessingEngine.taihe", + "$INTERFACES_DIR/kits/taihe/idl/ohos.multimedia.videoProcessingEngine.taihe", ] external_deps = [ @@ -69,7 +69,7 @@ group("video_processing_engine_taihe_group") { ] } -group("image_framework_taihe_gen_only") { +group("video_processing_engine_taihe_gen_only") { deps = [ ":run_taihe" ] } @@ -93,7 +93,7 @@ taihe_shared_library("video_processing_engine_taihe") { sources = get_target_outputs(":run_taihe") sources += [ "src/video_processing_engine_taihe.cpp", - "CAPI_DIR/image_processing/detail_enhance_napi_utils.cpp", + "$CAPI_DIR/image_processing/detail_enhance_napi_utils.cpp", ] deps = [ @@ -150,6 +150,4 @@ taihe_shared_library("video_processing_engine_taihe_core") { ubsan = true debug = false } -} - - +} \ No newline at end of file diff --git a/interfaces/kits/taihe/idl/hos.multimedia.videoProcessingEngine.taihe b/interfaces/kits/taihe/idl/ohos.multimedia.videoProcessingEngine.taihe similarity index 86% rename from interfaces/kits/taihe/idl/hos.multimedia.videoProcessingEngine.taihe rename to interfaces/kits/taihe/idl/ohos.multimedia.videoProcessingEngine.taihe index 6d1307a..b97d6fa 100644 --- a/interfaces/kits/taihe/idl/hos.multimedia.videoProcessingEngine.taihe +++ b/interfaces/kits/taihe/idl/ohos.multimedia.videoProcessingEngine.taihe @@ -30,13 +30,13 @@ enum QualityLevel : i32 { interface ImageProcessor { @overload("enhanceDetail") -@promise EnhanceDetailWithRes(sourceImage: PixelMap, with: i32, height: i32, level: Optional): PixelMap; +@promise EnhanceDetailWithRes(sourceImage: PixelMap, width: i32, height: i32, level: Optional): PixelMap; @overload("enhanceDetail") @promise EnhanceDetailWithRatio(sourceImage: PixelMap, scale: f64, level: Optional): PixelMap; @overload("enhanceDetailSync") -EnhanceDetailSyncWithRes(sourceImage: PixelMap, with: i32, height: i32, level: Optional): PixelMap; +EnhanceDetailSyncWithRes(sourceImage: PixelMap, width: i32, height: i32, level: Optional): PixelMap; @overload("enhanceDetailSync") EnhanceDetailSyncWithRatio(sourceImage: PixelMap, scale: f64, level: Optional): PixelMap; diff --git a/interfaces/kits/taihe/include/video_processing_engine_taihe.h b/interfaces/kits/taihe/include/video_processing_engine_taihe.h index 7a64c32..1259786 100644 --- a/interfaces/kits/taihe/include/video_processing_engine_taihe.h +++ b/interfaces/kits/taihe/include/video_processing_engine_taihe.h @@ -27,7 +27,7 @@ #include "taihe/runtime.hpp" #include "pixel_map_taihe.h" -namespace ANI:Vpe { +namespace ANI::Vpe { using namespace taihe; using namespace OHOS; using namespace OHOS::Media; @@ -38,13 +38,13 @@ namespace taiheImage = ::ohos::multimedia::image::image; class ImageProcessorImpl { public: ImageProcessorImpl() = default; - taihe::PixelMap EnhanceDetailWithRes(taiheImage::weak::PixelMap sourceImage, int width, int height, + taiheImage::PixelMap EnhanceDetailWithRes(taiheImage::weak::PixelMap sourceImage, int width, int height, optional_view level); - taihe::PixelMap EnhanceDetailWithRes(taiheImage::weak::PixelMap sourceImage, double scale, + taiheImage::PixelMap EnhanceDetailWithRatio(taiheImage::weak::PixelMap sourceImage, double scale, optional_view level); - taihe::PixelMap EnhanceDetailWithRes(taiheImage::weak::PixelMap sourceImage, int width, int height, + taiheImage::PixelMap EnhanceDetailSyncWithRes(taiheImage::weak::PixelMap sourceImage, int width, int height, optional_view level); - taihe::PixelMap EnhanceDetailWithRes(taiheImage::weak::PixelMap sourceImage, double scale, + taiheImage::PixelMap EnhanceDetailSyncWithRatio(taiheImage::weak::PixelMap sourceImage, double scale, optional_view level); }; @@ -53,8 +53,8 @@ private: double xArg{}; double yArg{}; int32_t qualityLevel{}; - std::shared_ptr inputPixelMap; - std::shared_ptr outputPixelMap; + std::shared_ptr inputPixelMap{}; + std::shared_ptr outputPixelMap{}; } void ParseDetailEnhanceParameter(std::unique_ptr& detailContext, @@ -64,7 +64,8 @@ private: void ParseDetailEnhanceParameter(std::unique_ptr& detailContext, taiheImage::weak::PixelMap sourceImage, double scale, optional_view level); std::shared_ptr DetailEnhanceImpl(DetailEnhanceContext* context); - + std::shared_ptr EnhanceDetailImpl(std::unique_ptr& detailContext); + std::shared_ptr) #include -#elif __has__include() +#elif __has_include() #include #else #error "ani.h not found. Please ensure the Ani SDK is correctly installed." @@ -28,10 +28,11 @@ ANI_EXPORT ani_status ANI_Constructor(ani_vm *vm, uint32_t *result) if (ANI_OK != vm->GetEnv(ANI_VERSION_1, &env)) { return ANI_ERROR; } + ani_status status = ANI_OK; if (ANI_OK != ohos::multimedia::videoProcessingEngine::ANIRegister(env)) { std::cerr << "Error from ohos::multimedia::videoProcessingEngine::ANIRegister" << std::endl; - return ANI_ERROR; + status = ANI_ERROR; } *result = ANI_VERSION_1; - return ANI_OK; + return status; } diff --git a/interfaces/kits/taihe/src/video_processing_engine_taihe.cpp b/interfaces/kits/taihe/src/video_processing_engine_taihe.cpp index 481e175..58ef04d 100644 --- a/interfaces/kits/taihe/src/video_processing_engine_taihe.cpp +++ b/interfaces/kits/taihe/src/video_processing_engine_taihe.cpp @@ -24,7 +24,7 @@ #include "image_napi_utils.h" #include "media_errors.h" #include "memory_manager.h" -#include "nativ_avformat.h" +#include "native_avformat.h" #include "pixelmap_native_impl.h" #include "pixelmap_native.h" #include "surface_buffer.h" @@ -34,10 +34,21 @@ #include "vpe_trace.h" #include "vpe_utils.h" +using namespace OHOS::Media; +using namespace VideoProcessingEngine; +using namespace ANI; +using namespace ANI::Vpe; + namespace ANI::Vpe { void InitializeEnvironment() {} void DeinitializeEnvironment() {} +taiheVpe::ImageProcessor create() +{ + return make_holder(); +} +} // namespace + void ImageProcessorImpl::ParseDetailEnhanceParameter(std::unique_ptr& detailContext, taiheImage::weak::PixelMap sourceImage, int width, int height, optional_view level) { @@ -45,7 +56,7 @@ void ImageProcessorImpl::ParseDetailEnhanceParameter(std::unique_ptr(sourceImage->GetImplPtr()); + ANI::Image::PixelMapImpl* pixelMapImpl = reinterpret_cast(sourceImage->GetImplPtr()); detailContext->xArg = width; detailContext->yArg = height; if (level.has_value()) { @@ -61,7 +72,8 @@ void ImageProcessorImpl::ParseDetailEnhanceParameter(std::unique_ptr(sourceImage->GetImplPtr()); + ANI::Image::PixelMapImpl* pixelMapImpl = reinterpret_cast(sourceImage->GetImplPtr()); + std::shared_ptr inputPixelMap = pixelMapImpl->GetNativePtr(); detailContext->xArg = inputPixelMap->GetWidth() * scale; detailContext->yArg = inputPixelMap->GetHeight() * scale; if (level.has_value()) { @@ -70,8 +82,8 @@ void ImageProcessorImpl::ParseDetailEnhanceParameter(std::unique_ptrinputPixelMap = pixelMapImpl->GetNativePtr(); } -void ImageProcessorImpl::ParseDetailEnhanceParameter(std::unique_ptr& detailContext, - taiheImage::weak::PixelMap sourceImage, double scale, optional_view level) +std::shared_ptr ImageProcessorImpl::EnhanceDetailImpl( + std::unique_ptr& detailContext) { std::shared_ptr outputPixelMap = DetailEnhanceImpl(detailContext.get()); detailContext->inputPixelMap = nullptr; // 解引用防止内存泄漏 @@ -82,7 +94,7 @@ void ImageProcessorImpl::ParseDetailEnhanceParameter(std::unique_ptr ImageProcessorImpl::DetailEnhanceImpl(DetailEnhanceContext* context) +std::shared_ptr lock(g_detailTaskLock); std::unique_ptr detailContext = std::make_unique(); ParseDetailEnhanceParameter(detailContext, sourceImage, width, height, level); - return make_holder(EnhanceDetailImpl(detailContext)); + return make_holder(EnhanceDetailImpl(detailContext)); } taiheImage::PixelMap ImageProcessorImpl::EnhanceDetailWithRatio(taiheImage::weak::PixelMap sourceImage, double scale, @@ -103,8 +115,8 @@ taiheImage::PixelMap ImageProcessorImpl::EnhanceDetailWithRatio(taiheImage::weak VPETrace vpeTrace("VpeAni::DeatailEnhanceProcessRatio"); std::lock_guard lock(g_detailTaskLock); std::unique_ptr detailContext = std::make_unique(); - ParseDetailEnhanceParameter(detailContext, sourceImage, width, height, level); - return make_holder(EnhanceDetailImpl(detailContext)); + ParseDetailEnhanceParameter(detailContext, sourceImage, scale, level); + return make_holder(EnhanceDetailImpl(detailContext)); } taiheImage::PixelMap ImageProcessorImpl::EnhanceDetailSyncWithRes(taiheImage::weak::PixelMap sourceImage, int width, @@ -114,7 +126,7 @@ taiheImage::PixelMap ImageProcessorImpl::EnhanceDetailSyncWithRes(taiheImage::we std::lock_guard lock(g_detailTaskLock); std::unique_ptr detailContext = std::make_unique(); ParseDetailEnhanceParameter(detailContext, sourceImage, width, height, level); - return make_holder(EnhanceDetailImpl(detailContext)); + return make_holder(EnhanceDetailImpl(detailContext)); } taiheImage::PixelMap ImageProcessorImpl::EnhanceDetailSyncWithRatio(taiheImage::weak::PixelMap sourceImage, @@ -123,13 +135,12 @@ taiheImage::PixelMap ImageProcessorImpl::EnhanceDetailSyncWithRatio(taiheImage:: VPETrace vpeTrace("VpeAni::DeatailEnhanceProcessSyncRatio"); std::lock_guard lock(g_detailTaskLock); std::unique_ptr detailContext = std::make_unique(); - ParseDetailEnhanceParameter(detailContext, sourceImage, width, height, level); - return make_holder(EnhanceDetailImpl(detailContext)); + ParseDetailEnhanceParameter(detailContext, sourceImage, scale, level); + return make_holder(EnhanceDetailImpl(detailContext)); } // NOLINTBEGIN TH_EXPORT_CPP_API_InitializeEnvironment(InitializeEnvironment); TH_EXPORT_CPP_API_DeinitializeEnvironment(DeinitializeEnvironment); TH_EXPORT_CPP_API_create(create); -// NOLINTEND -} \ No newline at end of file +// NOLINTEND \ No newline at end of file