动态修改VPSS通道属性的镜像和翻转属性不生效
Posted: 2024-02-29 5:23
求助,万分感谢!!!
开发板: LuckFox Pico Pro/Max
数据流:VI----VPSS----VENC----RTSP
动态修改参数验证方案:读取终端指令 ---> 调用RK_MPI_VPSS_SetChnAttr()进行修改。
出现问题:图像并没有按照预期进行镜像、翻转,但是从dumpsys vpss中看到的mirror和flip参数确实变化了。
详细描述:
如图1,为初始化后,MIRROR和FLIP参数都为false时候的图像 设置MIRROR参数为TRUE,如下图2 图像并没有变化,通过dumpsys vpss查看通道属性,mirror参数确实配置成功了,如下图3 动态配置的代码段如下。
开发板: LuckFox Pico Pro/Max
数据流:VI----VPSS----VENC----RTSP
动态修改参数验证方案:读取终端指令 ---> 调用RK_MPI_VPSS_SetChnAttr()进行修改。
出现问题:图像并没有按照预期进行镜像、翻转,但是从dumpsys vpss中看到的mirror和flip参数确实变化了。
详细描述:
如图1,为初始化后,MIRROR和FLIP参数都为false时候的图像 设置MIRROR参数为TRUE,如下图2 图像并没有变化,通过dumpsys vpss查看通道属性,mirror参数确实配置成功了,如下图3 动态配置的代码段如下。
Code: Select all
bool SetParam::stMirrorRotation(
const param::MirrorRotationParam& par) noexcept {
VPSS_CHN_ATTR_S stChnAttr;
memset(&stChnAttr, 0x0, sizeof(VPSS_CHN_ATTR_S));
auto ret = RK_MPI_VPSS_GetChnAttr(0, 0, &stChnAttr);
if (RK_SUCCESS != ret) {
SPDLOG_ERROR("RK_MPI_VPSS_GetChnAttr failed with {:#x}.", ret);
return false;
}
SPDLOG_DEBUG("set vpss chn par: {}-{}", par.mirror, par.flip);
stChnAttr.bFlip = par.flip ? RK_BOOL::RK_TRUE : RK_BOOL::RK_FALSE;
stChnAttr.bMirror = par.mirror ? RK_BOOL::RK_TRUE : RK_BOOL::RK_FALSE;
ret = RK_MPI_VPSS_SetChnAttr(0, 0, &stChnAttr);
if (RK_SUCCESS != ret) {
SPDLOG_ERROR("RK_MPI_VPSS_SetChnAttr failed with {:#x}.", ret);
return false;
}
ret = RK_MPI_VPSS_GetChnAttr(0, 0, &stChnAttr);
if (RK_SUCCESS == ret) {
SPDLOG_DEBUG("read vpss chn par: mirror-flip: {}-{}", stChnAttr.bMirror,
stChnAttr.bFlip);
}
return true;
}