ngswfx

ngswfx

1个粉丝

55

问答

1

专栏

40

资料

ngswfx  发布于  2016-06-12 11:25:20
采纳率 0%
55个问答
10366

折腾了好久WBC,终于搞定了

 
本帖最后由 ngswfx 于 2016-6-12 18:24 编辑

前前后后,在3520D 3535 3536上面折腾WBC,有几个月了,从来就没成功过一次,所有调用的地方都试了一遍。

HI_MPI_VO_GetWbcFrame,总是返回说没有初始化。

///////////这几天在搞3536,这些芯片肯定支持,这个毋庸置疑,但哪里出了问题呢?

//////////////以前用这些SDK,习惯了节约内存,为此,

memset(&stVbConf, 0, sizeof(VB_CONF_S));
        stVbConf.u32MaxPoolCnt = 16;//VB_MAX_POOLS;
        //解码这部分默认不用分配,不影响              
        //3520D默认就是内部自己管理解码的内存的,3535和3536需要在装载解码驱动底层时选择方式,我3536这么设置的:insmod hi3536_vdec.ko VBSource=1 MiniBufMode=1
        /////////////////////////////////////////////////////
        //memset(&stVbConf, 0, sizeof(VB_CONF_S));
        //stVbConf.u32MaxPoolCnt = 2;
        stVbConf.astCommPool[0].u32BlkCnt  = 5;
        stVbConf.astCommPool[0].u32BlkSize = 1920*1080*2;
         
//这部分,我平时是屏蔽的,没用,也没见到异常。正常使用。就是这个导致WBC出不来。这个WBC肯定要用内存的
////以前也怀疑过,估计当时其他地方也有问题,交织到一块所以没弄成功。

        //SAMPLE_COMM_VDEC_Sysconf(&stVbConf, &stSize);
        s32Ret = SAMPLE_COMM_SYS_Init(&stVbConf);

///////////记下来,给用WBC的初学者参考。


//如果你用的SDK是新的版本,SDK有新的函数可以直接程序里面直接调用了:这样就无需修改驱动装载批处理文件了

typedef struct hiVDEC_MOD_PARAM_S
{
HI_U32 u32MiniBufMode;
HI_U32 u32VBSource;
} VDEC_MOD_PARAM_S;

HI_S32 HI_MPI_VDEC_SetModParam(VDEC_MOD_PARAM_S* pstModParam);


我来回答
回答15个
时间排序
认可量排序

rafael_wl

0个粉丝

12

问答

0

专栏

7

资料

rafael_wl 2016-06-12 12:30:59
认可0
现在在苦逼的调试vpss ,图像出来有噪点

yangq

0个粉丝

4

问答

0

专栏

0

资料

yangq 2016-06-12 14:40:54
认可0
苦心人,天不负!顶一个

andy_mqy

1个粉丝

26

问答

0

专栏

0

资料

andy_mqy 2016-06-12 14:58:54
认可0
感谢分享调试经验,楼主说的:“我3536这么设置的:insmod hi3536_vdec.ko VBSource=1 MiniBufMode=1”这个是在vi load3536里面添加的吗?还是在什么地方写入的,谢谢。

andy_mqy

1个粉丝

26

问答

0

专栏

0

资料

andy_mqy 2016-06-12 15:41:23
认可0
在KO/vi load3536 中写入了insmod hi3536_vdec.ko VBSource=1
运行例程提示错误如下:
Cannot identify '/dev/vdec': 2, No such file or directory
open vdec err
HI_MPI_VDEC_CreateChn chn 0 failed at SAMPLE_COMM_VDEC_Start: LINE: 766 with 0xa0058010!

意识提示我没有加载上Vdec模块,什么原因呢

ngswfx

1个粉丝

55

问答

1

专栏

40

资料

ngswfx 2016-06-12 17:45:35
认可0
本帖最后由 ngswfx 于 2016-6-12 18:10 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=31503&ptid=11572]andy_mqy 发表于 2016-6-12 15:41[/url]
在KO/vi load3536 中写入了insmod hi3536_vdec.ko VBSource=1
运行例程提示错误如下:
Cannot identify  ...[/quote]


//你这个还真奇怪,你的SDK版本是什么。是直接在原来lod3536文件基础上修改就可以了,找到inmod HI3536Vdec.ko这一行,直接后面添加VBSource=1

insmod其实就是那一堆KO文件目录下的批处理文件,load3536里面,其中一句就是insmod hi3536VDEC.ko,我这边用的UCLIBC版本,就是这么干的。开始的时候,解码通道总是解码失败。(其实就是VB没自己分配,加上这个VBSource=1就立刻成功了)


//////////我这个是仿照3535弄得,当时也没细看文档。

3.0MPI 中的描述如下:看来还真可以通过这个VBSource来修改。我是习惯偷懒,不想去自己创建内存占用,因为做解码,过来的数据类型很复杂,从CIF,到800万都有可能,我不想提前分配,这样会导致解码不了多少路,我是习惯调用创建解码通道的时候,由VDEC自己根据当时我传入的PIC SIZE分配合理的内存。因为这样是动态的,所以比较节省内存占用,在销毁解码通道时,海斯SDK底层立刻就销毁了VB了,我再开启小画面的CIF JPG解码显示背景即可,内存占用很小

