Showing the changes to codec/decoder/core/src/fmo.cpp (1 of 54 files). Show all
Unified · Split
| @@ -93,7 +93,7 @@ static inline int32_t FmoGenerateMbAllocMapType1 (PFmo pFmo, PPps pPps, const in · 92 unmodified lines | |||
| 93 | int32_t i = 0; | 93 | int32_t i = 0; |
| 94 | WELS_VERIFY_RETURN_IF (1, (NULL == pFmo || NULL == pPps)) | 94 | WELS_VERIFY_RETURN_IF (1, (NULL == pFmo || NULL == pPps)) |
| 95 | uiNumSliceGroups = pPps->uiNumSliceGroups; | 95 | uiNumSliceGroups = pPps->uiNumSliceGroups; |
| 96 | iMbNum = pFmo->iCountMbNum; | 96 | iMbNum = pFmo->iCountMbNum; |
| 97 | WELS_VERIFY_RETURN_IF (1, (NULL == pFmo->pMbAllocMap || iMbNum <= 0 || kiMbWidth == 0 | 97 | WELS_VERIFY_RETURN_IF (1, (NULL == pFmo->pMbAllocMap || iMbNum <= 0 || kiMbWidth == 0 |
| 98 | || uiNumSliceGroups >= MAX_SLICEGROUP_IDS)) | 98 | || uiNumSliceGroups >= MAX_SLICEGROUP_IDS)) |
| 99 | 99 | ||
| @@ -124,7 +124,7 @@ static inline int32_t FmoGenerateSliceGroup (PFmo pFmo, const PPps kpPps, const · 24 unmodified lines | |||
| 124 | // the cases we would not like | 124 | // the cases we would not like |
| 125 | WELS_VERIFY_RETURN_IF (1, (NULL == pFmo || NULL == kpPps)) | 125 | WELS_VERIFY_RETURN_IF (1, (NULL == pFmo || NULL == kpPps)) |
| 126 | 126 | ||
| 127 | iNumMb = pFmo->iCountMbNum; | 127 | iNumMb = pFmo->iCountMbNum; |
| 128 | 128 | ||
| 129 | iNumMb = kiMbWidth * kiMbHeight; | 129 | iNumMb = kiMbWidth * kiMbHeight; |
| 130 | 130 | ||
| @@ -133,15 +133,15 @@ static inline int32_t FmoGenerateSliceGroup (PFmo pFmo, const PPps kpPps, const · 2 unmodified lines | |||
| 133 | 133 | ||
| 134 | 134 | ||
| 135 | WelsFree (pFmo->pMbAllocMap, "_fmo->pMbAllocMap"); | 135 | WelsFree (pFmo->pMbAllocMap, "_fmo->pMbAllocMap"); |
| 136 | pFmo->pMbAllocMap = (uint8_t*)WelsMallocz (iNumMb * sizeof (uint8_t), "_fmo->pMbAllocMap"); | 136 | pFmo->pMbAllocMap = (uint8_t*)WelsMallocz (iNumMb * sizeof (uint8_t), "_fmo->pMbAllocMap"); |
| 137 | WELS_VERIFY_RETURN_IF (1, (NULL == pFmo->pMbAllocMap)) // out of memory | 137 | WELS_VERIFY_RETURN_IF (1, (NULL == pFmo->pMbAllocMap)) // out of memory |
| 138 | 138 | ||
| 139 | pFmo->iCountMbNum = iNumMb; | 139 | pFmo->iCountMbNum = iNumMb; |
| 140 | 140 | ||
| 141 | if (kpPps->uiNumSliceGroups < 2 && iNumMb > 0) { // only one slice group, exactly it is single slice based | 141 | if (kpPps->uiNumSliceGroups < 2 && iNumMb > 0) { // only one slice group, exactly it is single slice based |
| 142 | memset (pFmo->pMbAllocMap, 0, iNumMb * sizeof (int8_t)); // for safe | 142 | memset (pFmo->pMbAllocMap, 0, iNumMb * sizeof (int8_t)); // for safe |
| 143 | 143 | ||
| 144 | pFmo->iSliceGroupCount = 1; | 144 | pFmo->iSliceGroupCount = 1; |
| 145 | 145 | ||
| 146 | return 0; | 146 | return 0; |
| 147 | } | 147 | } |
| @@ -150,7 +150,7 @@ static inline int32_t FmoGenerateSliceGroup (PFmo pFmo, const PPps kpPps, const · 2 unmodified lines | |||
| 150 | || ((int32_t)kpPps->uiNumSliceGroups != pFmo->iSliceGroupCount)) { | 150 | || ((int32_t)kpPps->uiNumSliceGroups != pFmo->iSliceGroupCount)) { |
| 151 | switch (kpPps->uiSliceGroupMapType) { | 151 | switch (kpPps->uiSliceGroupMapType) { |
| 152 | case 0: | 152 | case 0: |
| 153 | iErr = FmoGenerateMbAllocMapType0 (pFmo, kpPps); | 153 | iErr = FmoGenerateMbAllocMapType0 (pFmo, kpPps); |
| 154 | break; | 154 | break; |
| 155 | case 1: | 155 | case 1: |
| 156 | iErr = FmoGenerateMbAllocMapType1 (pFmo, kpPps, kiMbWidth); | 156 | iErr = FmoGenerateMbAllocMapType1 (pFmo, kpPps, kiMbWidth); |
| @@ -161,7 +161,7 @@ static inline int32_t FmoGenerateSliceGroup (PFmo pFmo, const PPps kpPps, const · 4 unmodified lines | |||
| 161 | case 5: | 161 | case 5: |
| 162 | case 6: | 162 | case 6: |
| 163 | // Reserve for others slice group type | 163 | // Reserve for others slice group type |
| 164 | iErr = 1; | 164 | iErr = 1; |
| 165 | break; | 165 | break; |
| 166 | default: | 166 | default: |
| 167 | return 1; | 167 | return 1; |
| @@ -213,7 +213,7 @@ void UninitFmoList (PFmo pFmo, const int32_t kiCnt, const int32_t kiAvail) { · 45 unmodified lines | |||
| 213 | if (NULL != pIter->pMbAllocMap) { | 213 | if (NULL != pIter->pMbAllocMap) { |
| 214 | WelsFree (pIter->pMbAllocMap, "pIter->pMbAllocMap"); | 214 | WelsFree (pIter->pMbAllocMap, "pIter->pMbAllocMap"); |
| 215 | 215 | ||
| 216 | pIter->pMbAllocMap = NULL; | 216 | pIter->pMbAllocMap = NULL; |
| 217 | } | 217 | } |
| 218 | pIter->iSliceGroupCount = 0; | 218 | pIter->iSliceGroupCount = 0; |
| 219 | pIter->iSliceGroupType = -1; | 219 | pIter->iSliceGroupType = -1; |
| @@ -272,7 +272,7 @@ bool FmoParamUpdate (PFmo pFmo, PSps pSps, PPps pPps, int32_t* pActiveFmoNum) { · 52 unmodified lines | |||
| 272 | } else { | 272 | } else { |
| 273 | if (!pFmo->bActiveFlag && *pActiveFmoNum < MAX_PPS_COUNT) { | 273 | if (!pFmo->bActiveFlag && *pActiveFmoNum < MAX_PPS_COUNT) { |
| 274 | ++ (*pActiveFmoNum); | 274 | ++ (*pActiveFmoNum); |
| 275 | pFmo->bActiveFlag = true; | 275 | pFmo->bActiveFlag = true; |
| 276 | } | 276 | } |
| 277 | } | 277 | } |
| 278 | } | 278 | } |
| @@ -318,7 +318,7 @@ MB_XY_T FmoNextMb (PFmo pFmo, const MB_XY_T kiMbXy) { · 39 unmodified lines | |||
| 318 | do { | 318 | do { |
| 319 | ++ iNextMb; | 319 | ++ iNextMb; |
| 320 | if (iNextMb >= kiTotalMb) { | 320 | if (iNextMb >= kiTotalMb) { |
| 321 | iNextMb = -1; | 321 | iNextMb = -1; |
| 322 | break; | 322 | break; |
| 323 | } | 323 | } |
| 324 | if (kpMbMap[iNextMb] == kuiSliceGroupIdc) { | 324 | if (kpMbMap[iNextMb] == kuiSliceGroupIdc) { |