解码器的bug笔记

来源:互联网 发布:淘宝买电玩人马皮肤 编辑:程序博客网 时间:2024/06/14 17:54

1.播放码流卡顿,部分码流只有3个字节的nal,切割03后插入seg队列不太兼容,之前的容错导致插不进去seg队列,导致卡顿,这种没有意义的nal直接释放掉


2.增加起播的速度,按解码序快速输出第一帧,不经过DPB管理输出后再插入DPB重新按照显示序输出,但码流错误,第二帧和第一帧一样,但是硬件error rate到98%,代码没处理这种特殊情况,卡顿。


3.I帧播放,单独的接口,(屏保切换功能),I帧播放和正常播放切换,销毁时多次调用了全局释放内存的接口(销毁I帧接口,销毁通道),帧存管理的那一片内存,节点多次减小,最后代码以为没有内存分配了去申请其他地址的内存,发生踩内存。


4.调用解码器的接口,返回ESbuffer可用的内存大小,返回的值不够真实,因为没算上头部的大小,按照不同的情况修改计算,返回真实可用的值


5.频繁切台,脚本测试跑几个小时,程序挂死在串口。创建了一个线程,但是销毁驱动的时候没有真正的销毁,导致太多线程,调度不及时,程序挂掉。用top命令一看就好了。但是打印看代码花了几天的时间。


6.rtos系统,调用菜单花屏,定位是任务调度不及时,提高解码的优先级,10到6就OK,但是这个改动又给其他模块带来影响。


7.获取系统函数的时候突变多1秒,程序跑1个多小时,误以为中断没有响应,强行复位,overflow。仅在S3的1080P DTV场景才发现这个问题。其他平台性能很强没有出现。


8.sorenson码流,移植产生的bug,切割完插入seg队列,那半包seg没有插进去,属于宏块级的,丢掉了,导致花屏。这个问题把各个阶段的码流存在文件里面,ffmpeg抽出来的数据对比分析。


9.若干个死锁的问题,开内核的deadlock出现有用的堆栈,反汇编,走读代码,多出现在多通道的场景。一个屏幕播放几路视频。

原创粉丝点击