




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、一。多層支持的格式MPlayer是一個(gè)LINUX下的視頻播放器,它支持相當(dāng)多的媒體格式,無(wú)論在音頻播放還是在視頻播放方面,可以說(shuō)它支持的格式是相當(dāng)全面的。視頻格式支持:MPEG、AVI、ASF與WMV,快速時(shí)間與OGG/OGM、SDP、聚乙烯醇、GIF。音頻格式支持:MP3、WAV、OGG/OGM文件(沃爾比斯)、WMA與ASF、MP4、光盤音頻、XMMS。二。多層中頭文件的功能分析1.config.h/各種本地配置宏定義頭2.version.h/版本定義頭# DefineVersion 1.0 pre 7 try 2-3。4 .2 3.mp_msg.h/消息處理頭4.help_mp.h/根據(jù)
2、配置自動(dòng)生成的幫助頭#包含 help/help_mpen.h 5.cfg-mplayer-def.h/Mplayer運(yùn)行時(shí)的選項(xiàng)缺省值頭文件char*6.default_config=7.sub_reader.h/擁有格式自動(dòng)發(fā)現(xiàn)功能的字幕(副標(biāo)題(閱讀器8.libvo/video_out.h/該文件包含libvo視頻輸出的公共函數(shù)、變量9.libvo/font_load.h/有關(guān)字體裝載的例程10.libao2/audio_out.h/音頻輸出驅(qū)動(dòng)程序相關(guān)結(jié)構(gòu)定義和全局?jǐn)?shù)據(jù)11.libmpcodecs/dec_audio.h/音頻解碼12.libmpcodecs/dec_video.h/視頻
3、解碼13.libmpdemux/matroska.h/多路解復(fù)用,媒體容器格式matroska處理頭14.libmpdemux/stream.h/流處理15.libmpdemux/demuxer.h/多路解復(fù)用頭文件16.libmpdemux/s頭球攻門。h/媒體流頭處理17.get_path.c/路徑獲取頭文件18.spudec.h/SPU子畫面單元頭,DVD字幕流19.edl.h/剪輯控制清單20.m_option.h/選項(xiàng)類型處理頭21.m_config.h/配置處理頭文件三主層主流程簡(jiǎn)要說(shuō)明1.intmain()2.1)變量聲明,電影信息movieinfo:3.2)初始化,消息系統(tǒng)4.
4、播放下一個(gè)文件:5.3)播放文件文件名的循環(huán)gotoplay_next_file開始6 .維護(hù):7.4)主處理主要的8.5)播放真正主循環(huán)20103541while(!eof)9.while(!eof)10.5.1)播放音頻播放音頻2017 2064解碼_音頻(sh_audio,);11.5.2)播放視頻PLAYVIDEO,20682300decode_video(sh_video,);12.5.3)處理暫停中止13.5.4)處理EDL14.5.5)鍵盤事件處理,搜索24003216while(!brk_cmd15.(cmd=mp_input_get_cmd(0,0,0)!=空(16.5.6)
5、時(shí)間尋道(秒)if(seek_to_sec)17.5.7)尋道32433306,if(rel_seek_secs|abs_seek_pos)18.5.8)處理圖形用戶界面19.5.9)變更UpdateOSD20.5.10)找到字幕findsub21.5.11)處理X11窗口22.5.12)DVD字幕sub:23.24 .轉(zhuǎn)到下一個(gè)文件:25.6)播放結(jié)束,轉(zhuǎn)到下個(gè)文件goto_next_file:26.四。多層源碼分析從Mplayer.c的主要的開始處理參數(shù)1 . mconfig=m _ config _ new();2 . m _ config _ register _ options(mc
6、onfig,mplayer _ opts);3./ToDo :添加內(nèi)容到集合模塊注冊(cè)它們的選項(xiàng)4.MP _ input _ register _ options(mconfig);5 .解析_ CFG文件(mconfig);初始化mpctx結(jié)構(gòu)體,mpctx應(yīng)該是多層上下文的意思,顧名思義是一個(gè)統(tǒng)籌全局的變量。CPP查看平面圖1 . StaticMPContext * mpctx=mpctx _ s;2./notallfunctionsinmplayer。ctakethecontextas argumentyet3.staticMPContextmpctx_s=4.osd_function=O
7、SD_PLAY,5.開始_跳過(guò)=MP _ NOPTS _值,6.播放樹步=1,7.global_sub_pos=-1,8.set_of_sub_pos=-1,9.文件格式=DEMUXER_TYPE_UNKNOWN,10.loop_times=-1,11.#ifdefHAS_DVBIN_SUPPORT12.last_dvb_step=1,13.#endif14.;原型1./真正統(tǒng)籌全局的結(jié)構(gòu)2 . TypeDefStructumpContext 3.intosd _ show _ osd _ function5 . constao _ functions _ t *
8、 audio _ out6.play _ tree _ t * playtree7 . play _ tree _ ITER _ t * playtree _ ITER;8.play _ tree _ loop _ times11.12 .流_ t *流13.demuxer _ t * demuxer14.sh _音頻_ t * sh _音頻;15.sh _ video _ t * sh _ video16.demux _ stream _ t * d _ audio17.demux _ stream _ t * d _ video18.demux _
9、 stream _ t * d _ sub19.mixer _ tmixer20 . const VO _ functions _ t * video _ out21./為讀取翻轉(zhuǎn)而緩沖的幀。當(dāng)前是0或1路。22./這真的是可變的但是當(dāng)前有效的23./結(jié)構(gòu)。24.intnum _ buffered _ frames25.26./usettoretrydecodingafstartup/尋求startup _ decode _ retry28./顯示當(dāng)前幀29 .浮動(dòng)框架30.31./avsync :新幀應(yīng)顯示此音頻作者32./多(昆蟲綱)b
10、uffereddataleft .當(dāng)有更多數(shù)據(jù)時(shí)增加33./寫入下一幀,減少下一幀。34./在僅用于音頻的情況下,請(qǐng)使用tastimersinclusterseek35./bytheaudioCPUusagemeter .36.雙重延遲;37.38 . float begin _ skip/stream=open _ stream(文件名,0,mpctx-file _ format);2.文件格式文件還是電視流播放列表或DEMUXER_TYPE_UNKNOWN3.數(shù)字電視4.當(dāng)前模塊(_ m)記錄狀態(tài)vobsubopen _ stream handle _ playlistdupstream5
11、 . stream _ reset(mpctx-stream);6.stream_seek(mpctx-stream,mpctx-stream-start _ pos);7.f=fopen(stream_dump_name,“WB”);傾銷文件流8.流類型=流類型_數(shù)字視盤/=打開DEMUXERS 檢測(cè)文件類型=德穆。分離視頻流和音頻流1 . mpctx-demu xer=demux _ open(mpctx-stream,mpctx-2.file_format、audio_id、video_id、dvdsub_id、文件名);3.Demux過(guò)程4.demux_open5.get_demuxe
12、r_type_from_name6.7 . mpctx-d _ audio=mpctx-demu xer-audio;8 . mpctx-d _ video=mpctx-demux er-video;9 . mpctx-d _ sub=mpctx-demux er-sub;10 . mpctx-sh _ audio=mpctx-d _ audio-sh;11 . mpctx-sh _ video=mpctx-d _ video-sh;分離了之后就開始分別播放音頻和錄像這里只關(guān)心播放視頻1./*=PLAYVIDEO=2.VO _ pts=mpctx-sh _ video-timer * 90000.0;3.VO _ fps=mpctx-sh _ video-fps;4.如果(!mpctx-num_buffered_frames)5 .雙幀時(shí)間=
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 材料加工工藝優(yōu)化經(jīng)濟(jì)開發(fā)合同
- 老妖精造價(jià)工程師課件
- 大學(xué)近代史考試試題及答案
- 美術(shù)說(shuō)課課件風(fēng)箏
- 2025年企業(yè)安全事故案例分析
- 美術(shù)兒童教學(xué)課件模板
- 安全評(píng)價(jià)相關(guān)法規(guī)
- 機(jī)械工程師資格認(rèn)證考試
- 物流公司司機(jī)培訓(xùn)課件
- 安全檢查活動(dòng)總結(jié)
- 云南省曲靖市宣威市民中2025屆高一化學(xué)第二學(xué)期期末檢測(cè)試題含解析
- 2024年寧夏銀川金鳳區(qū)社區(qū)專職工作者考試真題
- 新疆天富能源股份有限公司2024年度商譽(yù)減值測(cè)試資產(chǎn)評(píng)估報(bào)告
- 2025年黑龍江龍東地區(qū)中考數(shù)學(xué)試卷真題及答案詳解(精校打?。?/a>
- 《新青年 鄭出發(fā)》打造城市夜經(jīng)濟(jì)文旅美食商業(yè)街運(yùn)營(yíng)規(guī)劃方案
- 普陀區(qū)2024-2025學(xué)年下學(xué)期期末考試六年級(jí)數(shù)學(xué)試卷及答案(上海新教材滬教版)
- 咖啡師考試題庫(kù)
- 2025年中國(guó)水下測(cè)深儀市場(chǎng)調(diào)查研究報(bào)告
- 2025年陜西省中考數(shù)學(xué)真題含答案
- 2025年春國(guó)家開放大學(xué)《馬克思主義基本原理》期末終考試卷1參考答案試卷1
- 2025年供應(yīng)鏈管理專業(yè)考試題及答案
評(píng)論
0/150
提交評(píng)論