Формат вывода OpenH264 DecodeFrameNoDelay - PullRequest
0 голосов
/ 13 декабря 2018

Я использовал OpenH264 Turorial (https://github.com/cisco/openh264/wiki/UsageExampleForDecoder), чтобы успешно декодировать кадр H264, но я не могу понять из учебника, какой формат вывода.

Я использую"unsigned char * pDataResult [3];" (pData в руководстве), и это заполняется, но мне нужно знать длину, чтобы преобразовать его в байтовые буферы и вернуть его в Java. Мне также нужно знать, чтоявляется собственностью этих данных (кажется, что они принадлежат декодеру). Эта информация не упоминается в руководстве или документации, насколько я могу найти.

unsigned char *pDataResult[3];
int iRet = pSvcDecoder->DecodeFrameNoDelay(pBuf, iSize, pDataResult, &sDstBufInfo);

В руководстве также указан инициализатор, но дает "..." в качестве присваивания.

//output: [0~2] for Y,U,V buffer for Decoding only
unsigned char *pData[3] =...;

Нулевые данные YUV завершены?

Существует последний параметр SBufferInfo с TagSysMemBuffer:

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" для каждого буфера?

...