---
title: SetCopyFrameFunc
description: "提供给解码器，在输出帧数据时调用该函数回调，用于减少内存拷贝。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/240RC1/armnative/kunpengcpsvideo_16_0067.html
sourcePath: /source/zh/kunpengboostkithistory/240RC1/armnative/kunpengcpsvideo_16_0067.html
indexId: 2b88a45869c8c5fea242900708e573cb2ae83592ad56b79d23aae12cccabb71079
---
# SetCopyFrameFunc

#### 函数功能

提供给解码器，在输出帧数据时调用该函数回调，用于减少内存拷贝。


#### 约束说明

NA


#### 函数原型

DecoderRetCode SetCopyFrameFunc(std::function<uint32_t(uint8_t*, uint8_t*, const PicInfoParams &, uint32_t)> copyFrame)


#### 参数说明

| 字段名称 | 输入/输出 | 字段类型 | 字段描述 |
| --- | --- | --- | --- |
| copyFrame | 输入 | std::function<uint32\_t(uint8\_t\*, uint8\_t\*, const PicInfoParams &, uint32\_t) | 设置将解码好的一帧数据拷贝到输出buffer的钩子函数（用于屏蔽输出接口格式差异）。 |


该回调中，第一个uint8_t*表示解码完成后数据地址，第二个uint8_t*表示拷贝的目标地址，需要填入RetrieveFrameData中输入的buffer地址，第三个const PicInfoParams &参数表示图像宽高信息，具体定义请参见SetDecodeParams；第四个uint32_t参数表示输出缓冲区最大长度，需要填入RetrieveFrameData中输入的最大缓冲区大小，该回调返回值为处理数据的实际大小。


#### 返回值说明

数据类型：DecoderRetCode

取值如下：

- VIDEO_DECODER_SUCCESS：设置回调成功。
- VIDEO_DECODER_SET_FUNC_FAIL：设置回调失败。
