h 265 pc解碼庫軟件api參考_第1頁
h 265 pc解碼庫軟件api參考_第2頁
h 265 pc解碼庫軟件api參考_第3頁
h 265 pc解碼庫軟件api參考_第4頁
h 265 pc解碼庫軟件api參考_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

客戶服務(wù)電話 客戶服務(wù)傳真 客戶服務(wù)郵箱 目 圖4-1按流方式解碼API函數(shù)使用流程 圖4-2按幀方式解碼API函數(shù)使用流程 表1-1解碼庫開發(fā)包組 表1-2解碼庫運行環(huán) 本文以Hi3516A描述為例,未有特殊說明,Hi3516DHi3516A

-*

1 解碼庫內(nèi)部完成了H.265解碼的主要流程,并對外提供了靈活簡單的API,用戶可快開發(fā)應(yīng)用程序。解碼庫的主要組件及相關(guān)說明如表1-1所示。API32-32-64-64-WindowsXP、Windows7、Windows8IntelAMDVisualStudioVisualStudioVisualStudioWindowsXPWindows7Windows7Windows8Windows8Windows無IntelCPUIntelCPUAMDAxCPUIntel45679-------0果圖像不包含B幀,則可以使用解碼序輸出模式以降低輸出時延。INT32IHW265D_Delete(IH265DEC_HANDLE--0---0INT32IHW265D_DecodeFrame(IH265DEC_HANDLEhDecoder,----碼流長度(字節(jié)為單位)--IH265D_DECODE_END-----------原始碼流長度(字節(jié)數(shù))--255-255---輸出當前幀信息包含一幀中各種類型CU的個數(shù)。01uiStreamLen。正常情況下解碼模式配置為IH265D_DECODE。如果函數(shù)返回理存儲在pstOutArgs中的圖像。IH265D_NO_PICTURE,表示解INT32IHW265D_DecodeAU(IH265DEC_HANDLEhDecoder,*pstInArgs,IH265DEC_OUTARGS--------------輸出當前幀信息包含一幀中各種類型CU的個數(shù)。0

3typedefsigned typedefsigned typedefsignedint typedefunsignedchar typedefunsignedshort typedefunsignedint typedefunsigned typedef typedefvoid*(*IHWVIDEO_ALG_MALLOC_FXN)(UINT32uiChannelID,UINT32typedefvoid(*IHWVIDEO_ALG_FREE_FXN)(UINT32uiChannelID,void*pMem);typedefvoid(*IHWVIDEO_ALG_LOG_FXN)(UINT32uiChannelID,IHWVIDEO_ALG_LOG_LEVELeLevel,INT8*pszMsg,...);typedefenum{IH265D_SINGLE_THREAD=0, /*單線程*/ /*多線程}typedefenum{IH265D_DECODE_ORDER=0, /*按解碼序輸出*/ /*按顯示序輸出*/}typedefenum{IH265D_DECODE /* }typedefenum{IH265D_FRAME_I=0,}typedefenum{IH265D_GETDISPLAY=0, /*已經(jīng)解碼出一幀并輸出,可用于顯示*/ /*解碼器沒有圖像輸出,需要更多的碼流*/ /*解碼完畢,已經(jīng)輸出全部圖像*/ /*句柄錯誤*/}/*typedefstruct{/*/*/*/*HW265D_THREADTYPEeThreadType; /*線程類型*/HW265D_OUTPUTORDEReOutputOrder; /*輸出順序,僅在DecodeFrame有效, /*用戶數(shù)據(jù)*/IHWVIDEO_ALG_MALLOC_FXNMallocFxn;/*分配內(nèi)存回調(diào)函數(shù)*/ FreeFxn; /*釋放內(nèi)存回調(diào)函數(shù)*/ /*日志回調(diào)函數(shù)*/typedefstructtagIH265DEC_INARGS{UINT8 /*UINT32 /*UINT64 /*HW265D_DECODEMODEeDecodeMode;/*0:正常模式;1:Flush/*typedefstruct{/*/*/*/*HW265D_DECODESTATUSeDecodeStatus;/*/*/*/*/*/*圖像YUV3/* ///vui /* //vps uiVpsNumUnitsInTick;/* ///*///*/*typedefstruct{UINT32uiUserDataType;/*用戶數(shù)據(jù)類型*/UINT32uiUserDataSize;/*用戶數(shù)據(jù)長度*/UINT8 /*用戶數(shù)據(jù)緩沖區(qū)structtagHW265D_USERDATA*pNext;/*/*typedefstruct{ cVersionChar[IHWVIDEO_ALG_VERSION_LENGTH];/*版本號*/ /*編譯時間*/UINT32 /*/*每幀圖像各種CU數(shù)量信息*/typedefstructtagCU_OUTPUT_INFO{4x4CUnumber8x8CUnumber16x16CU32x32CU64x64CU4x4CUnumber8x8CUnumberUINT32uiCuNumPcm16; /*IPCM16x16CUnumber*/UINT32uiCuNumPcm32; /*IPCM32x32CUnumber*/UINT32uiCuNumPcm64; /*IPCM64x64CUnumber*/UINT32uiCuNumInter8; /*inter8x8CUnumber*/UINT32uiCuNumInter16; /*inter16x16CUnumber*/UINT32uiCuNumInter32; /*inter32x32CUnumber*/UINT32uiCuNumInter64; /*inter64x64CUnumber*/UINT32uiCuNumSkip8; /*skip8x8CUnumber*/UINT32uiCuNumSkip16; /*skip16x16CUnumber*/UINT32uiCuNumSkip32; /*skip32x32CUnumber*/UINT32 /*skip64x64CUnumber是否否是讀取到碼流長度為輸入輸入始位置為buffer0,碼流長度為否輸出是輸出是否void*HW265D_Malloc(UINT32channel_id,UINT32{return(void}voidHW265D_Free(UINT32channel_id,void*{}voidHW265D_Log(UINT32channel_id,IHWVIDEO_ALG_LOG_LEVELeLevel,*p_msg,{}INT32H265DecLoadAU(UINT8*pStream,UINT32iStreamLen,UINT32*{UINT32UINT32state=0xffffffff;BOOL32*pFrameLen=if(NULL==pStream||iStreamLen<={return-}for(i=0;i<iStreamLen;{if((state&0xFFFFFF7E)>=0x100&&(state&0xFFFFFF7E)<=0x13E){if(1==bFrameStartFound{if((pStream[i+1]>>7)=={*pFrameLen=i-4;return0;}}{bFrameStartFound=}}/*findavps,sps,if((state&0xFFFFFF7E)==0x140||(state&0xFFFFFF7E)==0x142||(state&0xFFFFFF7E)==0x144){if(1=={*pFrameLen=i-4;return0;}{bFrameStartFound=}}state=(state<<8)|}*pFrameLen=i;return-1;}intmain(intargc,unsignedchar**{FILE*fpInFile=NULL;FILE*fpOutFile=NULL;INT32iRet=0;UINT8*pInputStream=NULL,*pStream;UINT32uiChannelId=0;UINT32iFrameIdx=0;BOOL32bStreamEnd=0;INT32iFileLen;IH265DEC_HANDLEhDecoder=IHW265D_INIT_PARAMstInitParam={0};IH265DEC_INARGSstInArgs;IH265DEC_OUTARGSstOutArgs={0};/*openinputstreamfileandoutputyuvfile*/fpInFile=fopen(argv[1],"rb");fpOutFile=fopen(argv[2],if(NULL==fpInFile||NULL=={fprintf(stderr,"Unabletoopenh265streamfile%soryuvfile%s.\n",argv[1],goto}printf("decodingfile:%s...\n",printf("saveyuvfile:%s...\n",/*mallocstreambuffer*/fseek(fpInFile,0,SEEK_END);iFileLen=ftell(fpInFile);fseek(fpInFile,0,SEEK_SET);pInputStream=(unsignedchar*)malloc(iFileLen);if(NULL==pInputStream){fprintf(stderr,"Mallocfailed!\n");gotoexitmain;}/*createdecodehandle*/ =0; = = = =IH265D_SINGLE_THREAD; //or =IH265D_DECODE_ORDER; //or =HW265D_Malloc; =HW265D_Free; =iRet=IHW265D_Create(&hDecoder,&stInitParam);if(IHW265D_OK!=iRet){fprintf(stderr,"Unabletocreatedecoder.\n");gotoexitmain;}/*readH.265streamtostreambuffer*/fread(pInputStream,1,iFileLen,fpInFile);pStream=pInputStream;/*decodeprocess*/while(!bStreamEnd){INT32stInArgs.eDecodeMode=(iNaluLen>0)?IH265D_DECODE: =pStream;pStream+=iNaluLen;iFileLen-=stOutArgs.eDecodeStatus=-stOutArgs.uiBytsConsumed={//whendecoderisempty,exitloop;if(stOutArgs.eDecodeStatus==IH265D_NO_PICTURE){bStreamEnd=1;}//outputoneif(stOutArgs.eDecodeStatus=={//saveyuvtooutputfileif(fpOutFile!=NULL){UINT32for(i=0;i<stOutArgs.uiDecHeight;{fwrite(stOutArgs.pucOutYUV[0]+i*stOutArgs.uiYStride,1,stOutArgs.uiDecWidth,fpOutFile);}for(i=0;i<((stOutArgs.uiDecHeight)>>1);{}for(i=0;i<((stOutArgs.uiDecHeight)>>1);{}}}//continuetodecodetherestofstream +=stOutArgs.uiBytsConsumed; -=iRet=IHW265D_De

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論