视频色彩空间转换
========

开发者可以调用本模块提供的[C API接口](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-videoprocessing)，实现HDR2SDR、HDR2HDR、SDR2SDR、SDR2HDR的色彩空间转换。

该能力常用于视频编辑、视频分享和视频直播中：

*   **视频编辑**
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/f/v3/U2S_emPFSD6VYowBCe-bbA/zh-cn_image_0000002625108393.png?HW-CC-KV=V1&HW-CC-Date=20260612T073525Z&HW-CC-Expire=86400&HW-CC-Sign=7403380B2A2BC8DA678833015E90E31ADD3FB88D9420829B7681BA957563DC31)
    
*   **视频分享**
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/4b/v3/AQ2lEckWT9e477oZAUNsBA/zh-cn_image_0000002594668876.png?HW-CC-KV=V1&HW-CC-Date=20260612T073525Z&HW-CC-Expire=86400&HW-CC-Sign=6E8C4E3A3C980BED2462D668A9FA309EBD93ADEDFD8A17FBBB4DFBDAA2EA6163)
    
*   **视频直播**
    
    **支持以下场景使用：**
    
    使用HDR Vivid视频直播连麦，且对端不支持HDR Vivid视频录制场景。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/b1/v3/MrhPBgI3TzOcxxbrFBL8dg/zh-cn_image_0000002594828804.png?HW-CC-KV=V1&HW-CC-Date=20260612T073525Z&HW-CC-Expire=86400&HW-CC-Sign=4E2E6A8F3775049C0F3A6288D30D0F93D4F90F814FABB050C5090AEEAAB2B4DD)
    

#### 规格说明

视频色彩空间转换算法为SDR2SDR时，支持的格式类型组合如下：

*   格式类型组合一：
    
    | **参数** | **输入** | **输出** |
    | :-- | :-- | :-- |
    | [ColorSpace](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_colorspace) | OH\_COLORSPACE\_BT601\_EBU\_LIMIT | OH\_COLORSPACE\_BT709\_LIMIT |
    | [MetadataType](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_metadatatype) | OH\_VIDEO\_NONE | OH\_VIDEO\_NONE |
    | [pixelFormat](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_format) | 
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_420\_SP,
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCRCB\_420\_SP,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_8888
    
     | 
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_420\_SP,
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCRCB\_420\_SP,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_8888
    
     |
    
*   格式类型组合二：
    
    | **参数** | **输入** | **输出** |
    | :-- | :-- | :-- |
    | [ColorSpace](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_colorspace) | OH\_COLORSPACE\_BT601\_SMPTE\_C\_LIMIT | OH\_COLORSPACE\_BT709\_LIMIT |
    | [MetadataType](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_metadatatype) | OH\_VIDEO\_NONE | OH\_VIDEO\_NONE |
    | [pixelFormat](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_format) | 
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_420\_SP,
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCRCB\_420\_SP,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_8888
    
     | 
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_420\_SP,
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCRCB\_420\_SP,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_8888
    
     |
    
*   视频色彩空间转换算法为SDR2SDR时，支持的分辨率规格：
    
    | 最小分辨率（单位：像素） | 最大分辨率（单位：像素） |
    | :-- | :-- |
    | 32\*32 | 8192\*8192 |
    

视频色彩空间转换算法为HDR2SDR时，支持的格式类型组合如下：

*   格式类型组合一：
    
    | **参数** | **输入** | **输出** |
    | :-- | :-- | :-- |
    | [ColorSpace](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_colorspace) | OH\_COLORSPACE\_BT2020\_PQ\_LIMIT | OH\_COLORSPACE\_BT709\_LIMIT |
    | [MetadataType](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_metadatatype) | OH\_VIDEO\_HDR\_VIVID | OH\_VIDEO\_NONE |
    | [pixelFormat](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_format) | 
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCRCB\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_1010102
    
     | 
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_420\_SP,
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCRCB\_420\_SP,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_8888
    
     |
    
*   格式类型组合二：
    
    | **参数** | **输入** | **输出** |
    | :-- | :-- | :-- |
    | [ColorSpace](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_colorspace) | OH\_COLORSPACE\_BT2020\_HLG\_LIMIT | OH\_COLORSPACE\_BT709\_LIMIT |
    | [MetadataType](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_metadatatype) | OH\_VIDEO\_HDR\_VIVID | OH\_VIDEO\_NONE |
    | [pixelFormat](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_format) | 
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCRCB\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_1010102
    
     | 
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_420\_SP,
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCRCB\_420\_SP,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_8888
    
     |
    
