嵌入式 hi3518a平台多编码通道同时绑定OSD实现以及反色实现
来源:互联网 发布:华纳史诗冒险 知乎 编辑:程序博客网 时间:2024/05/29 11:56
1、首先海思官方给予的代码中找到编码通道组是不变的,变化的是DevId可以参考的代码是:
{
/******************************************************************************
* function : venc bind vpss
******************************************************************************/
HI_S32 SAMPLE_COMM_VENC_BindVpss(VENC_GRP GrpChn,VPSS_GRP VpssGrp,VPSS_CHN VpssChn)
{
HI_S32 s32Ret = HI_SUCCESS;
MPP_CHN_S stSrcChn;
MPP_CHN_S stDestChn;
stSrcChn.enModId = HI_ID_VPSS;
stSrcChn.s32DevId = VpssGrp;
stSrcChn.s32ChnId = VpssChn;
stDestChn.enModId = HI_ID_GROUP;
stDestChn.s32DevId = GrpChn;
stDestChn.s32ChnId = 0;
s32Ret = HI_MPI_SYS_Bind(&stSrcChn, &stDestChn);
if (s32Ret != HI_SUCCESS)
{
SAMPLE_PRT("failed with %#x!\n", s32Ret);
return HI_FAILURE;
}
return s32Ret;
}
}
这样我们在看一下region中的编码通道以及编码通道组,同样我们只需要将OSD区域绑定到对应的编码通道即可,但是我们不是很清楚变化的编码通道组还是编码通道,这样由上面的代码可以看出变化的是编码通道而不是编码通道组,也就是编码通道组恒定,我们一般用不到扩展编码通道组,这样我们修改对应的编码通道就可以完成多编码通道同时绑定OSD区域了(见红色代码),怎么完成反色的呢?以及反色需要主要的是什么呢?主要是区域的对齐方式(见蓝色代码),参考代码如下:
{
for(Joseph_bind_DevId = 0; Joseph_bind_DevId < grpcnt; Joseph_bind_DevId++)
{
VencGrp = 0;
stChn.enModId = HI_ID_GROUP;
stChn.s32DevId = Joseph_bind_DevId;
stChn.s32ChnId = VencGrp;
RgnHandle = 0;
printf("%s:[%d] stChn.s32ChnId is %d ,\n",__FUNCTION__,__LINE__,stChn.s32ChnId);
memset(&stChnAttr,0,sizeof(stChnAttr));
stChnAttr.bShow = HI_TRUE;
stChnAttr.enType = OVERLAY_RGN;
stChnAttr.unChnAttr.stOverlayChn.stPoint.s32X = 16;
stChnAttr.unChnAttr.stOverlayChn.stPoint.s32Y = 16;
stChnAttr.unChnAttr.stOverlayChn.u32BgAlpha = 128;
stChnAttr.unChnAttr.stOverlayChn.u32FgAlpha = 0;
stChnAttr.unChnAttr.stOverlayChn.u32Layer = Joseph_u32Layer--;
stChnAttr.unChnAttr.stOverlayChn.stQpInfo.bAbsQp = HI_FALSE;
stChnAttr.unChnAttr.stOverlayChn.stQpInfo.s32Qp = 0;
stChnAttr.unChnAttr.stOverlayChn.stInvertColor.stInvColArea.u32Height = 32;
stChnAttr.unChnAttr.stOverlayChn.stInvertColor.stInvColArea.u32Width = 16;
stChnAttr.unChnAttr.stOverlayChn.stInvertColor.u32LumThresh = 64;
stChnAttr.unChnAttr.stOverlayChn.stInvertColor.bInvColEn = HI_TRUE;
stChnAttr.unChnAttr.stOverlayChn.stInvertColor.enChgMod = LESSTHAN_LUM_THRESH;
s32Ret = HI_MPI_RGN_AttachToChn(RgnHandle, &stChn, &stChnAttr);
if(HI_SUCCESS != s32Ret)
{
SAMPLE_PRT("HI_MPI_RGN_AttachToChn (%d) failed with %#x!\n",\
RgnHandle, s32Ret);
return HI_FAILURE;
}
printf("display region to s32DevId %d chn success!\n",stChn.s32DevId);
}
}
注意:
1、使用完的区域,需要先撤出通道,然后再销毁区域!
2、同一区域可以多次依附在不同的编码通道!
- 嵌入式 hi3518a平台多编码通道同时绑定OSD实现以及反色实现
- 嵌入式 hi3518a平台多编码通道同时绑定OSD实现以及反色实现
- Hi3516a平台实现osd文字处理
- 嵌入式 hi3518cSDL_tff库做bmp实现osd
- 在YUV图像上根据背景色实现OSD反色
- OSD创建OVERLAYEX_RGN 绑定到vi设备通道
- OSD创建OVERLAYEX_RGN 绑定到vi设备通道
- 嵌入式 hi3518平台多路码流添加osd
- OSD实现原理介绍
- VLC实现中文OSD
- 地理反编码的实现
- 嵌入式 hi3518a裸板在nandflash上烧写uboot以及kernel以及文件系统
- 嵌入式 FAAC1.28 在海思HI3518C/HI3518A平台linux中的编译优化
- java 哈夫曼编码反编码的实现
- ajax 动态绑定table同时实现分页
- react 实现双向绑定以及事件绑定
- mp3编码--PCM转MP3,PCM编码为MP3,如何实现多路同时MP3编码-VC,MFC实现---QQ35744025
- 嵌入式 在arm平台运行ftpd服务器实现文件下载以及上传
- HttpComponents之httpclient基本使用方法
- CSS3边框 圆角 阴影,旋转
- 华为USG6000系列防火墙的Console密码重置过程
- 趣图丨IT从业者的压力究竟有多大?
- numpy学习笔记
- 嵌入式 hi3518a平台多编码通道同时绑定OSD实现以及反色实现
- 为什么技术与产品沟通起来总是那么痛苦
- NavigationView使用详解
- 我的故事丨一个女程序员的自述
- maven 打包,运行
- 用内网服务器对接微信公众号服务
- windows下node.js的安装及express使用命令配置
- 一个简单的TCP/IP并发回显C/S(二)
- [置顶] 获取CListCtrl选中行行号的多种方法