基于SMP8654的MKV播放器設計與實(shí)現
媒體文件的播放流程一般包括如下幾個(gè)步驟:系統初始化、判斷文件類(lèi)型、文件解析、設置硬件解碼器和音視頻解碼,其中文件解析和音視頻解碼是關(guān)鍵部分。由于SMP8654集成了完善的音視頻硬件解碼器,解碼工作主要由硬件完成,我們只需將音視頻數據按要求送入相應的解碼緩沖區即可。整體的軟件架構如圖2所示。本文引用地址:http://dyxdggzs.com/article/166596.htm
3 系統關(guān)鍵技術(shù)設計和實(shí)現
3.1 MKV文件解析
MKV文件解析主要是對MKV格式的各個(gè)組成元素進(jìn)行解析,以獲得必需的音視頻參數和媒體數據。MKV作為一種封裝格式,實(shí)際的視頻和音頻數據都被封裝到某一個(gè)子模塊中,要想獲得實(shí)際的數據,必須首先對文件進(jìn)行解析,并且文件解析貫穿播放的全過(guò)程。能否有效并正確的解析,關(guān)系到讀取數據的準確性,進(jìn)而影響播放的效果。MKV格式采用可變長(cháng)編碼,能夠減少存儲空間,另一方面,也給解析帶來(lái)了新問(wèn)題。
MKV文件格式建立在EBML(Extensible Binary MetaLanguagel基礎上,EBML是一種類(lèi)似于XML格式的可擴展二進(jìn)制元語(yǔ)言,使用可變長(cháng)度的整數存儲,以節省空間。EBML的基本結構是典型的TLV結構,有三部分組成:
ID標志屬性類(lèi)型,size為后面data部分的大小,data部分為ID所標識屬性的實(shí)際數據,ID和size均為可變長(cháng)編碼的整數。整數的長(cháng)度為length=1+[number of leading zero bits]。前面的零的個(gè)數最多為7個(gè),即最多能表示56個(gè)比特的整數。文件中不允許出現大于56比特的數。
adc相關(guān)文章:adc是什么
評論