xiaotiancd

xiaotiancd

0个粉丝

1

问答

0

专栏

0

资料

xiaotiancd  发布于  2014-10-24 11:37:39
采纳率 0%
1个问答
9608

3516C上 HI_MPI_VPSS_UserSendFrame用法请教,谢谢!

 
大家好,

小弟最近通过VI_getframe获取到一帧图像后(YUVSP422),进行处理完成后,想把这一帧图片发回VPSS,但是调用VPSS_USERSENDFRAME老出错,麻烦大家教教我。其中 stFrame 是VIDEO_FRAME_S结构,里面的数据由getframe初始化,send的时候,stFrame里面的虚拟地址应该填什么,其他的数据部分呢?
                    vi_getFrame(stFrame)
                    ...deal with the frame
                    ... try to send the frame back
                      stFrame.stVFrame.u32PhyAddr[0] = HI_MPI_SYS_Munmap(yOut, 1920*1080);
                      stFrame.stVFrame.u32PhyAddr[1] = HI_MPI_SYS_Munmap(uvOut, 1920*540);

                      s32Ret = HI_MPI_VPSS_UserSendFrame(0, &stFrame);
                      if(HI_SUCCESS != s32Ret){
                           SAMPLE_PRT("vpss user send frame failed with %#x !\n", s32Ret);
                           break;
                      }


               谢谢大家!
我来回答
回答8个
时间排序
认可量排序

Soybean

0个粉丝

1

问答

0

专栏

0

资料

Soybean 2014-10-25 23:52:41
认可0
图像数据存放在物理地址里(即u32phyaddr),将它映射到虚拟地址pViraddr中,通过虚拟地址可以访问图像数据
[quote](HI_U8 *)HI_MPI_SYS_Mmap(stFrame.stVFrame.u32PhyAddr[0], u32BlkSize);[/quote]

xiaotiancd

0个粉丝

1

问答

0

专栏

0

资料

xiaotiancd 2014-10-27 09:59:05
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=8648&ptid=4049]Soybean 发表于 2014-10-25 23:52[/url]
图像数据存放在物理地址里(即u32phyaddr),将它映射到虚拟地址pViraddr中,通过虚拟地址可以访问图像数据 ...[/quote]

我从系统获取FRAME之后是这么做的,现在是想将FRAME放回去。 之前我用HI_MPI_SYS_Mmap获得了frame的虚拟地址,然后对数据进行了处理,得到的结果是yout, uvout, 现在需要放回去,还是用HI_MPI_SYS_Mmap么?

wonrowl

0个粉丝

10

问答

0

专栏

2

资料

wonrowl 2014-10-27 13:40:05
认可0
楼主,请问下,你是在哪个c文件里的操作啊,我刚好也是3516C的片子,刚拿到,还不清楚,望赐教下,谢谢

xiaotiancd

0个粉丝

1

问答

0

专栏

0

资料

xiaotiancd 2014-10-28 09:39:55
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=8673&ptid=4049]wonrowl 发表于 2014-10-27 13:40[/url]
楼主,请问下,你是在哪个c文件里的操作啊,我刚好也是3516C的片子,刚拿到,还不清楚,望赐教下,谢谢[/quote]

有个common/sample_comm_vpss.c里看看?我用的是VENC这个例子,里面有两个单独的PTHREAD,如果你想实时动态的获取FRAME,你可以考虑在其中一个中做操作。但是每次获取(从,VI,VPSS,或者其它)图片的时候,保证是在该模块初始化之后就行。我也才接触一个多月,一起交流学习。

wonrowl

0个粉丝

10

问答

0

专栏

2

资料

wonrowl 2014-10-28 10:16:44
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=8684&ptid=4049]xiaotiancd 发表于 2014-10-28 09:39[/url]
有个common/sample_comm_vpss.c里看看?我用的是VENC这个例子,里面有两个单独的PTHREAD,如果你想实时动 ...[/quote]

我刚接触,昨天板子通过nfs挂文件系统才跑起来,,,共勉吧:handshake

szjcqu

0个粉丝

1

问答

0

专栏

0

资料

szjcqu 2017-07-12 15:44:29
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=8684&ptid=4049]xiaotiancd 发表于 2014-10-28 09:39[/url]
有个common/sample_comm_vpss.c里看看?我用的是VENC这个例子,里面有两个单独的PTHREAD,如果你想实时动 ...[/quote]

你好,你有获取相机的视频流相关的例子么,是用HI_MPI_VPSS_GetGrpFrame这个函数来获取视频的么?

yzm12345

0个粉丝

0

问答

0

专栏

0

资料

yzm12345 2017-07-28 16:23:34
认可0
这帖子有点久了,我也是出来完不知道怎么发送获取

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-07-28 17:02:32
认可0
通过HI_MPI_XXX_GetFrame(... , VIDEO_FRAME_INFO_S *pstFrameInfo, ...) 得到的图像是用VIDEO_FRAME_INFO_S结构描述的

其中的物理地址是有效的,并且是海思模块能使用的

如果用户要访问该图像,那么需要用HI_MPI_SYS_Mmap把物理地址映射成用户空间的虚拟地址(并不需要把这个映射出来的地址填写到上面的结构中),通过这个虚拟地址可以访问该图像,比如修改,修改完成后,只要unmap刚才的虚拟地址(目的是释放虚拟地址,否则用循环的情况下虚拟地址空间会用光),然后把上面的结构送到 sendframe中去即可,也就是说无需修改Getframe得到的结构

一般流程如下

HI_MPI_VI_GetFrame(ViChn, &stFrameInfo);

/* mmap */
u32Size = stFrameInfo.stVFrame.u32Stride[0] * stFrameInfo.stVFrame.u32Height;
virt_y = HI_MPI_SYS_Mmap(stFrameInfo.stVFrame.u32PhyAddr[0], u32Size);

/* deal with video frame ... */
/* use virt_y to modify image */
...

/* unmap */
HI_MPI_SYS_Munmap(virt_y, u32Size);

/* send to other mod */
HI_MPI_VPSS_SendFrame(VpssGrp, &stFrameInfo, -1);

/* release video frame */
(void)HI_MPI_VI_ReleaseFrame(ViChn, &stFrameInfo);
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区