1. 解压缩函数:
int doDecodeVideo( QY_TRANSFORM * pTransform, MIS_MSGU * pMsgBuf );
mediaSdk的docode:
int doDecodeVideo_mediaSdk( QY_TRANSFORM * pTransform, int index_pMems_from1, int index_activeMems_from, MIS_MSGU * pMsgBuf );
2. 压缩解压缩都以模块的方式装载进系统,
loadCusModules();
typedef struct __cusModuleCompress_t { // 2010/04/28
MACRO_cusModuleCommon
QDC_MGR mgr;
PF_qdcInit pf_qdcInit;
PF_qdcExit pf_qdcExit;
//
PF_qdcGetProp pf_qdcGetProp; // 2015/10/20
PF_qdcSetProp pf_qdcSetProp; // 2016/04/09
//
PF_qdcGetCompressAudioCfg pf_qdcGetCompressAudioCfg;
PF_qdcGetCompressVideoCfg pf_qdcGetCompressVideoCfg;
PF_qdcInitCompressAudio pf_qdcInitCompressAudio;
PF_qdcExitCompressAudio pf_qdcExitCompressAudio;
PF_qdcCompressAudio pf_qdcCompressAudio;
PF_qdcCompressAudioRun pf_qdcCompressAudioRun; // 2016/12/05
//
PF_qdcInitDecompressAudio pf_qdcInitDecompressAudio;
PF_qdcExitDecompressAudio pf_qdcExitDecompressAudio;
PF_qdcDecompressAudio pf_qdcDecompressAudio;
PF_qdcDecompressAudioRun pf_qdcDecompressAudioRun; // 2016/12/05
//
PF_qdcInitCompressVideo pf_qdcInitCompressVideo;
PF_qdcExitCompressVideo pf_qdcExitCompressVideo;
PF_qdcCompressVideo pf_qdcCompressVideo;
PF_qdcCompressVideoRun pf_qdcCompressVideoRun; // 2014/04/02
// 2014/03/30
PF_qdcGetSpsPps pf_qdcGetSpsPps;
//
PF_qdcInitDecompressVideo pf_qdcInitDecompressVideo;
PF_qdcExitDecompressVideo pf_qdcExitDecompressVideo;
PF_qdcDecompressVideo pf_qdcDecompressVideo;
// 2011/12/10
PF_qdcDecompressVideoAndOutput pf_qdcDecompressVideoAndOutput;
// 2014/03/28
PF_qdcDecompressVideoRun pf_qdcDecompressVideoRun;
//
PF_qdcGetOutputByIndex pf_qdcGetOutputByIndex;
PF_qdcClearOutputs pf_qdcClearOutputs;
//
unsigned char ucbInited;
} CUS_MODULE_compress;
3. 模块可以以动态调用dll的方式加载,也可以以函数指针赋值的方式加载。
CONST_moduleType_ffmpeg就是以函数指针赋值的方式加载的