mosaic調(diào)用終端接口及不同盒子問題總結_第1頁
mosaic調(diào)用終端接口及不同盒子問題總結_第2頁
mosaic調(diào)用終端接口及不同盒子問題總結_第3頁
mosaic調(diào)用終端接口及不同盒子問題總結_第4頁
mosaic調(diào)用終端接口及不同盒子問題總結_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、Mosaic調(diào)用終端接口及不同盒子問題總結文檔更新記錄日期版本更新內(nèi)容更新人2011.11.16V0.0.1Porting接口及各盒子問題解決方案陳日強中間件調(diào)用porting接口(馬賽克部分)1、配置USE_VIDEO_MOSAIC_OUTPUT_TYPE=VIDEO_MOSAIC_TS 時,拼接后的數(shù)據(jù)送往底層時調(diào)用的接口INT32_Tipanel_porting_demux_ioctl(IPANEL_DEMUX_IOCTL_eop,VOID*arg)op值為IPANEL_DEMUX_PUSH_STREAM2、配置USE_VIDEO_MOSAIC_OUTPUT_TYPE=VIDEO_MOS

2、AIC_PES或VIDEO_MOSAIC_ES時,拼接后的數(shù)據(jù)送往底層時調(diào)用的接口INT32_Tipanel_porting_vdec_ioctl(UINT32_Tdecoder,IPANEL_VDEC_IOCTL_eop,VOID*arg) op值為IPANEL_VDEC_PUSH_STREAM3、推送音頻數(shù)據(jù)的接口INT32_Tipanel_porting_adec_ioctl(UINT32_Tdecoder,IPANEL_ADEC_IOCTL_eop,VOID*arg)op值為IPANEL_ADEC_PUSH_STREAM4、配置USE_MOSAIC_NEW_POSITION時,中間件調(diào)

3、用這個接口實現(xiàn)視頻偏移INT32_T ipanel_porting_display_ioctl(UINT32_T display, IPANEL_DIS_IOCTL_e op, VOID *arg)op值為IPANEL_DIS_SET_WIN_LOCATIONST7162播放馬賽克問題卡及解決方案解決播放馬賽克卡方案:1、前端OCG只用1個馬賽克視頻,配置2M的帶寬下播,終端接收1個視頻時,可以看到視頻有回溯的現(xiàn)象,說明不是帶寬不夠?qū)е驴ǖ?、錄制拼接前和拼接后的碼流及中間件推到porting的流和porting送解碼器的流,分別分析這四個流,發(fā)現(xiàn)這四個流的數(shù)據(jù)都是好的3、通過分析碼流發(fā)現(xiàn)問題

4、出現(xiàn)在porting,數(shù)浪的工程師也大致找出了問題的原因,并對porting做如下修改:由原來的memcpy方式改為DMA方式和中間件送給porting時的拷貝過程改為DMA,通過這種方法可以提高速度,減輕CPU的負擔ST的盒子在送數(shù)據(jù)到demux前cc_control會做校驗,它會把校驗有錯的數(shù)據(jù)丟掉,然后再送到demux上,這樣會造成一部分數(shù)據(jù)丟失。現(xiàn)在把送數(shù)據(jù)到demux做校驗去掉,解決了馬賽克播放回溯問題了,播放卡的問題基本解決了4、以上問題都用文件方式(前端播放16個視頻,配30M帶寬)和UDP方式(前端播放16,32,48,59個視頻,帶寬分別用12M,16M,24M,32M)測試

5、過了,發(fā)現(xiàn)效果跟Hi311E的效果差不多。ST7162播放馬賽克問題卡及解決方案不過,現(xiàn)在在公司的測試還存在一些問題:1、ST7162盒子播放馬賽克2,3分鐘的時候會有一點卡,不過hi3110e的平臺也存在同樣的問題2、ST7162盒子在退出正在播放的馬賽克頁面后,重新進入馬賽克播放頁面時有問題:有時進不去,返回4408錯誤;有時可以進入播放頁面,但播放不了馬賽克BCM7405平臺播放馬賽克問題1、馬賽克除了44可以播放外,其它規(guī)格都不能播放原因:由于應用頁面設置視頻長寬和程序中數(shù)據(jù)不一致,目前程序里面是寫死小視頻拉伸后的大小解決方法:將程序里面的每個規(guī)格的小視頻拉伸后的參數(shù)跟應用設置的參數(shù)對

