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