<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è) > 嵌入式系統 > 設計應用 > 基于S3C6400的移動(dòng)多媒體廣播終端設計

基于S3C6400的移動(dòng)多媒體廣播終端設計

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

(2)判斷有沒(méi)有音頻數據,如果有,將它們都插入到音頻緩沖區;
(3)阻塞,等待數據到來(lái);
(4)當有數據到來(lái)時(shí),轉到第(1)步。
音視播放器模塊共有4個(gè)子模塊:緩沖區管理、音視頻同步、音視頻解碼、視頻顯示。
2.3.1 緩沖區管理
一共2個(gè)隊列,音頻緩沖隊列,視頻緩沖隊列。每幀數據放入緩沖區,成員分別為幀長(cháng),幀類(lèi)型(視頻有,音頻無(wú)),時(shí)間戳,數據指針。幀長(cháng)表示幀數據長(cháng)度,幀類(lèi)型里,1表示關(guān)鍵幀,0表示非關(guān)鍵幀,時(shí)間戳表示幀數據播放的時(shí)間,數據指針指向幀數據緩沖區。當有新的數據到來(lái)時(shí),構造一個(gè)幀成員,填入各項參數,然后根據時(shí)間戳,將他插入到緩沖隊列,播放時(shí)間近的放在前面。流程如下:
(1)首先構造一個(gè)幀緩沖成員;
(2)按照幀數據內容填充幀緩沖;
(3)根據時(shí)間戳,按照近的在前面的原則,放入緩沖區隊列。
2.3.2 音視頻同步
音視頻數據始終與系統時(shí)間進(jìn)行同步,起初初始化時(shí),先在緩沖區存放1 s的數據。因為系統時(shí)間與發(fā)送的數據時(shí)間戳不一定相同,所以不用絕對時(shí)間,而是以緩沖區的第一幀時(shí)間戳為開(kāi)始時(shí)間,后面的數據都以與這幀數據的時(shí)間差這個(gè)相對時(shí)間為準。
視頻和系統時(shí)間同步的流程如下:
(1)判斷緩沖隊列是否為空,如果是空,休眠10 ms;
(2)如果非空,從緩沖隊列取出一幀,判斷這幀數據是否已經(jīng)過(guò)時(shí),如果超過(guò)播放時(shí)間100 ms以上,則判斷幀類(lèi)型,如果是非關(guān)鍵幀,丟掉這幀數據,否則處理這幀數據,然后跳到第(1)步;
(3)如果這幀數據剛剛超過(guò)播放時(shí)間并且超過(guò)時(shí)間不超過(guò)100 ms,則處理這幀數據,然后跳到第(1)步。
音頻和系統時(shí)間同步的處理流程如下:
(1)判斷音頻緩沖區是否為空,如果是空,休眠10 ms;
(2)如果非空,取出一幀數據,判斷是否已經(jīng)超過(guò)播放時(shí)間100 ms,如果是,丟棄這幀數據,跳到第(1)步;
(3)否則,處理這幀數據,跳到第(1)步。
2.3.3 音視頻解碼
數字電視信號目前音頻采用的是AAC編碼,利用開(kāi)源解碼庫libfaad2來(lái)解碼,libfaad2的使用流程如下:
(1)首先對進(jìn)行配置,設置一些解碼參數,例如采樣率,聲道數等;
(2)然后初始化;
(3)如果有需要解碼的音頻幀,依次調用NeAAC―DecDecode進(jìn)行解碼;
(4)當音頻幀都解碼完畢,需要關(guān)閉。
三星的芯片提供了多種格式視頻的硬件編解碼器,簡(jiǎn)稱(chēng)為MFC(Multi―format Video Codec),支持的功能有:MPEG一4 Simple Profile編解碼;H.264/AVC Baseline Profile編解碼;H.263 P3編解碼;VC一1(WMV9)Main Profile編解碼;支持多任務(wù),如同時(shí)完成1路編碼和3路解碼;支持多格式,如同時(shí)進(jìn)行MPEG一4編碼和H.264解碼。理論上MFC性能可以達到全雙工的720*480 30幀/s(或720*576 25幀/s)的編解碼。
MFC驅動(dòng)負責直接控制MFC硬件完成實(shí)際的編解碼操作,提供類(lèi)似字符設備的接口;MFC API封裝了底層驅動(dòng)的控制接口,給上層提供函數調用的接口方式,解碼器調用流程如圖4所示。

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

2.3.4 視頻顯示

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


評論


相關(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>