when i use dm8168 to decode rtp stream, it does not work well. sometimes it will display green screen.
i am sure that deocode id and swms id is correct.
anybody get this problem?
bin li2:
the flow is like this:
1.put video frame data to decode , using Vdec_putBitstreamBuffer, and the buffer alloc and read ,i am sure is right.
2.call Vdis_setMosaicParams to set the layout mode by myself, only display decode frames.
3.change layoutmode ,only display the capture data
4. do step 2
somtimes we got problem here, green screen will appear
i dont know why.i need your help . thank you!
Chris Meng:
回复 bin li2:
你好,
1。请确认是否会rtsp传输的特定码流有关?如果和特定码流有关,可以例如DVR RDK里面的解码显示例子复现。如果能复现,请提供相关码流。
2. 如果无关,能否写一个抓rtsp流的程序,能够捕获出问题时候的码流,再离线解码,看问题是否能复现
bin li2:
回复 Chris Meng:
和码流没有关系的,因为我后来规避了一下这个码流相关性,我只送入固定的一帧黑屏的数据,带spspps(是H264的)。
问题同样会出现。
另外打印ti_vdec.c内部的一些参数,channel等信息,绿屏和正常的打印都是一致的。
所以我确认和码流无关,要么是我解码的link设置有问题,要么是本身的bug?多跑几次就这样了?
我做的工作实际就是一个简单的终端,和对端进行对呼。呼几次,就会出现绿屏,且无法恢复。只能重启机器。
bin li2:
回复 bin li2:
相当于反复的去打开解码器,关闭解码器。并且在打开解码器的时候,显示解码器的图像。
Chris Meng:
回复 bin li2:
你好,
1. 离线方式能复现问题么?也就是你自己做一个机制本地解码显示。
2.能否评估一下是否需要不停的打开/关闭解码器?在未收到解码数据的时候,link是可以被hold住,而显示是显示最新的一帧数据的。显示的内容,你也是可以修改的。
bin li2:
回复 Chris Meng:
离线方式还没有去尝试,因为和现有的流程不是完全一致。不过最后如果没有办法,只能去尝试了。
打开解码器的时候,显示还是显示的本地画面,而不是解码器的画面,直到解码器收到key frame并且正常解码之后,才会更改显示内容,改为显示解码器的内容。
再请教个题外话:解码器没有解码数据的时候,link被hold住,这个时候怎么修改显示内容啊,不会是修改成显示其他的link吧?。
bin li2:
回复 bin li2:
最新测试效果
我解码器打开之后不关闭,其他操作和上述一样
不会出现绿屏。
可能是关闭解码器再打开,是不是频繁了有问题?还是时序上有控制?需要delay什么的?