專利名稱::通用視頻播放器的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種播放器。
背景技術(shù):
:當(dāng)前視頻媒體播放技術(shù)得到空前應(yīng)用,幾乎涉及信息技術(shù)的領(lǐng)域都會(huì)用到該技術(shù)。微軟Microsoft公司推出的DirectX技術(shù)大大推動(dòng)了視頻播放技術(shù)的廣泛應(yīng)用,臺(tái)式機(jī)上幾乎所有的視頻播放器都是基于DirectXSDK開發(fā)的。但微軟Microsoft提供的二進(jìn)制DirectXSDK只能開發(fā)運(yùn)行在x86CPU和Windows操作系統(tǒng)的播放器上,不能運(yùn)行在其它平臺(tái)上?,F(xiàn)今社會(huì)是一個(gè)隨身娛樂的時(shí)代,蘋果公司的iPod隨身聽、索尼公司的PS2游戲機(jī)、能聽MP3也能玩JavaGame的手機(jī)等都是當(dāng)紅代表作,然而近年來(lái)又有一種隨身娛樂設(shè)備得到重視,即是便攜式多媒體播放器PMP(PortableMediaPlayer),PMP結(jié)合了微型液晶顯示器與硬盤,可瀏覽圖片、播放視頻,甚至可看電視、聽收音機(jī),集多媒體影音于一體。這類系統(tǒng)的硬件構(gòu)架千差萬(wàn)別飛思卡爾Freescale的i.MX21用ARM926EJ-S,i.MX31用ARM11;飛利浦Philips的PNX0101/0102用ARM7TDMI;德州儀器TI的TMS320DM270用TIDSP6000;Intel的PXA255、PXA270用XScale;AMD的AlchemyAu1200用MIPS32;Philips的PNX1500用多媒體處理器TriMediaDSP。這類系統(tǒng)的軟件平臺(tái)也五花八門vxWorks、EmbeddedLinux、RTEMS、WinCE等實(shí)時(shí)操作系統(tǒng)被不同開發(fā)商大量采用。Microsoft的DirectXSDK不能在這些平臺(tái)上使用,迫切需要一種通用的開放視頻播放器構(gòu)架能夠運(yùn)行在這些系統(tǒng)上。
發(fā)明內(nèi)容本發(fā)明的目的是提供一種不受硬件平臺(tái)和軟件平臺(tái)限制的通用視頻播放器。本發(fā)明的目的是通過下述方案實(shí)現(xiàn)的包含控制部件,設(shè)置讀取輸入媒體的輸入部件和將輸入媒體分解的分離部件;在分離部件輸出端設(shè)置視頻解碼器和音頻解碼器;在視頻解碼器輸出端設(shè)置提供不同視頻設(shè)備統(tǒng)一接口的視頻輸出部件;在音頻解碼器輸出端設(shè)置提供不同音頻設(shè)備統(tǒng)一接口的音頻輸出部件。本發(fā)明具有良好的跨硬件平臺(tái)和軟件平臺(tái)移植的能力。簡(jiǎn)單清晰明了的部件結(jié)構(gòu)能方便客戶將特殊的音視頻效果處理算法集成到該框架中。而且有良好的媒體處理接口,用戶可根據(jù)應(yīng)用場(chǎng)合的需要,嵌入各類音視頻解碼器、效果處理器。并能夠成功開發(fā)出PXA/WinCE、ARM9/EmbeddedLinux、TITMS320DM270/裸片上視頻播放器。由于視頻設(shè)備可以提供不同顏色空間的接口,所以視頻解碼器可以根據(jù)設(shè)備選擇輸出的顏色空間,從而可以提供最高效的解碼過程,減少消耗在顏色空間轉(zhuǎn)換上的時(shí)間。通用視頻播放器的部件少,結(jié)構(gòu)簡(jiǎn)單,數(shù)據(jù)傳遞次數(shù)少,可以提高效率。圖1是本發(fā)明的結(jié)構(gòu)示意圖;圖2是控制部件的播放控制循環(huán)的流程示意圖。具體實(shí)施例方式參照?qǐng)D1、圖2,本發(fā)明由控制部件1、輸入部件2、分離部件3、視頻解碼器4、音頻解碼器5、視頻輸出部件6和音頻輸出部件7組成。輸入部件2讀取輸入的媒體(文件、系統(tǒng)標(biāo)準(zhǔn)輸入、VCD、DVD、網(wǎng)絡(luò)等等),輸入部件2需要知道的信息是緩存的大小、檢索、字節(jié)或任意大小塊的讀和控制函數(shù)。描述輸入流的信息包括文件的句柄、流類型、扇區(qū)大小、緩存大小、當(dāng)前位置、文件中的偏移位置、網(wǎng)絡(luò)地址、高速緩存的線程號(hào)、網(wǎng)絡(luò)流的控制結(jié)構(gòu)(包括網(wǎng)絡(luò)流狀態(tài)、緩存、帶寬、流讀寫函數(shù)信息)和輸入媒體特有的信息。通過這個(gè)結(jié)構(gòu)可以訪問打開的一個(gè)輸入流中的數(shù)據(jù)。分離部件3將輸入的媒體分解成音頻、視頻和DVD字幕通道,并給各個(gè)通道提供緩存的功能。分離部件3首先實(shí)現(xiàn)一個(gè)基礎(chǔ)框架,這個(gè)框架對(duì)所有媒體格式提供統(tǒng)一的接口,然后對(duì)于某一個(gè)特定格式實(shí)現(xiàn)解析器。描述解析器的信息包括輸入流指針、輸入流中當(dāng)前位置、文件格式、解析器類型、音頻、視頻和DVD字幕解析流的指針、格式特有的信息。在分離部件3輸出端的視頻解碼器4和音頻解碼器5分別負(fù)責(zé)將視頻和音頻通道的數(shù)據(jù)解碼成視頻流和音頻流。在視頻解碼器4輸出端的視頻輸出部件6對(duì)不同的視頻設(shè)備提供一個(gè)統(tǒng)一的接口。視頻輸出的描述信息包括視頻輸出設(shè)備描述信息、設(shè)備初始化函數(shù)、設(shè)備配置函數(shù)、設(shè)備控制函數(shù)、設(shè)備的RGB輸出函數(shù)、設(shè)備的YUV輸出函數(shù)、設(shè)備的OSD輸出函數(shù)、設(shè)備的屏幕刷新函數(shù)、設(shè)備關(guān)閉函數(shù)。在音頻解碼器5輸出端的音頻輸出部件7對(duì)不同的音頻設(shè)備提供統(tǒng)一的接口。音頻輸出的描述信息包括音頻設(shè)備描述信息、設(shè)備的初始化、關(guān)閉、控制函數(shù)、設(shè)備的重新啟動(dòng)、播放,暫停播放、暫?;謴?fù)函數(shù)、設(shè)備的獲得剩余空間、播放時(shí)間的函數(shù)。第三方只要遵循API和數(shù)據(jù)接口規(guī)范,可以非常容易地將各部分組件集成進(jìn)來(lái)??刂撇考?的作用就是將各個(gè)模塊連接在一起,并保持音視頻同步。同時(shí)與用戶控制程序交互,完成播放器使用者對(duì)播放器的控制。用戶控制程序與系統(tǒng)所采用的圖形庫(kù)密切相關(guān)。典型的播放控制循環(huán)流程如圖2所示通過實(shí)現(xiàn)這個(gè)通用視頻播放器構(gòu)架,同樣可以解決媒體處理中遇到的那些問題,同時(shí)這個(gè)播放器還可以很容易的移植到不同操作系統(tǒng)平臺(tái)上,因?yàn)椴僮飨到y(tǒng)相關(guān)的部分都隱藏在控制部件1,輸入部件2,視頻輸出部件6,音頻輸出部件7的通用框架下面,移植時(shí)只需重寫這些與平臺(tái)相關(guān)的部分。視頻解碼器4和音頻解碼器5提供了統(tǒng)一的接口,所以第三方可以方便的為播放器提供新的解碼器,現(xiàn)有的解碼器也可以通過提供通用視頻播放器的接口而得到重用,這樣視頻播放器可以支持當(dāng)前幾乎所有的文件格式。權(quán)利要求1.一種通用視頻播放器,包含控制部件(1),其特征在于設(shè)置讀取輸入媒體的輸入部件(2)和將輸入媒體分解的分離部件(3);在分離部件(3)輸出端設(shè)置視頻解碼器(4)和音頻解碼器(5);在視頻解碼器(4)輸出端設(shè)置提供不同視頻設(shè)備統(tǒng)一接口的視頻輸出部件(6);在音頻解碼器(5)輸出端設(shè)置提供不同音頻設(shè)備統(tǒng)一接口的音頻輸出部件(7)。全文摘要通用視頻播放器,含控制部件,是設(shè)讀取輸入媒體的輸入部件和將輸入媒體分解的分離部件,在分離部件輸出端設(shè)視頻解碼器和音頻解碼器,在視頻解碼器輸出端設(shè)提供不同視頻設(shè)備統(tǒng)一接口的視頻輸出部件,在音頻解碼器輸出端設(shè)提供不同音頻設(shè)備統(tǒng)一接口的音頻輸出部件。本發(fā)明有良好的跨硬件軟件平臺(tái)移植的能力。清晰明了的部件結(jié)構(gòu)方便客戶將特殊的音視頻效果處理算法集成到該框架中,而且有良好的媒體處理接口,用戶根據(jù)應(yīng)用場(chǎng)合需要,嵌入各類音視頻解碼器、效果處理器,能成功開發(fā)出PXA/WinCE、ARM9/EmbeddedLinux、TITMS320DM270/裸片上視頻播放器。視頻解碼器可根據(jù)設(shè)備選擇輸出的顏色空間,提供高效率解碼過程。結(jié)構(gòu)簡(jiǎn)單,傳遞效率高。文檔編號(hào)H04N7/26GK1801913SQ20051006185公開日2006年7月12日申請(qǐng)日期2005年12月6日優(yōu)先權(quán)日2005年12月6日發(fā)明者郁發(fā)新,陳隆,陳宏欽,郎曉黎申請(qǐng)人:浙江大學(xué)