解码 ModuleVB 池:创建解码通道时不分配图像 Buffer,而是由用户调用相应
的 MPI 接口创建专属于解码模块的 ModuleVB 池,该 VB 池只允许 VDEC 获取
VB 块,其它模块只能使用不能获取。
− 解码 PrivateVB 池:创建解码通道时由 VDEC 创建私有 VB 池作为该通道的图
像 Buffer,用户可以在创建通道前调用接口 HI_MPI_VDEC_SetChnVBCnt 来设
置通道私有 VB 池的 VB 个数,默认个数为 5。
− 解码 UserVB 池:创建解码通道时不分配图像 Buffer,而是由用户调用接口
HI_MPI_VB_CreatePool 创建一个视频缓存 VB 池,再通过调用接口
HI_MPI_VDEC_AttachVbPool 把某个解码通道绑定到固定的视频缓存 VB 池
中。
z
码流 Buffer 配置模式

三种解码帧存分配方式可通过 ko 加载时设置模块参数 VBSource 来选择。
VBSource=0 表示使用解码 ModuleVB 池方式;VBSource =1 表示使用解码
PrivateVB 池方式;VBSource=2 表示使用解码 UserVB 池方式。当解码帧存使用
ModuleVB 池或者 UserVB 池方式时,可以不用销毁解码通道直接销毁 VB 池,但
是销毁解码 VB 池前用户必须保证没有任何模块正在使用这个 VB 池里的任何一
块 VB(可通过复位解码通道,以及复位解码直接或间接绑定的后级模块实现,如
VDEC 绑定 VPSS,VPSS 绑定 VO,则就要同时复位 VDEC、VPSS 和 VO;如果
用户是从 VDEC 里获取图像上去,也必须保证全部图像释放回 VDEC。)
,否则会
出现程序异常的情况。
解码码流 buffer 配置支持两种模式:一般模式和省内存模式。
一般模式:码流 Buffer 总大小为用户配置的 u32BufSize+通道宽 x 通道高/2,
u32BufSize 可配置的最小值为通道宽 x 通道高 x3/4,此模式下码流 Buffer 能容
纳每一帧码流,包括超大帧。
− 省内存模式:码流 Buffer 的总大小为用户创建解码通道时配置的 u32BufSize 的
大小,u32BufSize 可配置的最小值为 32KB,但是用户必须保证送入码流每帧
大小不能超过 u32BufSize 的一半。

两种模式可通过 ko 加载时设置模块参数 MiniBufMode 来选择。MiniBufMode=1 表
示省内存模式;MiniBufMode=0 表示一般模式。

ngswfx

1个粉丝

55

问答

1

专栏

40

资料

ngswfx 2016-06-12 18:15:17
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=31500&ptid=11572]andy_mqy 发表于 2016-6-12 14:58[/url]
感谢分享调试经验,楼主说的:“我3536这么设置的:insmod hi3536_vdec.ko VBSource=1 MiniBufMode=1”这个 ...[/quote]

对就在这个里面修改的

andy_mqy

1个粉丝

26

问答

0

专栏

0

资料

andy_mqy 2016-06-15 13:39:29
认可0
谢谢楼上热心回复,我的SDK版本是Hi3536_SDK_V2.0.2.0,另外,请教楼上,是否了解Hi3531芯片可以获取VGA接口连接显示器的分辨率。我看了文档没有介绍这些,而且海思的FrameBuffer,好像是不支持获取硬件设备信息。

hzjman

0个粉丝

7

问答

0

专栏

0

资料

hzjman 2017-07-01 17:38:45
认可0
感谢分享调试经验

zx_dvr

0个粉丝

0

问答

0

专栏

0

资料

zx_dvr 2018-07-19 20:57:56
认可0
写的很详细,很值得看这个

qn1533996535

0个粉丝

0

问答

0

专栏

0

资料

qn1533996535 2018-08-14 21:50:05
认可0
感谢楼主分享!

qn1535097110

1个粉丝

21

问答

0

专栏

1

资料

qn1535097110 2018-08-25 15:41:17
认可0
我在3531的sample_vdec里面添加的,加载ko的时候也添加了VBSource=1 MiniBufMode=1,但是没反应啊
cat /proc/umap/vo的时候都没出现wbc的打印信息


-----WBC INFO------------------------------------------------------------------
WbcId  WbcW  WbcH PixFmt FrmRat RealRat    Mode  SrcType  SrcId  Depth  NotFin

-----GRAPHICS LAYER------------------------------------------------------------
Layer BindDev
   HC0       0
   HC1       1
那是咋回事呢

tqingguang6688

0个粉丝

6

问答

0

专栏

1

资料

tqingguang6688 2019-01-17 10:14:20
认可0
我也是3536,master模式,在master端,报以下错误
root@HISIV:/lib/hisiv-3536# insmod hi3536_vdec.ko VBSource=2
insmod: can't insert 'hi3536_vdec.ko': Invalid argument
root@HISIV:/lib/hisiv-3536# insmod hi3536_vdec.ko VBSource=1 MiniBufMode=1
insmod: can't insert 'hi3536_vdec.ko': Invalid argument

fengsheng

0个粉丝

4

问答

0

专栏

0

资料

fengsheng 2016-06-12 16:03:42
认可0
:victory:
收藏!!

hero

0个粉丝

1

问答

0

专栏

0

资料

hero 2017-06-30 10:13:25
认可0
学习了...........

tango_zhu

14个粉丝

14

问答

0

专栏

3

资料

tango_zhu 2018-07-23 23:49:58
认可0

写的很详细 需要设置相关模块的深度
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区