openRtComm解码模块说明

未结 0 920
纳入话题 标签: 解压缩

解码模块:hdDec

这是intel mediasdk的解码模块,是成熟模块

 

1. extern  "C"  int  __declspec(  dllexport  )qdcInitDecompressVideo(  void  *  pVideoCompressorCfg_reserved,  QY_VIDEO_HEADER  *  pVh_compress,  QY_VIDEO_HEADER  *  pVh_decompress,  QDC_OBJ_INFO  *  pQdcObjInfo  )

说明:解码初始化

参数说明:

参数1pVideoCompressorCfg_reserved,视频压缩策略,输入。

    VIDEO_COMPRESSOR_cfgCommon  *  pVideoCfgCommon  =  (  VIDEO_COMPRESSOR_cfgCommon  *  )pVideoCompressorCfg_reserved;

参数2pVh_compress, 压缩图像

参数3pVh_decompress,解压缩图像

参数4pQdcObjInfo, 解码控制对象。

 

2.extern  "C"  int  __declspec(  dllexport  )qdcExitDecompressVideo(  QDC_OBJ_INFO  *  pQdcObjInfo  )

说明:解码清理

参数说明:

参数1pQdcObjInfo,解码控制对象

 

3.extern  "C"  int  __declspec(  dllexport  )qdcDecompressVideo(  QDC_OBJ_INFO  *  pQdcObjInfo,  BITMAPINFO  *  pBmpInfo_input,  BYTE  *  pInput  )

说明:解码函数,(很少用)

 

4. extern  "C"  int  __declspec(  dllexport  )  qdcDecompressVideoRun(  QDC_OBJ_INFO  *  pQdcObjInfo  )

说明:解码函数,进入一循环,每循环都读取压缩包,然后输出解压缩图像。

 

5.CMySmplBitstreamReader,压缩流输入对象

 

CMySmplBitstreamReader::ReadNextFrame_func

     //

     nBytesRead  =  pBS->MaxLength - pBS->DataLength;

     unsigned  int  uiSampleTimeInMs  =  0;

     if  (  pQdcObjInfo->cfg.v.dec.pf_smplBitstreamReader_ReadNextFrame_func(  pQdcObjInfo,  &m_var.old_lPktId,  uiToInMs,  (  char  *  )(  pBS->Data  +  pBS->DataLength  ),  &nBytesRead,  &uiSampleTimeInMs  )  )  {

         return  MFX_ERR_UNKNOWN;

     }

     pBS->DataLength += nBytesRead;   

 

通过调用pf_smplBitstreamReader_ReadNextFrame_func来获取输入数据。

 

6. CMySmplYUVWriter,解压缩图像输出对象

mfxStatus CMySmplYUVWriter::WriteNextFrame0(mfxFrameSurface1 *pSurface)

通过调用    if  (  pQdcObjInfo->cfg.v.dec.pf_smplYUVWriter_WriteNextFrame0(  pQdcObjInfo,  &pObj->common,  iFourcc,  &m_var,  pSurface,  pInfo->CropW,  pInfo->CropH,  pData->Pitch,  pf_img_to_yuv,  dFrameRate,  _T(  ""  )  )  )

将解压缩输出图像输出

 

7.注意:使用qdcDecompressVideoRun,是异步执行的压缩,所以需要用函数指针来读取数据和输出数据。

 

8.其他的模块,不需要采用CMySmplYUVWriterCMySmplBitstreamReader,但是异步的输入输出函数是需要使用的。

 

 

 

 

 

 

 

 

回复
去登录