6、應起來2、BCM97405的demux是軟件實現(xiàn)的 ,DEMUX CALLBACK有問題,造成demux效率不高,從而影響到馬賽克正常工作。由于出現(xiàn)這個問題而沒人解決,所以現(xiàn)在不在這個平臺上測試馬賽克了,改為其它高清的平臺。至于這個平臺上的一些關于馬賽克的BUG也不必要處理了,現(xiàn)在已經(jīng)關閉。HI3716M平臺播放馬賽克問題1、HI3716M平臺mpeg2和h.264方式都播放不出視頻 原因:hi3716m平臺的porting支持pes流,之前未設置。 mosaic部分,之前只是對ts流方式進行了處理,未處理pes流播發(fā)的方式。解決方法:1、修改hi3716m底層和中間件宏配置由原先的TS流處理

7、改為PES,并且mosaic代碼中增加pes流功能代碼,解決了mpeg2播放不出的問題2、按上面方法修改,理論上是應該可以播放h.264的馬賽克,現(xiàn)在播放不出,可能是其它原因?qū)е?。查找其它原因發(fā)現(xiàn)播發(fā)的h264格式的音頻未配置好,所以一直沒能播出。經(jīng)過重新配置前端播發(fā)的h264格式mosaic的音頻,現(xiàn)在已經(jīng)能夠正常播出。2、退出正在播放的MPEG-2或H.264馬賽克頁面時,CPU占用率達98%以上 原因:信號量控制的代碼被替換掉了,其中一個線程的while循環(huán)一直在空跑。解決方法:換成以前的老庫測試發(fā)現(xiàn)沒這個問題,然后對比代碼中的不同,找到原因出在拼接前后的緩沖區(qū)處理線程中的處理邏輯不一樣

8、,恢復以前的信號量的控制方式就解決了這個問題HI3716M平臺播放馬賽克問題3、馬賽克顯示壓縮變形且位置不居中原因:porting對mosaic顯示接口不完善解決方法:修改porting部分對mosaic顯示的接口代碼,修改ui中的顯示代碼。 HI3110E平臺播放馬賽克問題1、前端組播UDP馬賽克地址,終端接收UDP數(shù)據(jù)播放不了原因:通過udp方式創(chuàng)建小窗口管理器時,無法正常獲取窗口句柄解決方法:通過單步調(diào)試方法找出問題原因,代碼中實現(xiàn)udp和cable方式,小窗口創(chuàng)建的方法是相同的,只要將udp的創(chuàng)建代碼和cable方式保持相同即可2、前端播發(fā)一個卡拉ok的視頻流,終端播放效果卡原因:前端

9、轉(zhuǎn)碼GOP參數(shù)配置錯誤解決方法:更改前端轉(zhuǎn)碼GOP參數(shù)配置,使卡拉OK的視頻流轉(zhuǎn)碼的GOP參數(shù)跟其它視頻流的GOP參數(shù)保持一樣3、進入一個前端沒有下播友碼流的馬賽克頁面,再進入有下播碼流的4x4頁面就播放不了了 頁面在銷毀mosaic的時候會調(diào)用中間件銷毀窗口的接口。但是,由于判斷條件設置錯誤導致代碼沒有執(zhí)行銷毀操作而直接返回。修改dvb中銷毀窗口的判斷條件將 if (!me | !me-mosaicHandle) return -1; 改為 if (!me ) return -1; HI3110E平臺播放馬賽克問題4、播放1x1視頻有點卡,畫面出現(xiàn)馬賽克,聲音有時也會卡頓一下 原因:網(wǎng)絡環(huán)境

10、的影響,es復用為ts時,數(shù)據(jù)選擇的設置 解決方法:通過不斷地錄制碼流分析出錯的模塊代碼,分析具體的相關代碼邏輯。在網(wǎng)絡環(huán)境較好的時候測試,修改了es復用為ts時,由于碼流中有些幀數(shù)據(jù)量比較大,數(shù)據(jù)處理的速度較慢時延時等待,這樣解決播放卡的問題5、播放4*4馬賽克視頻時,終端接收少于16個視頻顯示不出 原因:由于在向拼接模塊推送ts類型的mosaic流時,沒有將時間值一同送下,導致緩沖區(qū)溢出解決方法:重新放開記錄時間信息的代碼,將時間值送到拼接模塊HI3110E平臺播放馬賽克問題6、退出馬賽克頁面后死機原因:mosaic窗口創(chuàng)建和釋放時,申請空間和釋放空間的地址不一致。 解決方法:通過在退出m

