查看: 16059|回复: 1

V5 mpp_sample的ctrl+c退出不能生效

[复制链接]

2

主题

1

回帖

28

积分

新手上路

Rank: 1

积分
28
发表于 2018-10-15 23:26:21 | 显示全部楼层 |阅读模式
经过查阅代码,发现主要是下面两句起作用,它们关闭了UI图层,导致ctrl+c结束后,原有界面图层被关闭而新的界面图层又不能创建,因为看起来像死机一样,无法退出。
AW_MPI_VO_AddOutsideVideoLayer(pVOParams->iMiniGUILayer);
AW_MPI_VO_CloseVideoLayer(pVOParams->iMiniGUILayer); /* close ui layer. */
问题是为什么创建一个正常的视频输出图层,要先创建一个第八层的UI图层,且创建好后马上又关闭它?文档没有这部分内容。
如果注销这两句,那么程序是可以正常用ctrl+c退出的,不过问题是运行开始,程序不能创建自己的输出图层,只有终端内打印信息在不停的刷新,
我猜是因为GUI最低就是8号图层,而其他新创建的VO是0号显示器0号通道0号图层,也就是0图层,所以VO会被UI图层遮挡?如果这个猜想正确应该是用透明度来解决这个问题。

另外mpp_sample 中的CPP一直编译出错,到底什么原因能否一起分析一下。
回复

使用道具 举报

1

主题

1

回帖

20

积分

新手上路

Rank: 1

积分
20
发表于 2018-10-22 12:58:09 | 显示全部楼层
本帖最后由 风火轮用户64946 于 2018-10-22 13:04 编辑

mpp_sample中为了避免被开机时默认创建的图层造成干扰,因为该图层并非经过mpp申请的,所以在sample开始运行时会先将此前开启的图层关闭掉,楼主提到的语句就是起到这个作用的:
AW_MPI_VO_AddOutsideVideoLayer(pVOParams->iMiniGUILayer); 创建已使用图层,以获取该图层的控制权
AW_MPI_VO_CloseVideoLayer(pVOParams->iMiniGUILayer); /* close ui layer. */ 关闭该图层
所以这是mpp_sample图层退出后,画面只有黑屏的原因。

要想mpp_sample退出后,能返回桌面,可以尝试以下方法:
1.注释掉上述的关闭已开启图层的语句;
2.在创建新的图层后,使用mpp的系统接口AW_MPI_VO_SetVideoLayerPriority把新图层的z序(即图层的上下排序系数)设置为大于0的即可(因为默认开机的图层z序为0,z序范围[0, 15])显示新的图层。
楼主提到的不能输出新图层,我猜是因为没有设置z序的原因。

至于APP报错问题,楼主请参考以下链接解决:
http://forum.lindeni.org/showthread.php?tid=11


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|风火轮WIKI|手机版|小黑屋|深圳风火轮团队 ( 粤ICP备17095099号 )

GMT+8, 2024-12-22 14:12 , Processed in 0.062716 second(s), 19 queries .

快速回复 返回顶部 返回列表
 
【客服1】 商务合作 15289193
【客服2】 业务洽谈 13257599
【客服3】 售前咨询 510313198
【邮箱】
smartfire@smartfire.cn