解碼器的bug筆記

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出現有用的堆棧,反彙編,走讀代碼,多出現在多通道的場景。一個屏幕播放幾路視頻。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章