当前位置: 首页 > 工具软件 > OpenH264 > 使用案例 >

openH264解码流程

万俟宜修
2023-12-01

openH264解码流程

之前项目中用过openH264进行解码,本文介绍一下解码流程,算是对之前项目的一个总结。

同openH264编码一样,openH264的解码流程也主要分为3步:
1:创建解码器。

int result = WelsCreateDecoder(&decoder);

同样可以通过判断返回值来判断解码器是否创建成功。
2:初始化解码器。

memset (&pParam, 0, sizeof (SDecodingParam));
pParam.uiTargetDqLayer = UCHAR_MAX;
pParam.eEcActiveIdc = ERROR_CON_FRAME_COPY_CROSS_IDR;
pParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
result = decoder->Initialize(&pParam);

3:调用解码器开始解码。

int stride[2] = {videoWidth, videoWidth/2};
uint8_t* dst[3];
memset (dst, 0, sizeof (dst));
int result = decoder->DecodeFrame((const unsigned char*)src, length, dst, stride, videoWidth, videoHeight);

解码后的数据存储在dst中,格式为YUV420P,如果需要其他格式的话,要进行格式转换。

 类似资料: