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实现以及反色实现相关推荐

  1. 海思3559万能平台搭建:OSD的自动反色

    前言   OSD功能在之前两篇中已经满足了大部分的应用场景,为了进一步提升效率和自适应环境亮度和反色,这里介绍改进方法 效率提升   我们之前整体的流程框架是这样的:TTF初始化,打开字体,区域初始化 ...

  2. 通用嵌入式系统测试平台 ETest简介

    通用嵌入式系统自动化测试平台 通用嵌入式系统测试平台(Embedded System Interface Test Studio,简称: ETest)是针对嵌入式系统进行实时.闭环.非侵入式测试的自动 ...

  3. 基于 树莓派4 + STM32H7 构建支持云端应用的嵌入式系统平台 【一】

    基于 树莓派4 + STM32H7 构建支持云端应用的嵌入式系统平台 [一] 一. 想法概述 1. 想法由来 2. 系统架构 3. 系统选型 4. 开发语言 5. 涉及到的框架 6. 开发工具 7. ...

  4. 构建一个轻量级的嵌入式虚拟平台,开发工程用板stm32 picoc解释器,大量自定义函数,sarm拓展,lwip移植,nes模拟器移植,系统优化,等等技术的融合

    让嵌入式想java一样一处编写到处运行 第一次写博客,其实接触嵌入式已经快两年了,从开始学51单片机的时候,怀着满腔的热情.写出了点亮第一个流水灯代码的时候那个无比的激动,到后面自己做许多有趣的东西( ...

  5. 嵌入式linux毕业设计,基于嵌入式Linux平台的智能小区终端系统设计与实现

    内容简介: 硕士学位论文 基于嵌入式Linux平台的智能小区终端系统设计与实现,正文共69页. [摘要] 智能化小区通过采用智能终端系统,为住户提供了一种更加安全.舒适.方便.快捷和开放的智能化.信息 ...

  6. 嵌入式车载平台的GPRS网络实现(转)

    这篇文章觉得不错,对于利用GPRS模块进行网络数据传输的理解有很大帮助,不知道3G模块原理是不是类似,只是速度上的问题而已,因为在本人的Andiroid手机上(3G启动)进行网络程序的开发时,用的是S ...

  7. 物联网时代的嵌入式开发平台

    http://geek.csdn.net/news/detail/65026 作为典型的嵌入式开发,物联网应用的开发与互联网应用从硬件配置到运行环境有巨大的不同.本文介绍了当前物联网开发者面临的挑战, ...

  8. mysql 客户端 交叉编译_移植mysql到嵌入式ARM平台

    移植MySQL到嵌入式ARM平台 MySQL没有专门针对ARM的版本,移植到ARM没有官方文档可参考,因此,暂时参考这样一篇文档: http://blog.chinaunix.net/space.ph ...

  9. linux算法设计,嵌入式Linux平台下随机序列算法设计.doc

    嵌入式Linux平台下随机序列算法设计 嵌入式Linux平台下随机序列算法设计 [摘 要]本文以多媒体播放器的随机不重复播放机能为切入点,针对嵌入式平台实时性要求高,处理速度不够快,但系统存储歌曲量大 ...

最新文章

  1. 关上Deepfake的潘多拉魔盒,RealAI推出深度伪造视频检测工具
  2. slab 内存分配器介绍(一)
  3. CCSprite setTextureRect 的坐标的坑
  4. k近邻回归算法python_经典算法之K近邻(回归部分)
  5. 4+5的值是python_Python基础:数据类型-数字(5)
  6. 10以内的分解与组成怎么教_【一年级数学】(上)10以内的分与合技巧及练习题...
  7. C++中doulbe/float/int转为CString方法(转)
  8. 腾讯拟全资收购搜狗,王小川:感谢认可,将认真讨论和衡量
  9. mysql 提交 按钮_表单提交按钮input和button、a的差异
  10. excel制作跨职能流程图_用Excel规划求解工具,实现组合投资优化
  11. mysql 创建函数_MySQL函数,存储过程,用户管理
  12. 计算机视觉实战(九)信用卡数字识别项目(附完整代码)
  13. Java 核心内容相关面试题【4】
  14. jquery 文档就绪函数_jQuery文档准备就绪
  15. Zipkin jar 下载地址
  16. 「日历订阅」全网首发2023年中国法定节假日
  17. cad角度怎么画_超实用的CAD制图口诀,快收藏
  18. XCTF mobile新手区解题记录(WP)以及一些总结和思考
  19. Python代码实现NIST随机性测试
  20. 行人检测0-05:LFFD-行人训练数据制作以及训练

热门文章

  1. .NET 中 Image 转 Icon
  2. 关于开源精神和抄袭问题
  3. Linux DHCP服务搭建
  4. nagios 使用MSN 发报警消息
  5. Android文件系统深入剖析
  6. gRPC 网关,针对 HTTP 2.0 长连接性能优化,提升吞吐量
  7. 字节跳动副总裁杨震原:A/B测试不是万能的,但不会一定不行
  8. Docker不再是唯一的选择
  9. 聊聊未来的程序员该如何选公司和谋规划
  10. 某程序员吐槽:回老家被乡镇公务员表哥怼,催他赶紧上岸!表哥月薪3800,而他年包90w!...