*   格式类型组合三（从API version 20开始支持该格式类型）：
    
    | **参数** | **输入** | **输出** |
    | :-- | :-- | :-- |
    | [ColorSpace](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_colorspace) | OH\_COLORSPACE\_BT2020\_HLG\_FULL | OH\_COLORSPACE\_BT709\_LIMIT |
    | [MetadataType](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_metadatatype) | OH\_VIDEO\_HDR\_VIVID | OH\_VIDEO\_NONE |
    | [pixelFormat](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_format) | 
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCRCB\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_1010102
    
     | 
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_420\_SP,
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCRCB\_420\_SP,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_8888
    
     |
    
*   格式类型组合四（从API version 20开始支持该格式类型）：
    
    | **参数** | **输入** | **输出** |
    | :-- | :-- | :-- |
    | [ColorSpace](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_colorspace) | OH\_COLORSPACE\_BT2020\_HLG\_FULL | OH\_COLORSPACE\_P3\_FULL |
    | [MetadataType](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_metadatatype) | OH\_VIDEO\_HDR\_VIVID | OH\_VIDEO\_NONE |
    | [pixelFormat](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_format) | 
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCRCB\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_1010102
    
     | 
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_420\_SP,
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCRCB\_420\_SP,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_8888
    
     |
    
*   格式类型组合五（从API version 23开始支持该格式类型）：
    
    | **参数** | **输入** | **输出** |
    | :-- | :-- | :-- |
    | [ColorSpace](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_colorspace) | OH\_COLORSPACE\_BT2020\_PQ\_LIMIT | OH\_COLORSPACE\_BT709\_LIMIT |
    | [MetadataType](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_metadatatype) | OH\_VIDEO\_HDR\_HDR10 | OH\_VIDEO\_NONE |
    | [pixelFormat](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_format) | 
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCRCB\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_1010102
    
     | 
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_420\_SP,
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCRCB\_420\_SP,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_8888
    
     |
    
*   格式类型组合六（从API version 23开始支持该格式类型）：
    
    | **参数** | **输入** | **输出** |
    | :-- | :-- | :-- |
    | [ColorSpace](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_colorspace) | OH\_COLORSPACE\_BT2020\_HLG\_LIMIT | OH\_COLORSPACE\_BT709\_LIMIT |
    | [MetadataType](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_metadatatype) | OH\_VIDEO\_HDR\_HLG | OH\_VIDEO\_NONE |
    | [pixelFormat](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_format) | 
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCRCB\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_1010102
    
     | 
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_420\_SP,
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCRCB\_420\_SP,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_8888
    
     |
    
*   视频色彩空间转换算法为HDR2SDR时，支持的分辨率规格：
    
    | 最小分辨率（单位：像素） | 最大分辨率（单位：像素） |
    | :-- | :-- |
    | 32\*32 | 8192\*8192 |
    

视频色彩空间转换算法为HDR2HDR时，支持的格式类型组合如下：

*   格式类型组合一：
    
    | **参数** | **输入** | **输出** |
    | :-- | :-- | :-- |
    | [ColorSpace](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_colorspace) | OH\_COLORSPACE\_BT2020\_PQ\_LIMIT | OH\_COLORSPACE\_BT2020\_HLG\_LIMIT |
    | [MetadataType](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_metadatatype) | OH\_VIDEO\_HDR\_VIVID | OH\_VIDEO\_HDR\_VIVID |
    | [pixelFormat](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_format) | 
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCRCB\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_1010102
    
     | 
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCRCB\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_1010102
    
     |
    
*   格式类型组合二：
    
    | **参数** | **输入** | **输出** |
    | :-- | :-- | :-- |
    | [ColorSpace](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_colorspace) | OH\_COLORSPACE\_BT2020\_PQ\_LIMIT | OH\_COLORSPACE\_BT2020\_HLG\_LIMIT |
    | [MetadataType](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_metadatatype) | OH\_VIDEO\_HDR\_HDR10 | OH\_VIDEO\_HDR\_HLG |
    | [pixelFormat](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_format) | 
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCRCB\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_1010102
    
     | 
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCRCB\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_1010102
    
     |
    
