資源簡介
HI35xx平臺MPEG解碼實例源碼是一個樣例,演示了如何使用HIMPP提供的API進行MPEG視頻解碼的程序設計。
代碼片段和文件信息
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?“sample_comm.h“
#define?hidebug(mesg?args...)?fprintf(stderr?“[HiSample?print:%s:%d:]?“?mesg?“\n“?__FILE__?__LINE__?##args)?
/*
**函數描述:linux標準信號捕捉函數
**函數功用:退出HIMPP調用,銷毀緩沖
*/
HI_VOID?SAMPLE_VDEC_HandleSig(HI_S32?signo)
{
?HI_S32?i;
????if?(SIGINT?==?signo?||?SIGTSTP?==?signo?||?SIGTERM?==?signo)
????{
HI_MPI_SYS_Exit();
for(i=0;i {
HI_MPI_VB_ExitModCommPool(i);
}
for(i=0;?i {
HI_MPI_VB_DestroyPool(i);
}
HI_MPI_VB_Exit();
????????printf(“\033[0;31mprogram?exit?abnormally!\033[0;39m\n“);
????}
????exit(0);
}
/*
**函數描述:用于音視頻文件讀寫推流
**函數功用:用fread等文件操作函數讀取音視頻文件,并解析后推送HIMPP進行解碼
*/
int?SAMPLE_COMM_VDEC_JPEG_SendStream(?VdecThreadParam?*pArgs)
{
????VdecThreadParam?*pstVdecThreadParam?=pArgs;
????FILE?*fpStrm=NULL;
????HI_U8?*pu8Buf?=?NULL;
????VDEC_STREAM_S?stStream;
????HI_BOOL?bFindStart?bFindEnd;
????HI_S32?s32Ret??i??start?=?0;
????HI_S32?s32UsedBytes?=?0?s32ReadLen?=?0;
????HI_U64?u64pts?=?0;
????HI_S32?len;
????HI_BOOL?sHasReadStream?=?HI_FALSE;?
???//?prctl(PR_SET_NAME?“hi_SendStream“?0?0?0);
????if(pstVdecThreadParam->cFileName?!=?0)//打開文件
????{
????????fpStrm?=?fopen(pstVdecThreadParam->cFileName?“rb“);
????????if(fpStrm?==?NULL)
????????{
????????????printf(“SAMPLE_TEST:can‘t?open?file?%s?in?send?stream?thread:%d\n“pstVdecThreadParam->cFileName?pstVdecThreadParam->s32ChnId);
????????????return?HI_FAILURE;
????????}
????}
????//printf(“SAMPLE_TEST:chn?%d?stream?file:%s?bufsize:?%d\n“?
????//pstVdecThreadParam->s32ChnId?pstVdecThreadParam->cFileName?pstVdecThreadParam->s32MinBufSize);
????pu8Buf?=?malloc(pstVdecThreadParam->s32MinBufSize);//開辟緩沖區
????if(pu8Buf?==?NULL)
????{
????????printf(“SAMPLE_TEST:can‘t?alloc?%d?in?send?stream?thread:%d\n“?pstVdecThreadParam->s32MinBufSize?pstVdecThreadParam->s32ChnId);
????????fclose(fpStrm);
????????return?HI_FAILURE;
????}?????
????fflush(stdout);
????u64pts?=?pstVdecThreadParam->u64PtsInit;
????while?(1)
????{
????????if?(pstVdecThreadParam->eCtrlSinal?==?VDEC_CTRL_STOP)
????????{
????????????break;
????????}
????????else?if?(pstVdecThreadParam->eCtrlSinal?==?VDEC_CTRL_PAUSE)
????????{
????????????sleep(MIN2(pstVdecThreadParam->s32IntervalTime1000));
????????????continue;
????????}
????????if?(?(pstVdecThreadParam->s32StreamMode==VIDEO_MODE_frame)?&&?(pstVdecThreadParam->enType?==?PT_MP4VIDEO)?)
????????{
????????????bFindStart?=?HI_FALSE;??
????????????bFindEnd???=?HI_FALSE;
????????????fseek(fpStrm?s32UsedBytes?SEEK_SET);
????????????s32ReadLen?=?fread(pu8Buf?1?pstVdecThreadParam->s32MinBufSize?fpStrm);//讀取文件
????????????if?(s32ReadLen?==?0)
????????????{
????????????????if?(pstVdecThreadParam->bLoopSend)
??????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????8341??2017-11-24?14:12??mpeg\include\aacdec.h
?????文件???????5967??2017-11-24?14:12??mpeg\include\aacenc.h
?????文件??????13788??2017-11-24?14:12??mpeg\include\hifb.h
?????文件???????9268??2017-11-24?14:12??mpeg\include\hi_common.h
?????文件???????5463??2017-11-24?14:12??mpeg\include\hi_comm_adec.h
?????文件???????4876??2017-11-24?14:12??mpeg\include\hi_comm_aenc.h
?????文件????????879??2017-11-24?14:12??mpeg\include\hi_comm_ai.h
?????文件??????22042??2017-11-24?14:12??mpeg\include\hi_comm_aio.h
?????文件????????881??2017-11-24?14:12??mpeg\include\hi_comm_ao.h
?????文件??????56331??2017-11-24?14:12??mpeg\include\hi_comm_hdmi.h
?????文件??????13734??2017-11-24?14:12??mpeg\include\hi_comm_ive.h
?????文件???????9316??2017-11-24?14:12??mpeg\include\hi_comm_pciv.h
?????文件??????15289??2017-11-24?14:12??mpeg\include\hi_comm_rc.h
?????文件??????10019??2017-11-24?14:12??mpeg\include\hi_comm_region.h
?????文件???????3934??2017-11-24?14:12??mpeg\include\hi_comm_sys.h
?????文件???????3891??2017-11-24?14:12??mpeg\include\hi_comm_vb.h
?????文件???????9675??2017-11-24?14:12??mpeg\include\hi_comm_vda.h
?????文件???????9631??2017-11-24?14:12??mpeg\include\hi_comm_vdec.h
?????文件??????33488??2017-11-24?14:12??mpeg\include\hi_comm_venc.h
?????文件???????4905??2017-11-24?14:12??mpeg\include\hi_comm_vgs.h
?????文件??????21043??2017-11-24?14:12??mpeg\include\hi_comm_vi.h
?????文件???????9743??2017-11-24?14:12??mpeg\include\hi_comm_video.h
?????文件??????22985??2017-11-24?14:12??mpeg\include\hi_comm_vo.h
?????文件???????7384??2017-11-24?14:12??mpeg\include\hi_comm_vpss.h
?????文件???????4621??2017-11-24?14:12??mpeg\include\hi_debug.h
?????文件??????15794??2017-11-24?14:12??mpeg\include\hi_defines.h
?????文件???????5072??2017-11-24?14:12??mpeg\include\hi_errno.h
?????文件???????2790??2017-11-24?14:12??mpeg\include\hi_io.h
?????文件??????24639??2017-11-24?14:12??mpeg\include\hi_ive.h
?????文件??????13913??2017-11-24?14:12??mpeg\include\hi_jpeg_api.h
............此處省略51個文件信息
評論
共有 條評論