<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于嵌入式Linux流媒體播放器系統軟硬件解決方案

基于嵌入式Linux流媒體播放器系統軟硬件解決方案

作者: 時(shí)間:2012-06-15 來(lái)源:網(wǎng)絡(luò ) 收藏


3.2.2 TS 流解析實(shí)現

本文引用地址:http://dyxdggzs.com/article/148904.htm

  在MPEG-2 中根據傳輸媒體的質(zhì)量不同定義了兩種復合信息流:傳送流(TS:Transport Stream)和節目流(PS:Program Stream)。TS 流與PS 流的區別在于TS 流的包結構是固定長(cháng)度的,而PS 流的包結構是可變長(cháng)度的。PS 包TS 包在結構上的這種差異,致使TS 流比PS 流對傳輸誤碼的抵抗能力更強,因此在本設計中的網(wǎng)絡(luò )多媒體數據采用了TS 的封裝格式。TS 包的結構如圖3 所示,由包頭和包數據兩部分組成,包頭長(cháng)度占4B,自適應區和包數據共占184B,整個(gè)TS 包長(cháng)度相當于4 個(gè)ATM 包長(cháng)。

  圖3 TS 包的結構

  圖3 TS 包的結構

  因為在TS 流里可以填入很多東西,所以制定TS流標準的機構就規定了PSI (Program SpecificInformation)表,其作用是從一個(gè)攜帶多個(gè)節目的某一個(gè)TS 流中正確找到特定的節目。

  PSI 表包括以下四個(gè)表:

 ?。?)PAT 表(Program Association Table)即節目關(guān)聯(lián)表,它的主要作用是指出該傳輸流ID,以及該路傳輸流中所對應的幾路節目流的MAP 表和網(wǎng)絡(luò )信息表的PID.

 ?。?)PMT 表(Program Map Table)即節目映射表,該表的PID 由PAT 提供,通過(guò)該表可以得到一路節目中包含的信息。

 ?。?)CAT 表(Conditional Access Table)即條件訪(fǎng)問(wèn)表,PID 是0x01.CAT 攜帶的是服務(wù)器的私有信息(CA 就需要使用該表格實(shí)現節目的解密)。

 ?。?)NIT 表(Network Information Table) 即網(wǎng)絡(luò )信息表,該表包括數字電視網(wǎng)中所有的傳輸流的物理傳輸網(wǎng)信息,包含節目的頻道調諧參數、頻率、符號率等,這些信息使得接收機可以按照用戶(hù)的選擇以很少的延時(shí)或無(wú)延時(shí)地改變頻道、調諧參數,正確地解碼出TS。

  所以TS 流解析流程如圖4所示:先接收一個(gè)負載里為PAT 的數據包,在整個(gè)數據包里找到一個(gè)PMT 包的ID.然后再接收一個(gè)含有PMT 的數據包,在這個(gè)數據包里找到有關(guān)填入數據類(lèi)型的ID.之后就在接收到的TS 包里找到含有這個(gè)ID 的負載內容就是填入的信息。根據填入的數據類(lèi)型的ID 的不同,在TS 流復合多種信息,解有這些信息的傳輸包即可解出音視頻的PES 包,最終解出音頻流和視頻流。

  圖4 TS 流解析流程

  圖4 TS 流解析流程

  由于時(shí)間和資源有限,本設計中移植成熟的QT/Embedded 庫到機頂盒的,作為其圖形界面類(lèi)庫。Qt/Embedded 采用frame buffer (幀緩沖)作為底層圖形接口。同時(shí),將外部輸入設備抽象為keyboard 和mouse 輸入事件。Qt/Embedded 的應用程序可以直接寫(xiě)內核緩沖幀,這避免開(kāi)發(fā)者使用繁瑣的XLIB/Server 系統。界面程序流程圖如圖5 所示。

  圖5 界面程序流程圖

  圖5 界面程序流程圖

  4 結語(yǔ)

  本系統利用TQ2440 硬件平臺的優(yōu)勢,將2.6.14 內核移植到開(kāi)發(fā)板中,設計實(shí)現了一款 的機頂盒流,完成了其與網(wǎng)絡(luò )接口的實(shí)現,通過(guò)TS 流的解析實(shí)現,提供了對主流的MPEG-2、MPEG-4、H.264 等格式文件的支持。該系統具有良好的可移植性和可擴展性,能夠滿(mǎn)足市場(chǎng)需求的不斷變化。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>