Signed-off-by: liushang <liushang2@huawei.com>
This commit is contained in:
liushang
2025-03-21 15:01:26 +08:00
parent 56f57bb73d
commit 10c4f8076b
3 changed files with 8 additions and 16 deletions
+1 -9
View File
@@ -180,7 +180,6 @@ VPE引擎作为OpenHarmony的组件,提供系统的视频图像能力,包含
void OnNewOutputBuffer(OH_VideoProcessing* videoProcessor, uint32_t index, void* userData);
```
6. (可选)配置细节增强档位,当前有高中低三档及NONE可选,若不配置则默认档位为LOW档。
一般在进程内第一次使用时调用,可提前完成部分耗时操作。
```cpp
// 创建format实例
OH_AVFormat* parameter = OH_AVFormat_Create();
@@ -190,7 +189,6 @@ VPE引擎作为OpenHarmony的组件,提供系统的视频图像能力,包含
OH_VideoProcessing_SetParameter(videoProcessor, parameter);
```
7. 获取Surface。
一般在进程内第一次使用时调用,可提前完成部分耗时操作。
```cpp
//配置算法的输入
ret = OH_VideoProcessing_GetSurface(videoProcessor, inputWindow);
@@ -198,19 +196,16 @@ VPE引擎作为OpenHarmony的组件,提供系统的视频图像能力,包含
OH_VideoDecoder_SetSurface(decoder_, inputWindow_);
```
8. 设置Surface(配置送显)。
一般在进程内第一次使用时调用,可提前完成部分耗时操作。
```cpp
// 配置算法的输出,配置的输出window的分辨率即为算法输出分辨率
ret = OH_VideoProcessing_SetSurface(videoProcessor, outWindow);
```
9. 创建解码器输入输出线程。
一般在进程内第一次使用时调用,可提前完成部分耗时操作。
```cpp
std::unique_ptr<std::thread> videoDecInputThread_ = std::make_unique<std::thread>(&Player::VideoDecInputThread, this);
std::unique_ptr<std::thread> videoDecOutputThread_ = std::make_unique<std::thread>(&Player::VideoDecOutputThread, this);
```
10. 启动细节增强处理。
一般在进程内第一次使用时调用,可提前完成部分耗时操作。
```cpp
// 启动解码
int ret = OH_VideoDecoder_Start(decoder_);
@@ -218,18 +213,15 @@ VPE引擎作为OpenHarmony的组件,提供系统的视频图像能力,包含
ret = OH_VideoProcessing_Start(videoProcessor);
```
11. 调用OH_VideoProcessing_Stop()停止细节增强。
一般在进程内第一次使用时调用,可提前完成部分耗时操作。
```cpp
VideoProcessing_ErrorCode ret = OH_VideoProcessing_Stop(videoProcessor);
```
12. 释放处理实例。
一般在进程内第一次使用时调用,可提前完成部分耗时操作。
```cpp
VideoProcessing_ErrorCode ret = OH_VideoProcessing_Destroy(videoProcessor)
VideoProcessing_ErrorCode ret = OH_VideoProcessingCallback_Destroy(callback);
```
13. 释放处理资源。
一般在进程内第一次使用时调用,可提前完成部分耗时操作。
```cpp
VideoProcessing_ErrorCode ret = OH_VideoProcessing_DeinitializeEnvironment();
```
@@ -268,7 +260,7 @@ VPE引擎作为OpenHarmony的组件,提供系统的视频图像能力,包含
namespace Media {
namespace VideoProcessingEngine {
// 由基类MetadataGeneratorBase创建一个自定义元数据生成类,例如ImageMetadataGen
// 其算法对应关系如上表所示
// 其算法对应关系如上表所示
class ImageMetadataGen : public MetadataGeneratorBase {
public:
@@ -526,10 +526,10 @@ std::shared_ptr<ColorSpaceConverterExtension> ExtensionManager::FindColorSpaceCo
(CSDesc).range, outputInfo.pixelFormat, outputInfo.colorSpace.metadataType);
return nullptr;
}
size_t idx = std::get<2>(*(iter->second.cbegin()));
size_t idx = std::get<2>(*(iter->second.cbegin())); // 2
for (const auto &cap : iter->second) {
if (std::get<0>(cap) == Rank::RANK_HIGH) {
idx = std::get<2>(cap);
idx = std::get<2>(cap); // 2
break;
}
}
@@ -563,10 +563,10 @@ std::shared_ptr<MetadataGeneratorExtension> ExtensionManager::FindMetadataGenera
const auto iter = metadataGeneratorCapabilityMap.find(key);
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()));
size_t idx = std::get<2>(*(iter->second.cbegin())); // 2
for (const auto &cap : iter->second) {
if (std::get<0>(cap) == Rank::RANK_HIGH) {
idx = std::get<2>(cap);
idx = std::get<2>(cap); // 2
break;
}
}
@@ -608,10 +608,10 @@ std::shared_ptr<AihdrEnhancerExtension> ExtensionManager::FindAihdrEnhancerExten
const auto iter = aihdrEnhancerCapabilityMap.find(key);
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()));
size_t idx = std::get<2>(*(iter->second.cbegin())); // 2
for (const auto &cap : iter->second) {
if (std::get<0>(cap) == Rank::RANK_HIGH) {
idx = std::get<2>(cap);
idx = std::get<2>(cap); // 2
break;
}
}
@@ -229,7 +229,7 @@ VPEAlgoErrCode YUVScale(const sptr<SurfaceBuffer>& input, const sptr<SurfaceBuff
return YUVPixmapScale(inputPixmap, outputPixmap, scaleOption, numPlanesInput);
}
constexpr OHOS::Media::VideoProcessingEngine::Extension::Rank RANK = OHOS::Media::VideoProcessingEngine::Extension::Rank::RANK_DEFAULT;
constexpr Extension::Rank RANK = Extension::Rank::RANK_DEFAULT;
constexpr uint32_t VERSION = 0;
} // namespace