MCPcopy Create free account
hub / github.com/cisco/openh264 / InitBsBuffer

Function InitBsBuffer

codec/decoder/core/src/decoder_core.cpp:605–646  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

603}
604
605int32_t InitBsBuffer (PWelsDecoderContext pCtx) {
606 if (pCtx == NULL)
607 return ERR_INFO_INVALID_PTR;
608
609 CMemoryAlign* pMa = pCtx->pMemAlign;
610
611 pCtx->iMaxBsBufferSizeInByte = MIN_ACCESS_UNIT_CAPACITY * MAX_BUFFERED_NUM;
612 if ((pCtx->sRawData.pHead = static_cast<uint8_t*> (pMa->WelsMallocz (pCtx->iMaxBsBufferSizeInByte,
613 "pCtx->sRawData.pHead"))) == NULL) {
614 return ERR_INFO_OUT_OF_MEMORY;
615 }
616 pCtx->sRawData.pStartPos = pCtx->sRawData.pCurPos = pCtx->sRawData.pHead;
617 pCtx->sRawData.pEnd = pCtx->sRawData.pHead + pCtx->iMaxBsBufferSizeInByte;
618 if (pCtx->pParam->bParseOnly) {
619 pCtx->pParserBsInfo = static_cast<SParserBsInfo*> (pMa->WelsMallocz (sizeof (SParserBsInfo), "pCtx->pParserBsInfo"));
620 if (pCtx->pParserBsInfo == NULL) {
621 return ERR_INFO_OUT_OF_MEMORY;
622 }
623 memset (pCtx->pParserBsInfo, 0, sizeof (SParserBsInfo));
624 pCtx->pParserBsInfo->pDstBuff = static_cast<uint8_t*> (pMa->WelsMallocz (MAX_ACCESS_UNIT_CAPACITY * sizeof (uint8_t),
625 "pCtx->pParserBsInfo->pDstBuff"));
626 if (pCtx->pParserBsInfo->pDstBuff == NULL) {
627 return ERR_INFO_OUT_OF_MEMORY;
628 }
629 memset (pCtx->pParserBsInfo->pDstBuff, 0, MAX_ACCESS_UNIT_CAPACITY * sizeof (uint8_t));
630
631 if ((pCtx->sSavedData.pHead = static_cast<uint8_t*> (pMa->WelsMallocz (pCtx->iMaxBsBufferSizeInByte,
632 "pCtx->sSavedData.pHead"))) == NULL) {
633 return ERR_INFO_OUT_OF_MEMORY;
634 }
635 pCtx->sSavedData.pStartPos = pCtx->sSavedData.pCurPos = pCtx->sSavedData.pHead;
636 pCtx->sSavedData.pEnd = pCtx->sSavedData.pHead + pCtx->iMaxBsBufferSizeInByte;
637
638 pCtx->iMaxNalNum = MAX_NAL_UNITS_IN_LAYER + 2; //2 reserved for SPS+PPS
639 pCtx->pParserBsInfo->pNalLenInByte = static_cast<int*> (pMa->WelsMallocz (pCtx->iMaxNalNum * sizeof (int),
640 "pCtx->pParserBsInfo->pNalLenInByte"));
641 if (pCtx->pParserBsInfo->pNalLenInByte == NULL) {
642 return ERR_INFO_OUT_OF_MEMORY;
643 }
644 }
645 return ERR_NONE;
646}
647
648int32_t ExpandBsBuffer (PWelsDecoderContext pCtx, const int kiSrcLen) {
649 if (pCtx == NULL)

Callers 1

WelsInitStaticMemoryFunction · 0.85

Calls 1

WelsMalloczMethod · 0.80

Tested by

no test coverage detected