History

add dec memory check

huili2 committed 11 years ago

Commit 3cb417f1 parent 9ecc67112 files · +196 −141Browse files

Showing the changes to codec/decoder/core/src/decoder_core.cpp (1 of 12 files). Show all

Unified · Split

codec/decoder/core/src/decoder_core.cpp+83−68
@@ -456,27 +456,29 @@ int32_t InitBsBuffer (PWelsDecoderContext pCtx) { · 455 unmodified lines
456456 if (pCtx == NULL)
457457 return ERR_INFO_INVALID_PTR;
458458
459+ CMemoryAlign* pMa = pCtx->pMemAlign;
460+
459461 pCtx->iMaxBsBufferSizeInByte = MIN_ACCESS_UNIT_CAPACITY * MAX_BUFFERED_NUM;
460− if ((pCtx->sRawData.pHead = static_cast<uint8_t*> (WelsMallocz (pCtx->iMaxBsBufferSizeInByte,
462+ if ((pCtx->sRawData.pHead = static_cast<uint8_t*> (pMa->WelsMallocz (pCtx->iMaxBsBufferSizeInByte,
461463 "pCtx->sRawData.pHead"))) == NULL) {
462464 return ERR_INFO_OUT_OF_MEMORY;
463465 }
464466 pCtx->sRawData.pStartPos = pCtx->sRawData.pCurPos = pCtx->sRawData.pHead;
465467 pCtx->sRawData.pEnd = pCtx->sRawData.pHead + pCtx->iMaxBsBufferSizeInByte;
466468 if (pCtx->bParseOnly) {
467− pCtx->pParserBsInfo = static_cast<SParserBsInfo*> (WelsMallocz (sizeof (SParserBsInfo), "pCtx->pParserBsInfo"));
469+ pCtx->pParserBsInfo = static_cast<SParserBsInfo*> (pMa->WelsMallocz (sizeof (SParserBsInfo), "pCtx->pParserBsInfo"));
468470 if (pCtx->pParserBsInfo == NULL) {
469471 return ERR_INFO_OUT_OF_MEMORY;
470472 }
471473 memset (pCtx->pParserBsInfo, 0, sizeof (SParserBsInfo));
472− pCtx->pParserBsInfo->pDstBuff = static_cast<uint8_t*> (WelsMallocz (MAX_ACCESS_UNIT_CAPACITY * sizeof (uint8_t),
474+ pCtx->pParserBsInfo->pDstBuff = static_cast<uint8_t*> (pMa->WelsMallocz (MAX_ACCESS_UNIT_CAPACITY * sizeof (uint8_t),
473475 "pCtx->pParserBsInfo->pDstBuff"));
474476 if (pCtx->pParserBsInfo->pDstBuff == NULL) {
475477 return ERR_INFO_OUT_OF_MEMORY;
476478 }
477479 memset (pCtx->pParserBsInfo->pDstBuff, 0, MAX_ACCESS_UNIT_CAPACITY * sizeof (uint8_t));
478480
479− if ((pCtx->sSavedData.pHead = static_cast<uint8_t*> (WelsMallocz (pCtx->iMaxBsBufferSizeInByte,
481+ if ((pCtx->sSavedData.pHead = static_cast<uint8_t*> (pMa->WelsMallocz (pCtx->iMaxBsBufferSizeInByte,
480482 "pCtx->sSavedData.pHead"))) == NULL) {
481483 return ERR_INFO_OUT_OF_MEMORY;
482484 }
@@ -492,7 +494,8 @@ int32_t ExpandBsBuffer (PWelsDecoderContext pCtx, const int kiSrcLen) { · 9 unmodified lines
492494 int32_t iExpandStepShift = 1;
493495 int32_t iNewBuffLen = WELS_MAX ((kiSrcLen * MAX_BUFFERED_NUM), (pCtx->iMaxBsBufferSizeInByte << iExpandStepShift));
494496 //allocate new bs buffer
495− uint8_t* pNewBsBuff = static_cast<uint8_t*> (WelsMallocz (iNewBuffLen, "pCtx->sRawData.pHead"));
497+ CMemoryAlign* pMa = pCtx->pMemAlign;
498+ uint8_t* pNewBsBuff = static_cast<uint8_t*> (pMa->WelsMallocz (iNewBuffLen, "pCtx->sRawData.pHead"));
496499 if (pNewBsBuff == NULL)
497500 return ERR_INFO_OUT_OF_MEMORY;
498501
@@ -510,7 +513,7 @@ int32_t ExpandBsBuffer (PWelsDecoderContext pCtx, const int kiSrcLen) { · 11 unmodified lines
510513 pCtx->sRawData.pStartPos = pNewBsBuff + (pCtx->sRawData.pStartPos - pCtx->sRawData.pHead);
511514 pCtx->sRawData.pCurPos = pNewBsBuff + (pCtx->sRawData.pCurPos - pCtx->sRawData.pHead);
512515 pCtx->sRawData.pEnd = pNewBsBuff + iNewBuffLen;
513− WelsFree (pCtx->sRawData.pHead, "pCtx->sRawData.pHead");
516+ pMa->WelsFree (pCtx->sRawData.pHead, "pCtx->sRawData.pHead");
514517 pCtx->sRawData.pHead = pNewBsBuff;
515518 return ERR_NONE;
516519 }
@@ -545,7 +548,7 @@ int32_t WelsInitMemory (PWelsDecoderContext pCtx) { · 28 unmodified lines
545548 return ERR_INFO_INVALID_PTR;
546549 }
547550
548− if (MemInitNalList (&pCtx->pAccessUnitList, MAX_NAL_UNIT_NUM_IN_AU) != 0)
551+ if (MemInitNalList (&pCtx->pAccessUnitList, MAX_NAL_UNIT_NUM_IN_AU, pCtx->pMemAlign) != 0)
549552 return ERR_INFO_OUT_OF_MEMORY;
550553
551554 if (InitBsBuffer (pCtx) != 0)
@@ -566,16 +569,18 @@ void WelsFreeMemory (PWelsDecoderContext pCtx) { · 14 unmodified lines
566569 if (pCtx == NULL)
567570 return;
568571
572+ CMemoryAlign* pMa = pCtx->pMemAlign;
573+
569574 if (NULL != pCtx->pParam) {
570− WelsFree (pCtx->pParam, "pCtx->pParam");
575+ pMa->WelsFree (pCtx->pParam, "pCtx->pParam");
571576
572577 pCtx->pParam = NULL;
573578 }
574579
575− MemFreeNalList (&pCtx->pAccessUnitList);
580+ MemFreeNalList (&pCtx->pAccessUnitList, pMa);
576581
577582 if (pCtx->sRawData.pHead) {
578− WelsFree (pCtx->sRawData.pHead, "pCtx->sRawData->pHead");
583+ pMa->WelsFree (pCtx->sRawData.pHead, "pCtx->sRawData->pHead");
579584 }
580585 pCtx->sRawData.pHead = NULL;
581586 pCtx->sRawData.pEnd = NULL;
@@ -583,7 +588,7 @@ void WelsFreeMemory (PWelsDecoderContext pCtx) { · 1 unmodified line
583588 pCtx->sRawData.pCurPos = NULL;
584589 if (pCtx->bParseOnly) {
585590 if (pCtx->sSavedData.pHead) {
586− WelsFree (pCtx->sSavedData.pHead, "pCtx->sSavedData->pHead");
591+ pMa->WelsFree (pCtx->sSavedData.pHead, "pCtx->sSavedData->pHead");
587592 }
588593 pCtx->sSavedData.pHead = NULL;
589594 pCtx->sSavedData.pEnd = NULL;
@@ -591,10 +596,10 @@ void WelsFreeMemory (PWelsDecoderContext pCtx) { · 1 unmodified line
591596 pCtx->sSavedData.pCurPos = NULL;
592597 if (pCtx->pParserBsInfo) {
593598 if (pCtx->pParserBsInfo->pDstBuff) {
594− WelsFree (pCtx->pParserBsInfo->pDstBuff, "pCtx->pParserBsInfo->pDstBuff");
599+ pMa->WelsFree (pCtx->pParserBsInfo->pDstBuff, "pCtx->pParserBsInfo->pDstBuff");
595600 pCtx->pParserBsInfo->pDstBuff = NULL;
596601 }
597− WelsFree (pCtx->pParserBsInfo, "pCtx->pParserBsInfo");
602+ pMa->WelsFree (pCtx->pParserBsInfo, "pCtx->pParserBsInfo");
598603 pCtx->pParserBsInfo = NULL;
599604 }
600605 }
@@ -640,7 +645,8 @@ void DecodeNalHeaderExt (PNalUnit pNal, uint8_t* pSrc) { · 39 unmodified lines
640645 * Parse slice header of bitstream in avc for storing data structure
641646 */
642647 int32_t ParseSliceHeaderSyntaxs (PWelsDecoderContext pCtx, PBitStringAux pBs, const bool kbExtensionFlag) {
643− PNalUnit const kpCurNal = pCtx->pAccessUnitList->pNalUnitsList[pCtx->pAccessUnitList->uiAvailUnitsNum - 1];
648+ PNalUnit const kpCurNal = pCtx->pAccessUnitList->pNalUnitsList[pCtx->pAccessUnitList->uiAvailUnitsNum -
649+ 1];
644650
645651 PNalUnitHeaderExt pNalHeaderExt = NULL;
646652 PSliceHeader pSliceHead = NULL;
@@ -970,7 +976,7 @@ int32_t ParseSliceHeaderSyntaxs (PWelsDecoderContext pCtx, PBitStringAux pBs, co · 323 unmodified lines
970976 }
971977
972978 bSgChangeCycleInvolved = (pPps->uiNumSliceGroups > 1 && pPps->uiSliceGroupMapType >= 3
973− && pPps->uiSliceGroupMapType <= 5);
979+ && pPps->uiSliceGroupMapType <= 5);
974980 if (kbExtensionFlag && bSgChangeCycleInvolved)
975981 bSgChangeCycleInvolved = (bSgChangeCycleInvolved && (uiQualityId == BASE_QUALITY_ID));
976982 if (bSgChangeCycleInvolved) {
@@ -1030,7 +1036,8 @@ int32_t ParseSliceHeaderSyntaxs (PWelsDecoderContext pCtx, PBitStringAux pBs, co · 53 unmodified lines
10301036 pos.iRightOffset = pSubsetSps->sSpsSvcExt.sSeqScaledRefLayer.iRightOffset;
10311037 pos.iBottomOffset = pSubsetSps->sSpsSvcExt.sSeqScaledRefLayer.iBottomOffset * (2 - pSps->bFrameMbsOnlyFlag);
10321038 //memcpy(&pSliceHeadExt->sScaledRefLayer, &pos, sizeof(SPosOffset));//confirmed_safe_unsafe_usage
1033− pSliceHeadExt->iScaledRefLayerPicWidthInSampleLuma = (pSliceHead->iMbWidth << 4) - (pos.iLeftOffset + pos.iRightOffset);
1039+ pSliceHeadExt->iScaledRefLayerPicWidthInSampleLuma = (pSliceHead->iMbWidth << 4) -
1040+ (pos.iLeftOffset + pos.iRightOffset);
10341041 pSliceHeadExt->iScaledRefLayerPicHeightInSampleLuma = (pSliceHead->iMbHeight << 4) -
10351042 (pos.iTopOffset + pos.iBottomOffset) / (1 + pSliceHead->bFieldPicFlag);
10361043 }
@@ -1218,68 +1225,75 @@ int32_t InitialDqLayersContext (PWelsDecoderContext pCtx, const int32_t kiMaxWid · 181 unmodified lines
12181225 && kiMaxHeight <= pCtx->iPicHeightReq) // have same dimension memory, skipped
12191226 return ERR_NONE;
12201227
1228+ CMemoryAlign* pMa = pCtx->pMemAlign;
12211229
12221230 UninitialDqLayersContext (pCtx);
12231231
12241232 do {
1225− PDqLayer pDq = (PDqLayer)WelsMallocz (sizeof (SDqLayer), "PDqLayer");
1233+ PDqLayer pDq = (PDqLayer)pMa->WelsMallocz (sizeof (SDqLayer), "PDqLayer");
12261234
12271235 if (pDq == NULL)
12281236 return ERR_INFO_OUT_OF_MEMORY;
12291237
12301238 memset (pDq, 0, sizeof (SDqLayer));
12311239
1232− pCtx->sMb.pMbType[i] = (int16_t*)WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (int16_t),
1240+ pCtx->sMb.pMbType[i] = (int16_t*)pMa->WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (int16_t),
12331241 "pCtx->sMb.pMbType[]");
1234− pCtx->sMb.pMv[i][0] = (int16_t (*)[16][2])WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (
1242+ pCtx->sMb.pMv[i][0] = (int16_t (*)[16][2])pMa->WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (
12351243 int16_t) * MV_A * MB_BLOCK4x4_NUM, "pCtx->sMb.pMv[][]");
1236− pCtx->sMb.pRefIndex[i][0] = (int8_t (*)[MB_BLOCK4x4_NUM])WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight *
1244+ pCtx->sMb.pRefIndex[i][0] = (int8_t (*)[MB_BLOCK4x4_NUM])pMa->WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight *
12371245 sizeof (
12381246 int8_t) * MB_BLOCK4x4_NUM, "pCtx->sMb.pRefIndex[][]");
1239− pCtx->sMb.pLumaQp[i] = (int8_t*)WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (int8_t),
1247+ pCtx->sMb.pLumaQp[i] = (int8_t*)pMa->WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (int8_t),
12401248 "pCtx->sMb.pLumaQp[]");
1241− pCtx->sMb.pNoSubMbPartSizeLessThan8x8Flag[i] = (bool*)WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (
1249+ pCtx->sMb.pNoSubMbPartSizeLessThan8x8Flag[i] = (bool*)pMa->WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight *
1250+ sizeof (
12421251 bool),
12431252 "pCtx->sMb.pNoSubMbPartSizeLessThan8x8Flag[]");
1244− pCtx->sMb.pTransformSize8x8Flag[i] = (bool*)WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (bool),
1253+ pCtx->sMb.pTransformSize8x8Flag[i] = (bool*)pMa->WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (bool),
12451254 "pCtx->sMb.pTransformSize8x8Flag[]");
1246− pCtx->sMb.pChromaQp[i] = (int8_t (*)[2])WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (int8_t) * 2,
1255+ pCtx->sMb.pChromaQp[i] = (int8_t (*)[2])pMa->WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (
1256+ int8_t) * 2,
12471257 "pCtx->sMb.pChromaQp[]");
1248− pCtx->sMb.pMvd[i][0] = (int16_t (*)[16][2])WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (
1258+ pCtx->sMb.pMvd[i][0] = (int16_t (*)[16][2])pMa->WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (
12491259 int16_t) * MV_A * MB_BLOCK4x4_NUM, "pCtx->sMb.pMvd[][]");
1250− pCtx->sMb.pCbfDc[i] = (uint16_t*)WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (uint16_t),
1260+ pCtx->sMb.pCbfDc[i] = (uint16_t*)pMa->WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (uint16_t),
12511261 "pCtx->sMb.pCbfDc[]");
1252− pCtx->sMb.pNzc[i] = (int8_t (*)[24])WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (int8_t) * 24,
1262+ pCtx->sMb.pNzc[i] = (int8_t (*)[24])pMa->WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (int8_t) * 24,
12531263 "pCtx->sMb.pNzc[]");
1254− pCtx->sMb.pNzcRs[i] = (int8_t (*)[24])WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (int8_t) * 24,
1264+ pCtx->sMb.pNzcRs[i] = (int8_t (*)[24])pMa->WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (int8_t) * 24,
12551265 "pCtx->sMb.pNzcRs[]");
1256− pCtx->sMb.pScaledTCoeff[i] = (int16_t (*)[MB_COEFF_LIST_SIZE])WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight *
1266+ pCtx->sMb.pScaledTCoeff[i] = (int16_t (*)[MB_COEFF_LIST_SIZE])pMa->WelsMallocz (pCtx->sMb.iMbWidth *
1267+ pCtx->sMb.iMbHeight *
12571268 sizeof (int16_t) * MB_COEFF_LIST_SIZE, "pCtx->sMb.pScaledTCoeff[]");
1258− pCtx->sMb.pIntraPredMode[i] = (int8_t (*)[8])WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (
1269+ pCtx->sMb.pIntraPredMode[i] = (int8_t (*)[8])pMa->WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (
12591270 int8_t) * 8,
12601271 "pCtx->sMb.pIntraPredMode[]");
1261− pCtx->sMb.pIntra4x4FinalMode[i] = (int8_t (*)[MB_BLOCK4x4_NUM])WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight *
1272+ pCtx->sMb.pIntra4x4FinalMode[i] = (int8_t (*)[MB_BLOCK4x4_NUM])pMa->WelsMallocz (pCtx->sMb.iMbWidth *
1273+ pCtx->sMb.iMbHeight *
12621274 sizeof (int8_t) * MB_BLOCK4x4_NUM, "pCtx->sMb.pIntra4x4FinalMode[]");
1263− pCtx->sMb.pIntraNxNAvailFlag[i] = (uint8_t (*))WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (int8_t),
1275+ pCtx->sMb.pIntraNxNAvailFlag[i] = (uint8_t (*))pMa->WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (
1276+ int8_t),
12641277 "pCtx->sMb.pIntraNxNAvailFlag");
1265− pCtx->sMb.pChromaPredMode[i] = (int8_t*)WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (int8_t),
1278+ pCtx->sMb.pChromaPredMode[i] = (int8_t*)pMa->WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (int8_t),
12661279 "pCtx->sMb.pChromaPredMode[]");
1267− pCtx->sMb.pCbp[i] = (int8_t*)WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (int8_t),
1280+ pCtx->sMb.pCbp[i] = (int8_t*)pMa->WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (int8_t),
12681281 "pCtx->sMb.pCbp[]");
1269− pCtx->sMb.pSubMbType[i] = (int8_t (*)[MB_PARTITION_SIZE])WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight *
1282+ pCtx->sMb.pSubMbType[i] = (int8_t (*)[MB_PARTITION_SIZE])pMa->WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight *
12701283 sizeof (
12711284 int8_t) * MB_PARTITION_SIZE, "pCtx->sMb.pSubMbType[]");
1272− pCtx->sMb.pSliceIdc[i] = (int32_t*) WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (int32_t),
1285+ pCtx->sMb.pSliceIdc[i] = (int32_t*) pMa->WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (int32_t),
12731286 "pCtx->sMb.pSliceIdc[]"); // using int32_t for slice_idc, 4/21/2010
1274− pCtx->sMb.pResidualPredFlag[i] = (int8_t*) WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (int8_t),
1287+ pCtx->sMb.pResidualPredFlag[i] = (int8_t*) pMa->WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (int8_t),
12751288 "pCtx->sMb.pResidualPredFlag[]");
1276− //pCtx->sMb.pMotionPredFlag[i] = (uint8_t *) WelsMallocz(pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof(uint8_t), "pCtx->sMb.pMotionPredFlag[]");
1277− pCtx->sMb.pInterPredictionDoneFlag[i] = (int8_t*) WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (
1289+ //pCtx->sMb.pMotionPredFlag[i] = (uint8_t *) pMa->WelsMallocz(pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof(uint8_t), "pCtx->sMb.pMotionPredFlag[]");
1290+ pCtx->sMb.pInterPredictionDoneFlag[i] = (int8_t*) pMa->WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (
12781291 int8_t), "pCtx->sMb.pInterPredictionDoneFlag[]");
12791292
1280− pCtx->sMb.pMbCorrectlyDecodedFlag[i] = (bool*) WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (bool),
1293+ pCtx->sMb.pMbCorrectlyDecodedFlag[i] = (bool*) pMa->WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (
1294+ bool),
12811295 "pCtx->sMb.pMbCorrectlyDecodedFlag[]");
1282− pCtx->sMb.pMbRefConcealedFlag[i] = (bool*) WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (bool),
1296+ pCtx->sMb.pMbRefConcealedFlag[i] = (bool*) pMa->WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (bool),
12831297 "pCtx->pMbRefConcealedFlag[]");
12841298
12851299 // check memory block valid due above allocated..
@@ -1322,6 +1336,7 @@ int32_t InitialDqLayersContext (PWelsDecoderContext pCtx, const int32_t kiMaxWid · 36 unmodified lines
13221336
13231337 void UninitialDqLayersContext (PWelsDecoderContext pCtx) {
13241338 int32_t i = 0;
1339+ CMemoryAlign* pMa = pCtx->pMemAlign;
13251340
13261341 do {
13271342 PDqLayer pDq = pCtx->pDqLayersList[i];
@@ -1331,146 +1346,146 @@ void UninitialDqLayersContext (PWelsDecoderContext pCtx) { · 3 unmodified lines
13311346 }
13321347
13331348 if (pCtx->sMb.pMbType[i]) {
1334− WelsFree (pCtx->sMb.pMbType[i], "pCtx->sMb.pMbType[]");
1349+ pMa->WelsFree (pCtx->sMb.pMbType[i], "pCtx->sMb.pMbType[]");
13351350
13361351 pCtx->sMb.pMbType[i] = NULL;
13371352 }
13381353
13391354 if (pCtx->sMb.pMv[i][0]) {
1340− WelsFree (pCtx->sMb.pMv[i][0], "pCtx->sMb.pMv[][]");
1355+ pMa->WelsFree (pCtx->sMb.pMv[i][0], "pCtx->sMb.pMv[][]");
13411356
13421357 pCtx->sMb.pMv[i][0] = NULL;
13431358 }
13441359
13451360 if (pCtx->sMb.pRefIndex[i][0]) {
1346− WelsFree (pCtx->sMb.pRefIndex[i][0], "pCtx->sMb.pRefIndex[][]");
1361+ pMa->WelsFree (pCtx->sMb.pRefIndex[i][0], "pCtx->sMb.pRefIndex[][]");
13471362
13481363 pCtx->sMb.pRefIndex[i][0] = NULL;
13491364 }
13501365
13511366 if (pCtx->sMb.pNoSubMbPartSizeLessThan8x8Flag[i]) {
1352− WelsFree (pCtx->sMb.pNoSubMbPartSizeLessThan8x8Flag[i], "pCtx->sMb.pNoSubMbPartSizeLessThan8x8Flag[]");
1367+ pMa->WelsFree (pCtx->sMb.pNoSubMbPartSizeLessThan8x8Flag[i], "pCtx->sMb.pNoSubMbPartSizeLessThan8x8Flag[]");
13531368
13541369 pCtx->sMb.pNoSubMbPartSizeLessThan8x8Flag[i] = NULL;
13551370 }
13561371
13571372 if (pCtx->sMb.pTransformSize8x8Flag[i]) {
1358− WelsFree (pCtx->sMb.pTransformSize8x8Flag[i], "pCtx->sMb.pTransformSize8x8Flag[]");
1373+ pMa->WelsFree (pCtx->sMb.pTransformSize8x8Flag[i], "pCtx->sMb.pTransformSize8x8Flag[]");
13591374
13601375 pCtx->sMb.pTransformSize8x8Flag[i] = NULL;
13611376 }
13621377
13631378 if (pCtx->sMb.pLumaQp[i]) {
1364− WelsFree (pCtx->sMb.pLumaQp[i], "pCtx->sMb.pLumaQp[]");
1379+ pMa->WelsFree (pCtx->sMb.pLumaQp[i], "pCtx->sMb.pLumaQp[]");
13651380
13661381 pCtx->sMb.pLumaQp[i] = NULL;
13671382 }
13681383
13691384 if (pCtx->sMb.pChromaQp[i]) {
1370− WelsFree (pCtx->sMb.pChromaQp[i], "pCtx->sMb.pChromaQp[]");
1385+ pMa->WelsFree (pCtx->sMb.pChromaQp[i], "pCtx->sMb.pChromaQp[]");
13711386
13721387 pCtx->sMb.pChromaQp[i] = NULL;
13731388 }
13741389
13751390 if (pCtx->sMb.pMvd[i][0]) {
1376− WelsFree (pCtx->sMb.pMvd[i][0], "pCtx->sMb.pMvd[][]");
1391+ pMa->WelsFree (pCtx->sMb.pMvd[i][0], "pCtx->sMb.pMvd[][]");
13771392 pCtx->sMb.pMvd[i][0] = NULL;
13781393 }
13791394
13801395 if (pCtx->sMb.pCbfDc[i]) {
1381− WelsFree (pCtx->sMb.pCbfDc[i], "pCtx->sMb.pCbfDc[]");
1396+ pMa->WelsFree (pCtx->sMb.pCbfDc[i], "pCtx->sMb.pCbfDc[]");
13821397 pCtx->sMb.pCbfDc[i] = NULL;
13831398 }
13841399
13851400 if (pCtx->sMb.pNzc[i]) {
1386− WelsFree (pCtx->sMb.pNzc[i], "pCtx->sMb.pNzc[]");
1401+ pMa->WelsFree (pCtx->sMb.pNzc[i], "pCtx->sMb.pNzc[]");
13871402
13881403 pCtx->sMb.pNzc[i] = NULL;
13891404 }
13901405
13911406 if (pCtx->sMb.pNzcRs[i]) {
1392− WelsFree (pCtx->sMb.pNzcRs[i], "pCtx->sMb.pNzcRs[]");
1407+ pMa->WelsFree (pCtx->sMb.pNzcRs[i], "pCtx->sMb.pNzcRs[]");
13931408
13941409 pCtx->sMb.pNzcRs[i] = NULL;
13951410 }
13961411
13971412 if (pCtx->sMb.pScaledTCoeff[i]) {
1398− WelsFree (pCtx->sMb.pScaledTCoeff[i], "pCtx->sMb.pScaledTCoeff[]");
1413+ pMa->WelsFree (pCtx->sMb.pScaledTCoeff[i], "pCtx->sMb.pScaledTCoeff[]");
13991414
14001415 pCtx->sMb.pScaledTCoeff[i] = NULL;
14011416 }
14021417
14031418 if (pCtx->sMb.pIntraPredMode[i]) {
1404− WelsFree (pCtx->sMb.pIntraPredMode[i], "pCtx->sMb.pIntraPredMode[]");
1419+ pMa->WelsFree (pCtx->sMb.pIntraPredMode[i], "pCtx->sMb.pIntraPredMode[]");
14051420
14061421 pCtx->sMb.pIntraPredMode[i] = NULL;
14071422 }
14081423
14091424 if (pCtx->sMb.pIntra4x4FinalMode[i]) {
1410− WelsFree (pCtx->sMb.pIntra4x4FinalMode[i], "pCtx->sMb.pIntra4x4FinalMode[]");
1425+ pMa->WelsFree (pCtx->sMb.pIntra4x4FinalMode[i], "pCtx->sMb.pIntra4x4FinalMode[]");
14111426
14121427 pCtx->sMb.pIntra4x4FinalMode[i] = NULL;
14131428 }
14141429
14151430 if (pCtx->sMb.pIntraNxNAvailFlag[i]) {
1416− WelsFree (pCtx->sMb.pIntraNxNAvailFlag[i], "pCtx->sMb.pIntraNxNAvailFlag");
1431+ pMa->WelsFree (pCtx->sMb.pIntraNxNAvailFlag[i], "pCtx->sMb.pIntraNxNAvailFlag");
14171432
14181433 pCtx->sMb.pIntraNxNAvailFlag[i] = NULL;
14191434 }
14201435
14211436 if (pCtx->sMb.pChromaPredMode[i]) {
1422− WelsFree (pCtx->sMb.pChromaPredMode[i], "pCtx->sMb.pChromaPredMode[]");
1437+ pMa->WelsFree (pCtx->sMb.pChromaPredMode[i], "pCtx->sMb.pChromaPredMode[]");
14231438
14241439 pCtx->sMb.pChromaPredMode[i] = NULL;
14251440 }
14261441
14271442 if (pCtx->sMb.pCbp[i]) {
1428− WelsFree (pCtx->sMb.pCbp[i], "pCtx->sMb.pCbp[]");
1443+ pMa->WelsFree (pCtx->sMb.pCbp[i], "pCtx->sMb.pCbp[]");
14291444
14301445 pCtx->sMb.pCbp[i] = NULL;
14311446 }
14321447
14331448 // if (pCtx->sMb.pMotionPredFlag[i])
14341449 //{
1435− // WelsFree( pCtx->sMb.pMotionPredFlag[i], "pCtx->sMb.pMotionPredFlag[]" );
1450+ // pMa->WelsFree( pCtx->sMb.pMotionPredFlag[i], "pCtx->sMb.pMotionPredFlag[]" );
14361451
14371452 // pCtx->sMb.pMotionPredFlag[i] = NULL;
14381453 //}
14391454
14401455 if (pCtx->sMb.pSubMbType[i]) {
1441− WelsFree (pCtx->sMb.pSubMbType[i], "pCtx->sMb.pSubMbType[]");
1456+ pMa->WelsFree (pCtx->sMb.pSubMbType[i], "pCtx->sMb.pSubMbType[]");
14421457
14431458 pCtx->sMb.pSubMbType[i] = NULL;
14441459 }
14451460
14461461 if (pCtx->sMb.pSliceIdc[i]) {
1447− WelsFree (pCtx->sMb.pSliceIdc[i], "pCtx->sMb.pSliceIdc[]");
1462+ pMa->WelsFree (pCtx->sMb.pSliceIdc[i], "pCtx->sMb.pSliceIdc[]");
14481463
14491464 pCtx->sMb.pSliceIdc[i] = NULL;
14501465 }
14511466
14521467 if (pCtx->sMb.pResidualPredFlag[i]) {
1453− WelsFree (pCtx->sMb.pResidualPredFlag[i], "pCtx->sMb.pResidualPredFlag[]");
1468+ pMa->WelsFree (pCtx->sMb.pResidualPredFlag[i], "pCtx->sMb.pResidualPredFlag[]");
14541469
14551470 pCtx->sMb.pResidualPredFlag[i] = NULL;
14561471 }
14571472
14581473 if (pCtx->sMb.pInterPredictionDoneFlag[i]) {
1459− WelsFree (pCtx->sMb.pInterPredictionDoneFlag[i], "pCtx->sMb.pInterPredictionDoneFlag[]");
1474+ pMa->WelsFree (pCtx->sMb.pInterPredictionDoneFlag[i], "pCtx->sMb.pInterPredictionDoneFlag[]");
14601475
14611476 pCtx->sMb.pInterPredictionDoneFlag[i] = NULL;
14621477 }
14631478
14641479 if (pCtx->sMb.pMbCorrectlyDecodedFlag[i]) {
1465− WelsFree (pCtx->sMb.pMbCorrectlyDecodedFlag[i], "pCtx->sMb.pMbCorrectlyDecodedFlag[]");
1480+ pMa->WelsFree (pCtx->sMb.pMbCorrectlyDecodedFlag[i], "pCtx->sMb.pMbCorrectlyDecodedFlag[]");
14661481 pCtx->sMb.pMbCorrectlyDecodedFlag[i] = NULL;
14671482 }
14681483
14691484 if (pCtx->sMb.pMbRefConcealedFlag[i]) {
1470− WelsFree (pCtx->sMb.pMbRefConcealedFlag[i], "pCtx->sMb.pMbRefConcealedFlag[]");
1485+ pMa->WelsFree (pCtx->sMb.pMbRefConcealedFlag[i], "pCtx->sMb.pMbRefConcealedFlag[]");
14711486 pCtx->sMb.pMbRefConcealedFlag[i] = NULL;
14721487 }
1473− WelsFree (pDq, "pDq");
1488+ pMa->WelsFree (pDq, "pDq");
14741489
14751490 pDq = NULL;
14761491 pCtx->pDqLayersList[i] = NULL;
@@ -2184,7 +2199,7 @@ int32_t DecodeCurrentAccessUnit (PWelsDecoderContext pCtx, uint8_t** ppDst, SBuf · 707 unmodified lines
21842199 pLayerInfo.pSubsetSps = pShExt->pSubsetSps;
21852200
21862201 pCtx->pFmo = &pCtx->sFmoList[iPpsId];
2187− if (!FmoParamUpdate (pCtx->pFmo, pLayerInfo.pSps, pLayerInfo.pPps, &pCtx->iActiveFmoNum)) {
2202+ if (!FmoParamUpdate (pCtx->pFmo, pLayerInfo.pSps, pLayerInfo.pPps, &pCtx->iActiveFmoNum, pCtx->pMemAlign)) {
21882203 pCtx->iErrorCode |= dsBitstreamError;
21892204 WelsLog (& (pCtx->sLogCtx), WELS_LOG_WARNING, "DecodeCurrentAccessUnit(), FmoParamUpdate failed, eSliceType: %d.",
21902205 pSh->eSliceType);
@@ -2192,7 +2207,7 @@ int32_t DecodeCurrentAccessUnit (PWelsDecoderContext pCtx, uint8_t** ppDst, SBuf · 1 unmodified line
21922207 }
21932208
21942209 bFreshSliceAvailable = (iCurrIdD != iLastIdD
2195− || iCurrIdQ != iLastIdQ); // do not need condition of (first_mb == 0) due multiple slices might be disorder
2210+ || iCurrIdQ != iLastIdQ); // do not need condition of (first_mb == 0) due multiple slices might be disorder
21962211
21972212 WelsDqLayerDecodeStart (pCtx, pNalCur, pLayerInfo.pSps, pLayerInfo.pPps);
21982213

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t