qingluan2011

qingluan2011

0个粉丝

5

问答

0

专栏

0

资料

qingluan2011  发布于  2017-02-14 11:19:19
采纳率 0%
5个问答
6446

Venc模块获取不到虚拟通道Vo模块的数据流

 
我使用3531A 时候,数据流通道模式采用Venc->VPSS->VO(SAMPLE_VO_DEV_VIRT0)->Venc ,这个过程中,虚拟通道VO到VENC数据流获取失败。
我使用HI_MPI_VO_GetScreenFrame,再调用HI_MPI_VENC_SendFrame是可以抓取截图没问题。
我现在想使用Vo与Venc绑定的模式(即SAMPLE_COMM_VENC_BindVo(SAMPLE_VO_DEV_VIRT0, 0, 0)),
但是线程中调用s32Ret = select(s32VencFd+1, &read_fds, NULL, NULL, &TimeoutVal);就会超时,获取不到数据流,有没大神遇到过此问题,拜托帮忙解答
我来回答
回答12个
时间排序
认可量排序

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-02-14 11:53:44
认可0
方便的话,运行时的/proc/umap/vo和 /dev/logmpp 贴一下

qingluan2011

0个粉丝

5

问答

0

专栏

0

资料

qingluan2011 2017-02-14 12:35:58
认可0
本帖最后由 qingluan2011 于 2017-2-14 13:16 编辑

zhuangweiye 发表于 2017-2-14 11:53[/url]
方便的话,运行时的/proc/umap/vo和 /dev/logmpp 贴一下[/quote]

如下截图,兄台是否发现什么?

qingluan2011

0个粉丝

5

问答

0

专栏

0

资料

qingluan2011 2017-02-14 13:28:04
认可0
如手册中描述:

虚拟设备
虚拟设备是软件上的概念,没有实际对应的物理设备。
− 内部处理流程:虚拟设备和标清设备相同,标清设备的通道通过 VGS 实现
缩放,并叠加为一整幅图像。
− 发送虚拟设备图像:虚拟设备支持通过用户态线程调用
HI_MPI_VO_GetScreenFrame 接口获取虚拟设备对应视频层的图像,并发送
给其他模块;也支持 SYS_Bind 的方式在内核态向其他模块发送虚拟设备图
像,但是禁止调用 HI_MPI_SYS_Bind 接口将 VO 虚拟视频层绑定到 VO 视
频层自身。


我就是想通过Sys_bind方式,访问虚拟设备图像,失败了。。。。

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-02-14 15:32:25
认可0
本帖最后由 zhuangweiye 于 2017-2-14 15:42 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=44995&ptid=14151]qingluan2011 发表于 2017-2-14 13:28[/url]
如手册中描述:

虚拟设备
[/quote]

楼主使用的SAMPLE_COMM_VENC_BindVo(SAMPLE_VO_DEV_VIRT0, 0, 0),这里用SAMPLE_VO_DEV_VIRT0是否对?感觉应该用volayer才对,mpp3.0 vo channel是属于volayer的,不像mpp1.0那样属于vo dev
注意:虚拟vo的vodev = 3,volayer = 4

个人感觉海思的sample代码只能用它在用的部分。

另外,楼主的意思应该是把虚拟vo的chan 0绑定到venc 0, 那么问题来了, 虚拟vo的chan 0的大小是640x360的, 而venc是1280x720的,venc发现过来的图小,直接就丢弃了,就没有码流过来了

楼主可以做两个试验(前提是有图发到venc)
1。venc的大小设置成640x360,看看是否还是没有码流出来
2。虚拟vo设置成1分割,看看是否还是没有码流出来

qingluan2011

0个粉丝

5

问答

0

专栏

0

资料

qingluan2011 2017-02-14 16:30:17
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=45002&ptid=14151]zhuangweiye 发表于 2017-2-14 15:32[/url]
楼主使用的SAMPLE_COMM_VENC_BindVo(SAMPLE_VO_DEV_VIRT0, 0, 0),这里用SAMPLE_VO_DEV_VIRT0是否对? ...[/quote]

首先,感谢您热心答复。
我按照您说的去做了, 设置成640*360和把虚拟VO设置为单画面显示,都还是Venc请求不到数据流。

feiyashan

0个粉丝

11

问答

0

专栏

0

资料

feiyashan 2017-02-14 16:52:19
认可0
在虚拟vo和venc中间加一个vpss试试

qingluan2011

0个粉丝

5

问答

0

专栏

0

资料

qingluan2011 2017-02-15 08:58:28
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=45020&ptid=14151]feiyashan 发表于 2017-2-14 16:52[/url]
在虚拟vo和venc中间加一个vpss试试[/quote]

手册第六章有如下描述:
视频解码(VDEC)模块解码图像经视频处理子系统(VPSS)发送到视频输出
(VO)模块,经 WBC 视频回写或是 VO 虚拟通道发送到视频编码模块。

我原理上跟VPSS应该没关系啊,VO里的数据就是有从VPSS那边过来的了。

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-02-15 09:14:49
认可0
本帖最后由 zhuangweiye 于 2017-2-15 09:20 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=45014&ptid=14151]qingluan2011 发表于 2017-2-14 16:30[/url]
首先,感谢您热心答复。
我按照您说的去做了, 设置成640*360和把虚拟VO设置为单画面显示,都还是Venc请 ...[/quote]


绑定关系是什么? 给个/proc/umap/sys,从上面venc的log来看根本就没有图发到venc模块

楼主的SAMPLE_COMM_VENC_BindVo(SAMPLE_VO_DEV_VIRT0, 0, 0)在3531A上是有问题
应该是SAMPLE_COMM_VENC_BindVo(SAMPLE_VO_LAYER_VIRT0, 0, 0)

qingluan2011

0个粉丝

5

问答

0

专栏

0

资料

qingluan2011 2017-02-15 11:35:05
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=45046&ptid=14151]zhuangweiye 发表于 2017-2-15 09:14[/url]
绑定关系是什么? 给个/proc/umap/sys,从上面venc的log来看根本就没有图发到venc模块

楼主的SAMP ...[/quote]

函数原型是SAMPLE_COMM_VENC_BindVo(VO_DEV VoDev,VO_CHN VoChn,VENC_CHN VeChn)

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-02-15 11:45:19
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=45068&ptid=14151]qingluan2011 发表于 2017-2-15 11:35[/url]
函数原型是SAMPLE_COMM_VENC_BindVo(VO_DEV VoDev,VO_CHN VoChn,VENC_CHN VeChn)[/quote]

上面5楼的帖子说明了原因, 建议楼主看一下文档以及sample_comm_vo.c
中SAMPLE_COMM_VO_BindVpss()等函数,这些函数是真正在用的, mpp3.0在绑定vo时已经不再用vodev了

3对应的volayer 是SAMPLE_VO_LAYER_VSD0
4是SAMPLE_VO_LAYER_VIRT0

qingluan2011

0个粉丝

5

问答

0

专栏

0

资料

qingluan2011 2017-02-16 10:03:20
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=45073&ptid=14151]zhuangweiye 发表于 2017-2-15 11:45[/url]
上面5楼的帖子说明了原因, 建议楼主看一下文档以及sample_comm_vo.c
中SAMPLE_COMM_VO_BindVpss() ...[/quote]

好的,谢谢啦,我去试试

hushuai3

0个粉丝

2

问答

0

专栏

0

资料

hushuai3 2017-03-20 15:47:21
认可0
楼主不知道你解决没有,  我也遇到过类似的问题, 用vo去绑定venc模块的时候  , 模块应该用 Grop 而不是vou 大概是这样的情况 具体原因不清楚
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区