做个好菜鸟

做个好菜鸟

0个粉丝

13

问答

0

专栏

0

资料

做个好菜鸟  发布于  2017-08-24 10:40:02
采纳率 0%
13个问答
4088

vdec码流Buffer

 
在HI3531平台下进行录像回访时,实现后退功能时要继续播放几秒钟才可以后退到指定位置开始播放,cat /proc/umap/vdec 后发现 FrmInVdec 的值不为0,请问vdec中的待解码的Frm缓存如何清除,我解绑vdec与vpss之后再进行绑定还是会继续播放几秒钟,请问有什么办法直接将vdec中待解吗的Frm缓存清除掉吗?
我来回答
回答10个
时间排序
认可量排序

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-08-24 11:15:52
认可0
试试

HI_MPI_VDEC_StopRecvStream()
HI_MPI_VDEC_ResetChn()
HI_MPI_VDEC_StartRecvStream()

做个好菜鸟

0个粉丝

13

问答

0

专栏

0

资料

做个好菜鸟 2017-08-24 13:45:42
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=62866&ptid=23265]zhuangweiye 发表于 2017-8-24 11:15[/url]
试试

HI_MPI_VDEC_StopRecvStream()
[/quote]

谢庄工,这样可以把vdec中的FrmInVdec清0,不过出现了一个新的问题:当FrmInVdec为0时,可以实现点击GUI层按钮后退n秒功能,但当FrmInVdec不为0时,调用HI_MPI_VDEC_StopRecvStream(); HI_MPI_VDEC_ResetChn(); HI_MPI_VDEC_StartRecvStream()之后 FrmInVdec清0,但输出会暂停几秒钟,暂停的同时FrmInVdec值开始增加,然后后退n秒开始解码输出。

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-08-24 13:52:47
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=62877&ptid=23265]做个好菜鸟 发表于 2017-8-24 13:45[/url]
谢庄工,这样可以把vdec中的FrmInVdec清0,不过出现了一个新的问题:当FrmInVdec为0时,可以实现点击GUI ...[/quote]

不是很理解

一般情况下vdec中等待解码的帧数不会大于1,不然控制很难做

做个好菜鸟

0个粉丝

13

问答

0

专栏

0

资料

做个好菜鸟 2017-08-24 14:00:40
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=62878&ptid=23265]zhuangweiye 发表于 2017-8-24 13:52[/url]
不是很理解

一般情况下vdec中等待解码的帧数不会大于1,不然控制很难做[/quote]

调用HI_MPI_Vo_ChnPause()之后FrmInVdec的值就会增加:cat /proc/umap/vdec

[VDEC] Version: [Hi3531_MPP_V2.0.B.0 ], Build Time[Nov 30 2013, 18:28:55]

-----MODULE PARAM--------------------------------------------------------------
   obey_minCR
            0

-----CHN ATTR & PARAMS-------------------------------------------------------
  ID  TYPE   Prior    MaxW    MaxH   Width  Height   StrmInputMode   STATE
   0  H264       1    1920    1080    1920    1080   FRAME/BLOCK     START
  ID  RefNum    SupportB   DispNum     BufSize  SCDBufSize  MaxSlice  MaxSPS  MaxPPS
   0       1         Yes         2     2073600     3110400       100      21      22
  ID  ErrThr   StrmThr   DecMode   OutMode   DnrDisp     DnrTf
   0      30         0        IP       Dec       N/A       N/A

-----CHN STATE-----------------------------------------------------------------
  ID  PrtclErr  StrmUnSP StrmError RefNumErr  PicSizeErr  fmterror  PicBufSizeErr   RlsFail  Notify
   0         0         0         0         0           0         0              0         0    3387
  ID  fps  TimerCnt   BufFLen   DataLen   UsrFLen    UsrLen   ptsBufF   ptsBufU
   0   26      8051      3636         0      5088         0        40         0

----- Detail Stream STATE -----------------------------------------------------------
  ID MpiSndNum           MpiSndLen   VdecNum   VdecLen  FmGetNum            FmGetLen  FmRlsNum            FmRlsLen  FmLstGet FmRlsFail
   0      1844            58069570      1844     27660      1862            58097230      1763            54987938     30508         0

----- Detail FrameStore STATE -----------------------------------------------------------
  ID  FmNewPic GetFromFm   RlsToFm   Discard    UsrSnd    KerSnd    KerRls  FreeNode  BusyNode  UserNode   MeetEnd FrmInVdec
   0      1658      1658      1654         0         0      1658      1654        36         0         4      1658       186

----- Detail UserData STATE -----------------------------------------------------------
  ID    MpiGet      MpiGetLen    MpiRls      MpiRlsLen   Discard     DiscardLen GetFromFm   GetFromFmLen   UsrFLen    UsrLen
   0         0              0         0              0         0              0         0              0      5088         0

Vo 通道恢复播放之后FrmInVdec值保持不变,这时再进行后退控制的话就会出现刚才说的问题:输出画面暂停几秒 然后后退n秒解码播放。

做个好菜鸟

0个粉丝

13

问答

0

专栏

0

资料

做个好菜鸟 2017-08-24 14:04:55
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=62878&ptid=23265]zhuangweiye 发表于 2017-8-24 13:52[/url]
不是很理解

一般情况下vdec中等待解码的帧数不会大于1,不然控制很难做[/quote]

庄工,想要进行控制的话,是不是就要保证Vdec中FrmInVdec值很小才可以?

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-08-24 14:36:55
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=62880&ptid=23265]做个好菜鸟 发表于 2017-8-24 14:04[/url]
庄工,想要进行控制的话,是不是就要保证Vdec中FrmInVdec值很小才可以?[/quote]

没用过HI_MPI_Vo_ChnPause()

暂停,不要送码流就好了,用海思的控制感觉自己找麻烦

做个好菜鸟

0个粉丝

13

问答

0

专栏

0

资料

做个好菜鸟 2017-08-24 15:07:58
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=62884&ptid=23265]zhuangweiye 发表于 2017-8-24 14:36[/url]
没用过HI_MPI_Vo_ChnPause()

暂停,不要送码流就好了,用海思的控制感觉自己找麻烦[/quote]

额 谢庄工,如果现在想要保证VDEC中缓存的帧数较少,海思好像没有提供相应的API吧?这个要实现的话能给个思路吗?我现在慢放的时候FirInvdec也一直在增加。

yenfuliu

0个粉丝

16

问答

0

专栏

0

资料

yenfuliu 2017-08-25 10:55:16
认可0
查询解码通道状态 HI_MPI_VDEC_Query

qn1568023232

0个粉丝

2

问答

0

专栏

0

资料

qn1568023232 2019-11-25 16:53:26
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=62866&ptid=23265]zhuangweiye 发表于 2017-8-24 11:15[/url]
试试

HI_MPI_VDEC_StopRecvStream()
[/quote]

庄工真的好厉害,我都看过他的好多回复了!!!给了很多指引~~

qn1568023232

0个粉丝

2

问答

0

专栏

0

资料

qn1568023232 2019-11-25 17:41:44
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=62885&ptid=23265]做个好菜鸟 发表于 2017-8-24 15:07[/url]
额 谢庄工,如果现在想要保证VDEC中缓存的帧数较少,海思好像没有提供相应的API吧?这个要实现的话能给个 ...[/quote]

您好,我这边也会有这个问题,就是如果解码通道的缓存的帧太多,我为了跳转直接将其清空,那么就会导致我跳转的时间是非常不准确的,怎么能够在跳转的时候还能考虑到解码通道缓冲区里面的码流buf而又不会有延迟?
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区