*   格式类型组合三：
    
    | **参数** | **输入** | **输出** |
    | :-- | :-- | :-- |
    | [ColorSpace](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_colorspace) | OH\_COLORSPACE\_BT2020\_PQ\_LIMIT | OH\_COLORSPACE\_BT2020\_HLG\_LIMIT |
    | [MetadataType](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_metadatatype) | OH\_VIDEO\_HDR\_VIVID | OH\_VIDEO\_HDR\_HLG |
    | [pixelFormat](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_format) | 
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCRCB\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_1010102
    
     | 
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCRCB\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_1010102
    
     |
    
*   格式类型组合四：
    
    | **参数** | **输入** | **输出** |
    | :-- | :-- | :-- |
    | [ColorSpace](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_colorspace) | OH\_COLORSPACE\_BT2020\_HLG\_LIMIT | OH\_COLORSPACE\_BT2020\_PQ\_LIMIT |
    | [MetadataType](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_metadatatype) | OH\_VIDEO\_HDR\_VIVID | OH\_VIDEO\_HDR\_VIVID |
    | [pixelFormat](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_format) | 
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCRCB\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_1010102
    
     | 
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCRCB\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_1010102
    
     |
    
*   视频色彩空间转换算法为HDR2HDR时，支持的分辨率规格：
    
    | 最小分辨率（单位：像素） | 最大分辨率（单位：像素） |
    | :-- | :-- |
    | 32\*32 | 8192\*8192 |
    

视频色彩空间转换算法为SDR2HDR时，支持的格式类型组合如下：

