最近基於ffmpeg做了個h264視頻流解碼庫,支持多路同時解碼,主要提供的對外接口如下 :
#ifdef _H264DECODER_EXPORTS
#define H264DECODER_API __declspec(dllexport)
#else
#define H264DECODER_API __declspec(dllimport)
#endif
#define PLAYHANDLE void *
#ifdef __cplusplus
extern "C" {
#endif
typedef int (CALLBACK *LPCALLYUVData)(int decHandle, unsigned char* pYUVData, unsigned long lSize,
unsigned long dwWidth,unsigned long dwHeight, void* lpUser);
H264DECODER_API int FAR PASCAL H264Decoder_Init();
H264DECODER_API int FAR PASCAL H264Decoder_Open(); // 返回解碼句柄
H264DECODER_API int FAR PASCAL H264Decoder_Close(int nDecHandle);
H264DECODER_API int FAR PASCAL H264Decoder_SetYuvCallback(int nDecHandle,LPCALLYUVData pCallBack,DWORD dwContext); // 回調出 yuv 420p 數據
H264DECODER_API int FAR PASCAL H264Decoder_InputData(int nDecHandle,void* pBuf,DWORD dwDataLen); // 碼流輸入
H264DECODER_API int FAR PASCAL H264Decoder_Fini();
#ifdef __cplusplus
}
這只是個初始版本,最終我想把音頻解碼、PS流、TS流解碼也做進去編譯好的release版 動態庫 lib 和 頭文件 下載地址: