History

Add Transform 8x8 support Add Intra 8x8 support Add no_deblocking support inside T8x8 Add CABAC parse support Add static data sheet for dequant Fix bugs and clean/astyle the code Remove build warnings Modify the UT cases Fix the ParseNalHeader bug

Haibo committed 11 years ago

Commit e9916c71 parent 473f2e325 files · +1808 −270Browse files

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

Unified · Split

codec/decoder/core/src/decoder_core.cpp+30−2
@@ -1238,11 +1238,16 @@ int32_t InitialDqLayersContext (PWelsDecoderContext pCtx, const int32_t kiMaxWid · 1237 unmodified lines
12381238 int8_t) * MB_BLOCK4x4_NUM, "pCtx->sMb.pRefIndex[][]");
12391239 pCtx->sMb.pLumaQp[i] = (int8_t*)WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (int8_t),
12401240 "pCtx->sMb.pLumaQp[]");
1241+ pCtx->sMb.pNoSubMbPartSizeLessThan8x8Flag[i] = (bool*)WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (
1242+ bool),
1243+ "pCtx->sMb.pNoSubMbPartSizeLessThan8x8Flag[]");
1244+ pCtx->sMb.pTransformSize8x8Flag[i] = (bool*)WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (bool),
1245+ "pCtx->sMb.pTransformSize8x8Flag[]");
12411246 pCtx->sMb.pChromaQp[i] = (int8_t (*)[2])WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (int8_t) * 2,
12421247 "pCtx->sMb.pChromaQp[]");
12431248 pCtx->sMb.pMvd[i][0] = (int16_t (*)[16][2])WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (
12441249 int16_t) * MV_A * MB_BLOCK4x4_NUM, "pCtx->sMb.pMvd[][]");
1245− pCtx->sMb.pCbfDc[i] = (uint8_t*)WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (uint8_t),
1250+ pCtx->sMb.pCbfDc[i] = (uint16_t*)WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (uint16_t),
12461251 "pCtx->sMb.pCbfDc[]");
12471252 pCtx->sMb.pNzc[i] = (int8_t (*)[24])WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (int8_t) * 24,
12481253 "pCtx->sMb.pNzc[]");
@@ -1255,6 +1260,8 @@ int32_t InitialDqLayersContext (PWelsDecoderContext pCtx, const int32_t kiMaxWid · 6 unmodified lines
12551260 "pCtx->sMb.pIntraPredMode[]");
12561261 pCtx->sMb.pIntra4x4FinalMode[i] = (int8_t (*)[MB_BLOCK4x4_NUM])WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight *
12571262 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),
1264+ "pCtx->sMb.pIntraNxNAvailFlag");
12581265 pCtx->sMb.pChromaPredMode[i] = (int8_t*)WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (int8_t),
12591266 "pCtx->sMb.pChromaPredMode[]");
12601267 pCtx->sMb.pCbp[i] = (int8_t*)WelsMallocz (pCtx->sMb.iMbWidth * pCtx->sMb.iMbHeight * sizeof (int8_t),
@@ -1341,6 +1348,18 @@ void UninitialDqLayersContext (PWelsDecoderContext pCtx) { · 80 unmodified lines
13411348 pCtx->sMb.pRefIndex[i][0] = NULL;
13421349 }
13431350
1351+ if (pCtx->sMb.pNoSubMbPartSizeLessThan8x8Flag[i]) {
1352+ WelsFree (pCtx->sMb.pNoSubMbPartSizeLessThan8x8Flag[i], "pCtx->sMb.pNoSubMbPartSizeLessThan8x8Flag[]");
1353+
1354+ pCtx->sMb.pNoSubMbPartSizeLessThan8x8Flag[i] = NULL;
1355+ }
1356+
1357+ if (pCtx->sMb.pTransformSize8x8Flag[i]) {
1358+ WelsFree (pCtx->sMb.pTransformSize8x8Flag[i], "pCtx->sMb.pTransformSize8x8Flag[]");
1359+
1360+ pCtx->sMb.pTransformSize8x8Flag[i] = NULL;
1361+ }
1362+
13441363 if (pCtx->sMb.pLumaQp[i]) {
13451364 WelsFree (pCtx->sMb.pLumaQp[i], "pCtx->sMb.pLumaQp[]");
13461365
@@ -1393,6 +1412,12 @@ void UninitialDqLayersContext (PWelsDecoderContext pCtx) { · 46 unmodified lines
13931412 pCtx->sMb.pIntra4x4FinalMode[i] = NULL;
13941413 }
13951414
1415+ if (pCtx->sMb.pIntraNxNAvailFlag[i]) {
1416+ WelsFree (pCtx->sMb.pIntraNxNAvailFlag[i], "pCtx->sMb.pIntraNxNAvailFlag");
1417+
1418+ pCtx->sMb.pIntraNxNAvailFlag[i] = NULL;
1419+ }
1420+
13961421 if (pCtx->sMb.pChromaPredMode[i]) {
13971422 WelsFree (pCtx->sMb.pChromaPredMode[i], "pCtx->sMb.pChromaPredMode[]");
13981423
@@ -1989,7 +2014,7 @@ static inline void InitDqLayerInfo (PDqLayer pDqLayer, PLayerInfo pLayerInfo, PN · 590 unmodified lines
19892014 if (kuiQualityId == BASE_QUALITY_ID) {
19902015 pDqLayer->pRefPicListReordering = &pSh->pRefPicListReordering;
19912016 pDqLayer->pRefPicMarking = &pSh->sRefMarking;
1992−
2017+
19932018 if (pSh->pPps->bWeightedPredFlag) {
19942019 pDqLayer->bUseWeightPredictionFlag = true;
19952020 pDqLayer->pPredWeightTable = &pSh->sPredWeightTable;
@@ -2029,6 +2054,8 @@ void InitCurDqLayerData (PWelsDecoderContext pCtx, PDqLayer pCurDq) { · 33 unmodified lines
20292054 pCurDq->pSliceIdc = pCtx->sMb.pSliceIdc[0];
20302055 pCurDq->pMv[0] = pCtx->sMb.pMv[0][0];
20312056 pCurDq->pRefIndex[0] = pCtx->sMb.pRefIndex[0][0];
2057+ pCurDq->pNoSubMbPartSizeLessThan8x8Flag = pCtx->sMb.pNoSubMbPartSizeLessThan8x8Flag[0];
2058+ pCurDq->pTransformSize8x8Flag = pCtx->sMb.pTransformSize8x8Flag[0];
20322059 pCurDq->pLumaQp = pCtx->sMb.pLumaQp[0];
20332060 pCurDq->pChromaQp = pCtx->sMb.pChromaQp[0];
20342061 pCurDq->pMvd[0] = pCtx->sMb.pMvd[0][0];
@@ -2038,6 +2065,7 @@ void InitCurDqLayerData (PWelsDecoderContext pCtx, PDqLayer pCurDq) { · 3 unmodified lines
20382065 pCurDq->pScaledTCoeff = pCtx->sMb.pScaledTCoeff[0];
20392066 pCurDq->pIntraPredMode = pCtx->sMb.pIntraPredMode[0];
20402067 pCurDq->pIntra4x4FinalMode = pCtx->sMb.pIntra4x4FinalMode[0];
2068+ pCurDq->pIntraNxNAvailFlag = pCtx->sMb.pIntraNxNAvailFlag[0];
20412069 pCurDq->pChromaPredMode = pCtx->sMb.pChromaPredMode[0];
20422070 pCurDq->pCbp = pCtx->sMb.pCbp[0];
20432071 pCurDq->pSubMbType = pCtx->sMb.pSubMbType[0];

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