*   格式类型组合一（从API version 22开始支持该格式类型）：
    
    | **参数** | **输入** | **输出** |
    | :-- | :-- | :-- |
    | [ColorSpace](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_colorspace) | OH\_COLORSPACE\_BT709\_LIMIT | OH\_COLORSPACE\_BT2020\_HLG\_LIMIT |
    | [MetadataType](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_metadatatype) | OH\_VIDEO\_NONE | OH\_VIDEO\_HDR\_HLG |
    | [pixelFormat](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-buffer-common-h#oh_nativebuffer_format) | 
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_420\_SP,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_8888
    
     | 
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_YCRCB\_P010,
    
    NATIVEBUFFER\_PIXEL\_FMT\_RGBA\_1010102
    
     |
    
*   视频色彩空间转换算法为SDR2HDR时，支持的分辨率规格：
    
    | 最小分辨率（单位：像素） | 最大分辨率（单位：像素） |
    | :-- | :-- |
    | 300\*300 | 3000\*3000 |
    

#### 约束与限制

1.  为保障转换效率，建议并行转换不超过5个。
    
2.  不允许在视频处理回调函数中，直接调用视频处理相关接口或其他耗时操作，请在应用自己的线程中调用。
    

#### 开发指导

具体实现可参考[示例工程](https://gitcode.com/HarmonyOS_Samples/VideoProcessing)。

#### \[h2\]在 CMake 脚本中链接动态库

target\_link\_libraries(sample PUBLIC libvideo\_processing.so)

#### \[h2\]开发步骤

1.  添加头文件。
    
    #include <multimedia/video\_processing\_engine/video\_processing.h>
    #include <multimedia/video\_processing\_engine/video\_processing\_types.h>
    #include <native\_window/external\_window.h>
    #include <native\_buffer/native\_buffer.h>
    #include <ace/xcomponent/native\_interface\_xcomponent.h>
    
2.  （可选）初始化环境。
    
    一般在进程内第一次使用时调用，可提前完成部分耗时操作。
    
    OH\_VideoProcessing\_InitializeEnvironment();
    
3.  （可选）查询能力支持。建议在使用对应能力前调用。
    
    //输入输出格式
    VideoProcessing\_ColorSpaceInfo inputFormat;
    VideoProcessing\_ColorSpaceInfo outputFormat;
    inputFormat.metadataType = OH\_VIDEO\_HDR\_HDR10;
    inputFormat.colorSpace = OH\_COLORSPACE\_BT2020\_PQ\_LIMIT;
    inputFormat.pixelFormat = NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_P010;
    outputFormat.metadataType = OH\_VIDEO\_HDR\_HLG;
    outputFormat.colorSpace = OH\_COLORSPACE\_BT2020\_HLG\_LIMIT;
    outputFormat.pixelFormat = NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_P010;
    
    //能力查询
    bool isSupport = OH\_VideoProcessing\_IsColorSpaceConversionSupported(&inputFormat, &outputFormat);
    
4.  创建色彩空间转换模块。
    
    应用可以通过视频处理引擎模块类型来创建色彩空间转换模块。示例中的变量说明如下：
    
    *   videoProcessor：色彩空间转换模块实例。
    *   VIDEO\_PROCESSING\_TYPE\_COLOR\_SPACE\_CONVERSION：色彩空间转换类型。
    *   预期返回值：VIDEO\_PROCESSING\_SUCCESS
    
    // 通过指定视频处理引擎类型创建色彩空间转换模块实例
    OH\_VideoProcessing\* videoProcessor = nullptr;
    VideoProcessing\_ErrorCode ret = OH\_VideoProcessing\_Create(&videoProcessor, VIDEO\_PROCESSING\_TYPE\_COLOR\_SPACE\_CONVERSION);
    
5.  配置异步回调函数。
    
    // 回调函数声明（其中userData会传递注册回调时传入的用户数据，如：this指针）
    void OnError(OH\_VideoProcessing\* videoProcessor, VideoProcessing\_ErrorCode error, void\* userData);
    void OnState(OH\_VideoProcessing\* videoProcessor, VideoProcessing\_State state, void\* userData);
    void OnNewOutputBuffer(OH\_VideoProcessing\* videoProcessor, uint32\_t index, void\* userData);
    
    // 创建回调实例
    VideoProcessing\_Callback\* callback = nullptr;
    ret = OH\_VideoProcessingCallback\_Create(&callback);
    // 绑定回调函数
    OH\_VideoProcessingCallback\_BindOnError(callback, OnError);
    OH\_VideoProcessingCallback\_BindOnState(callback, OnState);
    OH\_VideoProcessingCallback\_BindOnNewOutputBuffer(callback, OnNewOutputBuffer);
    // 注册回调函数
    ret = OH\_VideoProcessing\_RegisterCallback(videoProcessor, callback, this);
    
6.  获取Surface。
    
    //获取输入surface
    OHNativeWindow \*inWindow = nullptr;
    ret = OH\_VideoProcessing\_GetSurface(videoProcessor, &inWindow);
    
7.  设置Surface。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/85/v3/xIJP_Bp6RSuCqys5F4BEVQ/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260612T073525Z&HW-CC-Expire=86400&HW-CC-Sign=A38D35FB94479E8DFF98981EBB15C9FAD848DB2D19F4A2AE8B577451F6A8BD16)
    
    可以通过XComponent等其他方式获取OHNativeWindow实例，具体参见[NativeWindows开发指导](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/native-window-guidelines)。
    
    视频处理引擎的SetSurface的windowOut从xcomponent的[OnSurfaceCreatedCB](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/native-window-guidelines)回调函数获取，需要对windowOut设置元数据类型、数据格式和颜色空间等参数。
    
    // 设置元数据类型、数据格式、颜色空间
    uint8\_t metadataType = OH\_VIDEO\_HDR\_HLG;
    OH\_NativeWindow\_SetMetadataValue(windowOut, OH\_HDR\_METADATA\_TYPE, sizeof(uint8\_t),
    (uint8\_t \*)&metadataType);
    OH\_NativeBuffer\_Format format = NATIVEBUFFER\_PIXEL\_FMT\_YCBCR\_P010;
    OH\_NativeWindow\_NativeWindowHandleOpt(windowOut, SET\_FORMAT, format);
    OH\_NativeBuffer\_ColorSpace colorSpace = OH\_COLORSPACE\_BT2020\_HLG\_LIMIT;
    OH\_NativeWindow\_SetColorSpace(windowOut, colorSpace);
    // 设置输出surface
    VideoProcessing\_ErrorCode ret = OH\_VideoProcessing\_SetSurface(videoProcessor, windowOut);
    
8.  调用[OH\_VideoProcessing\_Start()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-video-processing-h#oh_videoprocessing_start)启动色彩空间转换处理。
    
    // 开始色彩空间转换处理
    ret = OH\_VideoProcessing\_Start(videoProcessor);
    
9.  调用[OH\_VideoProcessing\_Stop()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/capi-video-processing-h#oh_videoprocessing_stop)停止色彩空间转换处理。
    
    //停止色彩空间转换处理
    ret = OH\_VideoProcessing\_Stop(videoProcessor);
    
10.  释放处理实例。
     
     OH\_VideoProcessingCallback\_Destroy(callback);
     callback = nullptr;
     OH\_VideoProcessing\_Destroy(videoProcessor);
     videoProcessor = nullptr;
     
11.  释放处理资源。
     
     OH\_VideoProcessing\_DeinitializeEnvironment();