11、osaic頁面,銷毀窗口的地方添加打印信息可以發(fā)現(xiàn):每次都是在銷毀了第一個窗口,開始銷毀第二個窗口的時候死機。運行到 me-mosaic_free(player-URLsi); 這里時死機。將mosaic部分申請空間和釋放空間的代碼統(tǒng)一為sdk的調(diào)用后,問題解決了。7、播放6x6,7x7一段時間后,畫面卡住不動,過一會又好了 原因:拼接模塊拼接處理問題解決方法:修改拼接模塊拼接代碼HI3110E平臺播放馬賽克問題8、播放3x3,5x5,6x6,7x7馬賽克,視頻出不來,但有時會出現(xiàn)聲音 原因:拼接模塊mosaic背景設置問題導致的解決方法:修改背景設置9、開始播放馬賽克時正常,翻到下一頁時播放

12、馬賽克就會卡了原因:網(wǎng)絡原因,es復用為ts時,對數(shù)據(jù)空間不足的處理有問題解決方法:優(yōu)化服務器,修改es復用為ts時,對數(shù)據(jù)空間不足時的處理方法 10、長時間播放5x5,6x6,7x7去B幀的馬賽克,會有一兩秒卡頓 可能是網(wǎng)絡原因?qū)е?,因為有段時間測試不卡11、播放4x4馬賽克,音視頻不同步 音視頻不同步確定是受到是網(wǎng)絡的影響導致的,當不同步時過段時間會自動恢復到同步狀態(tài)。問題不解決HI3110E平臺播放馬賽克問題12、同頻點同時播發(fā)視頻馬賽克和場景馬賽克時,視頻馬賽克不能正常播放原因:頁面配置問題。 視頻mosaic和場景mosaic配置時的ait的pid和tag值相同,導致沖突解決方法:不

13、同頻點不同配置對比,發(fā)現(xiàn)問題出現(xiàn)在前端OCG配置上。修改播放馬賽克的AOC配置,修改ait的pid和tag值為不同值就可以了。13、數(shù)視導航(視頻馬賽克)應用中小視頻伴音正常,小視頻圖像間歇性停頓、局部花屏(馬賽克)。原因:與前端播放的碼流有關。當馬賽克應用路徑同時有UDP和文件方式,就會出現(xiàn)這種情況解決方法:經(jīng)多次試驗,逐層排查,發(fā)現(xiàn)與OCG服務器有關:當OCG播發(fā)的Mosaic應用中小視頻的路徑同時有UDP和File時,會有小視頻圖像停頓現(xiàn)象;而如果OCG播發(fā)的Mosaic應用中小視頻的路徑全為UDP或File時,則不會出現(xiàn)小視頻圖像停頓現(xiàn)象。 HI3110E平臺播放馬賽克問題14、播放馬

14、賽克視頻,所有的小視頻均會出現(xiàn)卡和馬賽克的現(xiàn)象原因:打印太多,且代碼中es復用為ts時,ts包的編號未設置好解決方法:錄流分析,錄制拼接前與拼接后的碼流發(fā)現(xiàn),拼接前的碼流是好的,拼接模塊錄制的es碼流也是好的,但拼接后復用成ts碼流是有問題。修改有問題代碼,重新設置es復用為ts時的編號方式,去掉打印,測試OK15、Release分支編譯的庫視頻馬賽克中的小視頻在播放時,會出現(xiàn)馬賽克的現(xiàn)象原因:porting 的demux模塊存在問題:1、開辟了內(nèi)存沒有看到釋放; 2、pushstream 時沒有對遺留包做處理。 解決方法:查看前端配置,項目配置,盒子CPU占用率,調(diào)高馬賽克進程優(yōu)先級,與老庫

15、對比,新庫+舊porting, 舊庫+新porting等方法查找馬賽克卡的原因,發(fā)現(xiàn)用舊的porting播放不卡,然后對比新舊porting代碼的不同,新的porting有如下問題:HI3110E平臺播放馬賽克問題1、 在init時,舊的demux創(chuàng)建了三個demux,一個用來過濾psi信息,一個用來過濾音視頻數(shù)據(jù),一個預留。新的只創(chuàng)建了一個。2 、在新的demux的409行,ipanel_porting_demux_destroy_channel中,如果channel的type為 IPANEL_DMX_VIDEO_CHANNEL,則直接return 了,會導致該類型的channel不能銷毀,

