




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、.-1 編寫目.-1 -相 模塊介.-1 編寫目.-1 -相 模塊介.-22.1功能介紹2相關(guān)術(shù)語介.-2 - -.-2 .-2 .-3 BitstreamBuffer管.-3 AudioEngine.-5 .-6 4.1.庫.-6.-6 ib.-6.-7.-7 ParseAudioStreamDataSize.-8BitstreamQueryQuality.-8ParseBitstreamSeekSync.-9API9 -DestroyAudioDecoder11ResetAudioDecoder.-11InitializeAudioDecoder.-11DecodeAudioStream.
2、-11ParserRequestBsBuffer.-12ParserUpdateBsBuffer.-12BsQueryQuality.-12AudioStreamDataSize.-12 4.2.11. .-13.-134.2.13. .-144.2.14.PlybkUpdatePcmBuffer.-14.-14 .-14 PcmQueryQuality.-14AudioDecoderSeek.-15AudioStreamBufferSize.-15 5.數(shù)據(jù)結(jié)構(gòu)設(shè).-16 .-16 AudioDecoder.-16 AudioDecoderContext.-16OutputPcmBuf.-1
3、8ACedarContext.-18BsInFor.-18AudioStreamInfo.-19 - .-20 CDX_DECODE_MODE.-21CDX_MEDIA_FILE_FORMAT.-21P_PRIV_FLAGS.-24CEDARXAUDIOFLAGSENUM.-24 SUB_CHARSET.-25EAUDIOCODECFORMAT.-275.8.10.-27 6.Declaration.-31 1概1.1.編寫目設(shè)計音庫的基本框架、1概1.1.編寫目設(shè)計音庫的基本框架、內(nèi)/外部接口、主要數(shù)據(jù)結(jié)構(gòu)和流程。指導(dǎo)音庫的開發(fā)、使用和后。1.2.適用范A80/A83/H3/H8 的 And
4、roidSDK Linux SDK1.3.相音庫的相。-12介2.1.功能介音庫是一個提供音功能的庫,編譯輸出的庫文件為2介2.1.功能介音庫是一個提供音功能的庫,編譯輸出的庫文件為 libadecoder.so。庫,應(yīng)用程序可以在全志公司的各個 上實現(xiàn)高效的、多格式的功能2.2.相關(guān)術(shù)Stream:碼流,被壓縮編碼過數(shù)據(jù)Stream Buffer Manager:負(fù)責(zé)管理 Stream 的程序模塊SBM:Stream Buffer Frame Buffer:存放音頻數(shù)據(jù)的內(nèi)存空間Frame Buffer Manager:負(fù)責(zé)管理 Frame Buffer 的程序模塊FBM:Frame Buf
5、fer PTS:時間戳,表示聲音的顯示時間ion time的縮寫2.3.模塊配略2.4.源碼結(jié)后續(xù)補2.5.返回值0:正確;、對于返回非指針類0:正確0:出0:返回正2.6.其它說鋪綠為增加內(nèi)紅色字體是有變-23. 模塊體系結(jié)構(gòu)設(shè)3. 模塊體系結(jié)構(gòu)設(shè)1. 音庫模塊結(jié)構(gòu)3.1.BitstreamBuffer frameFifo-3u8* data; u32valid; s64 pts; u32length; u32m 圖 2.碼流管理模塊數(shù)據(jù)結(jié)構(gòu)設(shè)3.2.Frame Frame Buffer Manager 負(fù)責(zé)管理 PCM Buffer 。初始化 時,該模 塊申請PCMBufferFrameB
6、ufferu8* data; u32valid; s64 pts; u32length; u32m 圖 2.碼流管理模塊數(shù)據(jù)結(jié)構(gòu)設(shè)3.2.Frame Frame Buffer Manager 負(fù)責(zé)管理 PCM Buffer 。初始化 時,該模 塊申請PCMBufferFrameBuffer。frameFifo-4u8* data; u32valid; s64 pts; u32length; u32m 3. Frame Buffer 管理模塊數(shù)據(jù)結(jié)構(gòu)設(shè)3.3.Audio 。 u8* data; u32valid; s64 pts; u32length; u32m 3. Frame Buffer
7、管理模塊數(shù)據(jù)結(jié)構(gòu)設(shè)3.3.Audio 。 -54. 接口和流程設(shè)4.1.音-6ib(AudioDecoderLib*AudioDecoderLib*無失?。悍祷?NULL;庫14. 接口和流程設(shè)4.1.音-6ib(AudioDecoderLib*AudioDecoderLib*無失?。悍祷?NULL;庫1234567parser buffer8 9-7ParseRequestAudioBitstreamBuffer(AudioDecoderLib*unsigned unsigned pDecoder:通過-7ParseRequestAudioBitstreamBuffer(AudioDecod
8、erLib*unsigned unsigned pDecoder:通過DecodeAudioFrame(AudioDecoderLib*pDecoder:通過返回類型: AUDIODEC無BsInFor *pBsInFor)通過 CreateAudioDecib 函數(shù)創(chuàng)建的音頻pAudioStreamInfo: 音頻碼流的基本信息,如編碼格式、采樣率等 0: 表示成功; AudioStreamInfo 中,不是所有信息都是必須的。對于 pcm,無-8* vbv)ParseAudioStreamDataSize(AudioDecoderLib* pDecoder:-8* vbv)ParseAud
9、ioStreamDataSize(AudioDecoderLib* pDecoder:通過。無ParseUpdateAudioBitstreamData(AudioDecoderLib* pDecoder: 通過 CreateAudioDecib 函數(shù)創(chuàng)建的音頻0: 表示成功;-1無0: 表示成功;-1碼流 Buffer 是一塊循環(huán) Buffer,當(dāng) Buffer 回頭時,外部請求的 Buffer 被分成兩段,ppBuf 和 pBufSize 返回第一段 Buffer 的地址和大小,ppRingBuf和 pRingBufSize 返回第二段 Buffer 的地址和大小。4.2.音-9庫1234
10、4.2.音-9庫12345678 9parser bufferpcm 數(shù)據(jù)庫獲取pcmbuffer,用VoidParseBitstreamSeekSync(AudioDecoderLib*64_t nSeekTime, pDecoder: 通過 CreateAudioDecoder 函數(shù)創(chuàng)建的音頻 無pDecoder: 通過 CreateAudioDecoder 函數(shù)創(chuàng)建的音頻pValidPercent:有效數(shù)據(jù)占用的比,此值已經(jīng)乘以 100 無DecUpdatePcmBufferpcmBuffer處理音頻相關(guān)的工作。Demux 線程不斷調(diào)用 ParseRequestAudioBitstrea
11、mBufferParseUpdateAudioBitstreamData 函數(shù)傳 送數(shù)據(jù) ;音 頻線程通 過調(diào) 用-10AudioDecoder*DecUpdatePcmBufferpcmBuffer處理音頻相關(guān)的工作。Demux 線程不斷調(diào)用 ParseRequestAudioBitstreamBufferParseUpdateAudioBitstreamData 函數(shù)傳 送數(shù)據(jù) ;音 頻線程通 過調(diào) 用-10AudioDecoder*無失?。悍祷?NULL;PlybkRequestPcmBuff 完畢pcmbuffer,將buffer歸還 獲取Bsbuffer最-11stream(Audi
12、oDecoder*BsInFor *pBsInFor)pDecoder-11stream(AudioDecoder*BsInFor *pBsInFor)pDecoder: 通過 CreateAudioDecoder 函數(shù)創(chuàng)建的音頻 器指針 pAudioStreamInfo: pBsInFor: 過程 互信息0: 表示成功; AudioStreamInfo 中,不是所有信息都是必須的。對于 pcm,64_t 0: 表示成功; DestroyAudioDecoder(AudioDecoder*無-12AudioStreamDataSize(AudioDecoder* void BsQueryQua
13、lity(AudioDecoder*pDecoder,*pValidPercent,。參見 64 nTimeSt。參見 -12AudioStreamDataSize(AudioDecoder* void BsQueryQuality(AudioDecoder*pDecoder,*pValidPercent,。參見 64 nTimeSt。參見 unsigned unsigned 。參見 pBufSize: 返回用,后pcm數(shù)據(jù)長度;返回類型: AUDIODEC無-13DecUpdatePcmBuffer(AudioDecoder*-13DecUpdatePcmBuffer(AudioDecode
14、r*mOutSize: 需要更新的數(shù)據(jù)長度;0: 表示成功;-1每幀后更新 pcm buffer 空間,使的 playback 可以果是硬件需要刷新一下 cache。0: 表示成功;-1為 ComponentThread 所調(diào)用AudioPCMDataSize(AudioDecoder*。無。 參見ParseAudioStreamDataSize-14VoidPcmQueryQuality(AudioDecoder*pDecoder,*pValidPercent,-14VoidPcmQueryQuality(AudioDecoder*pDecoder,*pValidPercent,PlybkR
15、equestPcmPts(AudioDecoder*返回當(dāng)前數(shù)的起始時獲取 pcm 數(shù)據(jù)中要為 AudioDecRequstBuffer 所調(diào)用PlybkUpdatePcmBuffer(AudioDecoder*mOutSize: 需要更新的數(shù)據(jù)長度;0: 表示成功;-1pcmbufflayback 已經(jīng)取走本段 pcm,本段空間;為 AudioDecReleaseBuffer 所調(diào)用PlybkRequestPcmBuffer(AudioDecoder* unsigned char *psize:通過CreateAudioDecoder函數(shù)創(chuàng)建的音:數(shù)據(jù)首地psize :調(diào)用時需要先賦值,需要
16、的的數(shù)據(jù)長度,返回時函數(shù)0: 表示成功;Playback要Audio度,如果沒有返回失敗,為 AudioDecRequstBuffer 所調(diào)用m-15無無無無VoidAudioDecoderSeek(AudioDecoder*64_tm-15無無無無VoidAudioDecoderSeek(AudioDecoder*64_t無獲取pcm數(shù)據(jù)長度和pcmbuffer占總空間的百分比;為 AudioDecQueryBufferSe 所調(diào)用5. 數(shù)據(jù)結(jié)構(gòu)設(shè)5.1.5.2.5.3.-16表示一個音器,包含音器的所有信息。參見結(jié)構(gòu)體為0 10CEDARXAUDIOCHANNEL000表示一個音器,包含音
17、器的所有信息。參見結(jié)構(gòu)體為*5. 數(shù)據(jù)結(jié)構(gòu)設(shè)5.1.5.2.5.3.-16表示一個音器,包含音器的所有信息。參見結(jié)構(gòu)體為0 10CEDARXAUDIOCHANNEL000表示一個音器,包含音器的所有信息。參見結(jié)構(gòu)體為*-1700000000parser buffer00-1700000000parser buffer000000行005.6.黃色為外部只讀器寫信:用,外部不藍(lán)色字體為外部設(shè)-180外部只讀,總時間(毫秒0外部只讀,當(dāng)時間(毫秒純音頻時0外部只讀,輸出采樣0外部只讀,比特0外部只讀,通道0,lib5.6.黃色為外部只讀器寫信:用,外部不藍(lán)色字體為外部設(shè)-180外部只讀,總時間(毫
18、秒0外部只讀,當(dāng)時間(毫秒純音頻時0外部只讀,輸出采樣0外部只讀,比特0外部只讀,通道0,lib0000Pcm buffer (AOUT_BUFFER_SIZE 0000pcmbuffer00Pcm buffer0Pcmbufferfo t0保證每次送出的時間戳準(zhǔn)確(為 用),同 parse 的時間戳管理機制匹配。5.7.-190,一幀數(shù)據(jù)有多少bytes(未0,幀0庫私用變量,初始采0庫私用變量,初始比0,初始化完成標(biāo)志,1:完成初始化0:沒有初始005.7.-190,一幀數(shù)據(jù)有多少bytes(未0,幀0庫私用變量,初始采0庫私用變量,初始比0,初始化完成標(biāo)志,1:完成初始化0:沒有初始00
19、0rawdata部只讀, 模式,:pcm1: raw data out,2:spdif raw data out00外部只讀, playbk 標(biāo)志, 庫數(shù)據(jù)讀完, 庫接收到數(shù)據(jù)結(jié)束 00外部設(shè)置,為需要改變通道數(shù)用,主要為 庫CEDARX AUDIO CHANNEL TYPE00裝格式文件,0:其它格式封裝文件,例如 ,網(wǎng)絡(luò)封裝等。參見 CDX DECODE MODE0參見 CDX MEDIA FILE FORMAT00pts 計算數(shù)據(jù)枚舉枚舉類型按照其性質(zhì)沒有賦值的按照枚舉規(guī)則自動賦5.8.1. -20 值00模 式 參 見 amr format sub type t 和 WAVE FORM
20、AT0000000AVI,TS,等參見數(shù)據(jù)枚舉枚舉類型按照其性質(zhì)沒有賦值的按照枚舉規(guī)則自動賦5.8.1. -20 值00模 式 參 見 amr format sub type t 和 WAVE FORMAT0000000AVI,TS,等參見 CDXMEDIAFILE000extra_data長度,為傳送除了本結(jié)構(gòu)明確規(guī)定00頭,需要 庫打頭。1:原始碼流中每幀數(shù)據(jù)已經(jīng)包含了幀頭,不需要 庫打頭。5.8.2.5.8.3.5.8.4.-21值CDX_MEDIA_FILE_FMT_UNSUPPORT = -CDX_MEDIA_FILE_FMT_UNKOWN = 0值0文值0正常模式,通道數(shù)不變化,正
21、常輸bigendingorlittleendingcheck-audiobitstreamdecode5.8.2.5.8.3.5.8.4.-21值CDX_MEDIA_FILE_FMT_UNSUPPORT = -CDX_MEDIA_FILE_FMT_UNKOWN = 0值0文值0正常模式,通道數(shù)不變化,正常輸bigendingorlittleendingcheck-audiobitstreamdecode-decodeoneframefailed,cantry0decode sed,no1eturnfromfast-forwardorfast-2returnfromAunderA/B3retur
22、nfromframeoftag4jump)maybereturn4or5Noenoughbitstream,try-22-22-23/*for test raw data =CDX_MEDIA_FILE_FMT_NETWORK_RTSP = =CDX_MEDIA_FILE_FMT_NETWORK_SFT =CDX_MEDIA_FILE_FMT_WIFI_DISPLAY = CDX_MEDIA_FILE_FMT_STREAMINGSRC = -23/*for test raw data =CDX_MEDIA_FILE_FMT_NETWORK_RTSP = =CDX_MEDIA_FILE_FMT_
23、NETWORK_SFT =CDX_MEDIA_FILE_FMT_WIFI_DISPLAY = CDX_MEDIA_FILE_FMT_STREAMINGSRC = 5.8.6.5.8.7.-24值enumSUB值1值125.8.6.5.8.7.-24值enumSUB值1值125.8.8.-25值= -= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 5.8.8.-25值= -= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
24、 = -26= = = = = = = = = = = = = = = = =-26= = = = = = = = = = = = = = = = = 5.8.9.-27WAV文值/*UnknownFormat/*PCMCMFormat/*IEEEFloat/*CompaqComputersVSELP/*IBMCVSD/*ALAW /*MULAW/*CM elsCM5.8.9.-27WAV文值/*UnknownFormat/*PCMCMFormat/*IEEEFloat/*CompaqComputersVSELP/*IBMCVSD/*ALAW /*MULAW/*CM elsCMlogics /
25、*CM/*CM/*DSPSolutionsDIGISTD/*DSPSolutionsDIGIFIX/*DialogicCM/*CM/*HPCU/*CM值CDX_AUDIO_NONE -CDX_AUDIO_UNKNOWN 0-28/*DSPGroupsTrueSpeech/*EchoSpeechsEchoSC1/*AudiofileAF36/*APTX /*AudioFileAF10/*Prosody1612/*LRC/*DolbyAC2 /*GSM610/*MSNAudio/*CME/*ControlResVQLPC/*Digireal/*CM/*-28/*DSPGroupsTrueSpeec
26、h/*EchoSpeechsEchoSC1/*AudiofileAF36/*APTX /*AudioFileAF10/*Prosody1612/*LRC/*DolbyAC2 /*GSM610/*MSNAudio/*CME/*ControlResVQLPC/*Digireal/*CM/*ControlResCR10/*NMSCM/*RolandRDAC/*EchoSC3/*CM/*RockwellDigitLK/*Xebec/*AntexElectronicsG.721/*G.728CELP/*MSG723/*MPEGLayer1,2/*RT24 /*PAC/*MPEGLayer3/*Cirru
27、s/*ESPCM/*Voxware(obsolete)/*CanopusAtrac/*CM/*CM/*DSAT /*DSATDisplay/*VoxwareByte/*VoxwareAC8(obsolete)/*VoxwareAC10(obsolete)/*VoxwareAC16(obsolete)/*VoxwareAC20(obsolete) /*Voxware-29(obsolete)/*Voxware(obsolete)/*VoxwareRT29HW/*VoxwareVR12(obsolete)/*VoxwareVR18(obsolete)/*VoxwareTQ40(obsolete)/
28、*Softsound/*VoxwareTQ60(obsolete)/*MSRT24/*G.729A/*MVIMV12/*DFG.726/*DFGSM610 /*ISIAudio-29(obsolete)/*Voxware(obsolete)/*VoxwareRT29HW/*VoxwareVR12(obsolete)/*VoxwareVR18(obsolete)/*VoxwareTQ40(obsolete)/*Softsound/*VoxwareTQ60(obsolete)/*MSRT24/*G.729A/*MVIMV12/*DFG.726/*DFGSM610 /*ISIAudio/*Onlive/*SBC24/*CM/*PhilipsLPCBB/*Packed/*CM/*BeCubedSoftwaresIRAT/*VivoG.723/*VivoSiren /*DigitalG.723/*CM/*CreativeFastSpeech8/*CreativeFastSpeech10/*Quarterdeck/*FMdDigital/*VMEVMPCM /*OLIGSM/*CM/*OLICELP/*OLISBC/*OLIOPR/*LHCodec/*Norris/*Soundspace/*DVM-30/*LSZHANGTS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼陽古建施工方案審批
- 2024年三季度報湖南地區(qū)A股銷售凈利率排名前十大上市公司
- 快船新球館施工方案
- (教研室)福建省寧德市2024-2025學(xué)年高二上學(xué)期期末考試語文試題
- 揚塵施工方案
- 預(yù)制濾板施工方案
- 2025年柳工營銷面試題及答案
- 6年級上冊20課青山不老課堂筆記
- 教育教學(xué)評價表
- 低空經(jīng)濟產(chǎn)業(yè)專項引導(dǎo)基金
- 熟石灰進(jìn)貨檢驗操作規(guī)程
- 《流程基本知識》考核試題(答案)
- 【知識解析】南昌起義主題圖集
- 中班安全活動 保護(hù)鼻子
- 板卡錯誤代碼對應(yīng)的錯誤信息及解決方案
- 重大事故后果分析
- 武漢理工大學(xué)計算機網(wǎng)絡(luò)試題及答案
- 先學(xué)后教當(dāng)堂訓(xùn)練簡介
- 灌區(qū)工程施工方案與技術(shù)措施
- 幼兒園繪本:《小蛇散步》 課件
- 華中師大版七年級心理 2走近老師 課件(共15張PPT)
評論
0/150
提交評論