导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    如何在显示一段时间后,清除掉overlay?

    V Series
    2
    2
    1129
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • H
      haaland LV 6 最后由 编辑

      想请教一下各位大佬,在设置overlay显示后一段时间,不再需要overlay显示了 ,如何比较干净清除overlay?

      我按照下面的步骤操作,通过接口AWVideoInput_SetOSD设置osd后,再调用该接口,把OverlayInfo.osd_num改成0,这样。清除不掉overlay

      通过接口AWVideoInput_SetOSD设置osd

      OverlayInfo.item_info[index].osd_type = RT_NORMAL_OVERLAY;
      OverlayInfo.item_info[index].start_x = 16;
      OverlayInfo.item_info[index].start_y = 752;
      OverlayInfo.item_info[index].widht  = 464;
      OverlayInfo.item_info[index].height = 32;
      ret = init_overlay_info(&OverlayInfo, index);
      

      把OverlayInfo.osd_num改成0,

      OverlayInfo.osd_num = 0;
      AWVideoInput_SetOSD(channelId_0, &OverlayInfo);
      

      用的v851s开发板+GC2053的快起方案

      1 条回复 最后回复 回复 引用 分享 0
      • livpo
        livpo LV 6 最后由 编辑

        明显overlay使能还在起作用,如果只是把OverlayInfo.osd_num改成0肯定无法有效清除overlay

        这种情况要设置一个完整VideoInputOSD结构体,并全部清空为0,这样同时也会把之前申请的overlay内存free掉

        
            if(stream_count_0 == 数字) {
                if (mparam.enable_osd) {
                    aw_logw("begin clean osd");
                    VideoInputOSD OverlayInfo;
                    memset(&OverlayInfo, 0, sizeof(VideoInputOSD));
                    AWVideoInput_SetOSD(mparam.use_vipp_num, &OverlayInfo);
                }
            }
        

        把数字改为自己想要的,就会在这个数字帧清除osd,这个数字帧之后就无osd显示

        1 条回复 最后回复 回复 引用 分享 0
        • 1 / 1
        • First post
          Last post

        Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

        行为准则 | 用户协议 | 隐私权政策