andy_mqy

andy_mqy

1个粉丝

26

问答

0

专栏

0

资料

andy_mqy  发布于  2016-11-08 13:43:18
采纳率 0%
26个问答
2791

Hi3531实现解码后编码生成的编码码流虚拟地址超出范围

 
使用Hi3531实现解码并进行编码,编码通道绑定到了VPSS的VPSS_BSTR_CHN通道上,利用例程函数生成了编码码流,之后从编码码流包结构中的pu8Add地址获取码流,发现pu8Add存储的地址超出了内存范围
typedef struct hiVENC_PACK_S
{
HI_U32 u32PhyAddr[2];
HI_U8 *pu8Addr[2];
HI_U32 u32Len[2];
VENC_DATA_TYPE_U DataType;
HI_U64 u64PTS;
HI_BOOL bFieldEnd;
HI_BOOL bFrameEnd;
}VENC_PACK_S;

请教各位可能是什么原因导致?
我来回答
回答4个
时间排序
认可量排序

falloutmx

1个粉丝

15

问答

0

专栏

0

资料

falloutmx 2016-11-08 16:20:13
认可0
用sample_venc试过吗

andy_mqy

1个粉丝

26

问答

0

专栏

0

资料

andy_mqy 2016-11-08 16:55:51
认可0
sample_venc 中执行的 SAMPLE_VENC_1D1_USER_SEND_PICTUREiS(); 运行正常,可以将获取码流写入本地生成文件。这样是否可以认为,运行的环境是没问题的。

andy_mqy

1个粉丝

26

问答

0

专栏

0

资料

andy_mqy 2016-11-09 09:10:06
认可0
例程中,码流获取地址pu8Addr[0]=0x402cf040开始,例程中没有使用解码模块和VPSS,我的应用中解码和VPSS和VO都用了,还用了VENC,VENC获取码流读出的地址是从pu8Addr[0]=0xe1c00040 开始,一从这个地址取数据程序即异常退出了。

andy_mqy

1个粉丝

26

问答

0

专栏

0

资料

andy_mqy 2016-11-17 12:02:10
认可0
发现了问题在于个人项目情况将SAMPLE_COMM_VENC_Start和SAMPLE_COMM_VENC_BindVpss函数没有,同实现编码线程的函数SAMPLE_COMM_VENC_StartGetStream没有写入到一个.c的源程序中,导致获取码流的虚拟地址异常,而获取不到码流。感谢调试过程中各位的回复。正常获取码流虚拟地址在0x40000000之后区域。
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区