16、一直占用底層資源。3、舊demux中的602行HI_UNF_DMX_OpenChannel前有: /* 設置通道pid,每次open都必須重設,否則沒數(shù)據(jù),lixq */ ret = HI_UNF_DMX_SetChannelPID(pch-idx, pch-pid);新的demux中HI_UNF_DMX_OpenChannel前沒有做SetChannelPID的操作。對比新舊demux代碼并修改后,測試不卡了16、release_2009的庫進入馬賽克應用向右移動焦點兩次或者三次,發(fā)生死機原因:創(chuàng)建窗口時申請空間的方法和銷毀窗口時釋放空間的方法沒有對應解決方法:抓LOG,抓堆棧,分析log和

17、堆棧,找到死機原因,修改銷毀窗口時釋放空間的方法,使之與創(chuàng)建時申請空間的方法一致。 HI3110E平臺播放馬賽克問題17、長時間播放數(shù)視導航(視頻馬賽克)應用,移動焦點伴音切換慢(正常大概1秒)原因:音頻緩沖區(qū)緩存了一部分數(shù)據(jù),切換音頻時由于緩沖區(qū)中的數(shù)據(jù)在繼續(xù)處理,因此導致音頻切換延遲解決方法:切換音頻時,清除一下解碼器中的緩沖數(shù)據(jù),且使用關閉打印的庫18、場景馬賽克和視頻馬賽克只顯示32路視頻,首頁與第二頁都只顯示32路視頻原因:庫里虛擬filter只有32個解決方法:分析Log,發(fā)現(xiàn)log中有大量的:././src/dvbcore/release_2009/proj-dvbcore/in

18、clude/./lib_dsmcc/dsmcc_oc_ctrl.c(1649) : assert failed! filter創(chuàng)建失敗的打印。檢查配置中是否加上宏NO_USE_SINGLE_PHYSICAL_FILTER,盒子物理filter一般是32個,有可能是這個宏導致。深入分析,是庫里做了設置,修改代碼,問題解決。高斯貝爾-NEC(40528)平臺播放馬賽克問題1、進入馬賽克播放頁面后,按菜單、返回和退出鍵頁面都沒跳轉(zhuǎn),還是停在播放頁面原因:在退出ip方式的播放頁面時,系統(tǒng)會設置demux的數(shù)據(jù)來源。該平臺不支持此種方式解決方法:通過不斷修改代碼,縮小問題的代碼范圍,然后不斷得編庫測試找

19、到問題所在。最終定位在:去掉在退出ip方式的播放頁面時,系統(tǒng)會設置demux的數(shù)據(jù)來源。取消設置后,測試發(fā)現(xiàn),系統(tǒng)能正常直播、oc stream及mosaic的各種情況。 2、進入一級馬賽克頁面,視頻能正常顯示出來,進入二級馬賽克頁面,視頻出不來,但有聲音原因:平臺窗口自適應未完善解決方法:通過修改代碼及應用發(fā)現(xiàn)跟頁面meta標簽有關,最終定位到問題出現(xiàn)在平臺窗口的自適應上,平臺自適應中有一種情況沒有考慮到,由平臺完善窗口自適應功能接口高斯貝爾-NEC(40528)平臺播放馬賽克問題3、播放馬賽克視頻卡并且最下面四個視頻卡住不動且出現(xiàn)花屏原因:1.ts連續(xù)計數(shù)位錯誤 - ts包頭4個固定字節(jié)中

20、的最后4個比特位,此字段是隨著每個具有相同pid值的傳輸流分組而遞增。如果ts流中的adaption_field_control 等于00或者 10時,不該遞增,也就是說等于 01或11時,同一pid分組的均需進行遞增。且達到最大值0 x0f后,回卷為0。ts的PES長度大于64KB分包 - 當在源PES中,還沒進行拆分PES,一幀數(shù)據(jù)長度大于64KB的,經(jīng)過中間件處理重組ts后,解碼輸出視頻時,會有出現(xiàn)丟幀(但不是所有的整一幀數(shù)據(jù),只是后面緊隨的同一幀數(shù)據(jù)丟失了)。也就是說當 第一個188個字節(jié)的ts包,包頭前4個字節(jié)中的 pay_load_unit_start_indicator 為0 x01時,為1個單獨的PES分組在ts分組中開始,然后后面緊隨的 pay_load_unit_start_indicator 為0 x00的ts包后面的有效數(shù)據(jù)是同屬前面的PES分組中的實際數(shù)據(jù)。但是中間件在一幀數(shù)據(jù)大于64KB時,進行采取了分包,意思是當大于64KB時,后面的數(shù)據(jù)會重新進行把本屬同一幀的數(shù)據(jù)進行拆分,在ts上表現(xiàn)為把大于64KB的數(shù)據(jù)從ts上進行了重新組一個PES分

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論