首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenH264 DecodeFrameNoDelay输出格式

OpenH264 DecodeFrameNoDelay输出格式
EN

Stack Overflow用户
提问于 2018-12-13 13:22:10
回答 1查看 387关注 0票数 0

我已经使用OpenH264图像库(https://github.com/cisco/openh264/wiki/UsageExampleForDecoder)成功地解码了H264帧,但是从教程中我找不到输出格式。

我使用的是"unsigned char *pDataResult3;“(本教程中的pData),它会被填充,但我需要知道它的长度,以便将其转换为字节缓冲区以将其返回给java。我还需要知道这些数据的所有权是什么(它似乎归解码器所有)。据我所知,在教程或文档中没有提到这个信息。

代码语言:javascript
复制
unsigned char *pDataResult[3];
int iRet = pSvcDecoder->DecodeFrameNoDelay(pBuf, iSize, pDataResult, &sDstBufInfo);

本教程还列出了一个初始化器,但给出了"...“作为作业。

代码语言:javascript
复制
//output: [0~2] for Y,U,V buffer for Decoding only
unsigned char *pData[3] =...;

YUV数据是否以null结尾?

TagSysMemBuffer的最后一个参数是SBufferInfo:

代码语言:javascript
复制
typedef struct TagSysMemBuffer {
  int iWidth;                    ///< width of decoded pic for display
  int iHeight;                   ///< height of decoded pic for display
  int iFormat;                   ///< type is "EVideoFormatType"
  int iStride[2];                ///< stride of 2 component
} SSysMEMBuffer;

长度可能在里面,但不是很清楚。也许每个缓冲区都是"iWidth*iHeight“?

EN

回答 1

Stack Overflow用户

发布于 2019-11-05 20:23:34

正如你所想的那样,pData在解码器析构函数中与WelsFreeDynamicMemory一起在decoder.cpp中被释放。解码器本身将nullptr分配给通道,但将它们作为一个好习惯来初始化pData是很好的。您有iSize参数作为输入,这是您想要的字节缓冲区长度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53755414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档