andy_mqy

andy_mqy

1个粉丝

26

问答

0

专栏

0

资料

andy_mqy  发布于  2016-04-21 16:58:41
采纳率 0%
26个问答
6045

例程解码JPEG图片出现的问题,请教各位

 
使用海思例程解码本地存储的.jpeg图片,如果只是用解码通道0解码,可见成功创建解码通道,而且解码。如果使用4路解码通道解码同一图片,解码通道0可以创建成功,创建解码通道1时报错:HI_MPI_VDEC_CreateChn chn 1 failed at SAMPLE_COMM_VDEC_Start: LINE: 755 with 0xa0058003! 0xA0058003: HI_ERR_VDEC_ILLEGAL_PARAM 参数超出合法范围。

下面是设置解码通道参数的部分函数部分,请教各位帮看看
   for(i=0; i     {
        pstVdecChnAttr.enType       = PT_JPEG;
        pstVdecChnAttr.u32BufSize   = 3 * pstSize->u32Width * pstSize->u32Height;
        pstVdecChnAttr.u32Priority  = 5;
        pstVdecChnAttr.u32PicWidth  = pstSize->u32Width;
        pstVdecChnAttr.u32PicHeight = pstSize->u32Height;
        if (PT_H264 == enType || PT_MP4VIDEO == enType)
        {
            pstVdecChnAttr.stVdecVideoAttr.enMode=VIDEO_MODE_STREAM;
            pstVdecChnAttr.stVdecVideoAttr.u32RefFrameNum = 1;
            pstVdecChnAttr.stVdecVideoAttr.bTemporalMvpEnable = 0;
        }
        else if (PT_JPEG == enType || PT_MJPEG == enType)
        {
            pstVdecChnAttr->stVdecJpegAttr.enMode = VIDEO_MODE_FRAME;
            pstVdecChnAttr->stVdecJpegAttr.enJpegFormat = JPG_COLOR_FMT_YCBCR420;
        }
我来回答
回答6个
时间排序
认可量排序

andy_mqy

1个粉丝

26

问答

0

专栏

0

资料

andy_mqy 2016-04-22 09:03:32
认可0
本帖最后由 andy_mqy 于 2016-4-22 09:28 编辑

主要是希望实现当给解码通道发送码流时,一旦码流中断,希望通道出现一个图片提示或logo图片,用海思芯片这方面是应用哪种模块实现的呢?因为输出窗口的通道数量变化,窗口的大小随之改变,需要图片也随窗口大小一同缩放,请教有这方面使用的网友指点。

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-04-22 10:14:31
认可0
方法很多

一. 在图形形层上画上一个不透明的OSD上去, 用fb buffer,这个最容易实现,一般来说解码的设备不象IPC多少都是会画界面的,把这个当界面来画就是了

二. 解码结束后, 把那些vdec和vpss都解绑, 开一个JPEG vdec通道, 绑这些vpss

解码结束前
vdec0 ----> vpss0 ---> vo_chn0
vdec1 ----> vpss1 ---> vo_chn1
....
vdecN ----> vpssN ---> vo_chnN

解码结束时,解绑定
vdec0 -X-> vpss0 ---> vo_chn0
vdec1 -X-> vpss1 ---> vo_chn1
....
vdecN -X-> vpssN ---> vo_chnN

然后绑定
jpeg_vdec0 ---> vpss0 ---> vo_chn0
                   |
                   +-> vpss1 ---> vo_chn1
....
                   +-> vpssN ---> vo_chnN

无需开多个jpeg vdec
这里有个问题,解码通道肯定不会同时都结束,这里可以考虑哪路结束,就解绑对应的vpss和vdec再绑到JPEG的vdec,同时再给JPEG的vdec喂一次JPEG码流,保证能显示出图

三. 解码结束后, 解绑vdec和vpss, 用HI_MPI_VPSS_SendFrame()把要显示的图发到VPSS,缺点是图不能是JPEG

andy_mqy

1个粉丝

26

问答

0

专栏

0

资料

andy_mqy 2016-04-26 08:49:25
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=28912&ptid=11082]zhuangweiye 发表于 2016-4-22 10:14[/url]
方法很多

一. 在图形形层上画上一个不透明的OSD上去, 用fb buffer,这个最容易实现,一般来说解码的设备 ...[/quote]

感谢楼上回复,对于3535或3536请教解码通道与VPSS绑定之后,设置解码通道属性时可以设置解码文件类型264或JPEG,还需要将VDEC解码通道和VPSS解绑定吗?

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-04-26 09:05:04
认可0
解码协议类型是静态属性, 不能动态设置, 只能先destroy,重新create

andy_mqy

1个粉丝

26

问答

0

专栏

0

资料

andy_mqy 2016-04-26 09:24:55
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=29130&ptid=11082]zhuangweiye 发表于 2016-4-26 09:05[/url]
解码协议类型是静态属性, 不能动态设置, 只能先destroy,重新create[/quote]

恩,是如楼上所说,解码通道的属性是静态的,如修改参数需要按流程一步步执行,对于解码码流中断显示图片,然后码流恢复再进行解码264码流,这种方式不知道是否合适,看到MPP中介绍区域region的,有位图填充,但是这个位图填充好像要设置填充区域,对于解码通道而言,窗口的大小是随解码通道数量变化的,不知道哪种是合适的方法。

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-04-26 09:44:35
认可0
region的方式的话可能要用到 vpss上叠加 OVERLAY/OVERLAYEX(前者只能是vpss channel 0)

如果是显示码流中断的话,建议使用fb来画吧, 不然vdec要不断destroy/create
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区