clean and comment some API. move the SKIP mv pred location remove the unused buffer in intra construction.
Showing the changes to codec/decoder/core/src/decode_slice.cpp (1 of 9 files). Show all
Unified · Split
| @@ -247,27 +247,17 @@ int32_t WelsMbIntraPredictionConstruction (PWelsDecoderContext pCtx, PDqLayer pC · 246 unmodified lines | |||
| 247 | //seems IPCM should not enter this path | 247 | //seems IPCM should not enter this path |
| 248 | int32_t iMbXy = pCurLayer->iMbXyIndex; | 248 | int32_t iMbXy = pCurLayer->iMbXyIndex; |
| 249 | 249 | ||
| 250 | FORCE_STACK_ALIGN_1D (int16_t, pTempScaledTCoeff, MB_COEFF_LIST_SIZE, 16); | ||
| 251 | |||
| 252 | memcpy (pTempScaledTCoeff, pCurLayer->pScaledTCoeff[iMbXy], 384 * sizeof (pCurLayer->pScaledTCoeff[iMbXy][0])); | ||
| 253 | |||
| 254 | WelsFillRecNeededMbInfo (pCtx, bOutput, pCurLayer); | 250 | WelsFillRecNeededMbInfo (pCtx, bOutput, pCurLayer); |
| 255 | 251 | ||
| 256 | if (IS_INTRA16x16 (pCurLayer->pMbType[iMbXy])) { | 252 | if (IS_INTRA16x16 (pCurLayer->pMbType[iMbXy])) { |
| 257 | int32_t i, j; | 253 | WelsLumaDcDequantIdct (pCurLayer->pScaledTCoeff[iMbXy], pCurLayer->pLumaQp[iMbXy]); |
| 258 | // really need? | 254 | RecI16x16Mb (iMbXy, pCtx, pCurLayer->pScaledTCoeff[iMbXy], pCurLayer); |
| 259 | for (i = 0; i < 16; i++) { | ||
| 260 | j = g_kuiLumaDcZigzagScan[i]; | ||
| 261 | pTempScaledTCoeff[j] = pCurLayer->pScaledTCoeff[iMbXy][j]; | ||
| 262 | } | ||
| 263 | WelsLumaDcDequantIdct (pTempScaledTCoeff, pCurLayer->pLumaQp[iMbXy]); | ||
| 264 | RecI16x16Mb (iMbXy, pCtx, pTempScaledTCoeff, pCurLayer); | ||
| 265 | 255 | ||
| 266 | return 0; | 256 | return 0; |
| 267 | } | 257 | } |
| 268 | 258 | ||
| 269 | if (IS_INTRA4x4 (pCurLayer->pMbType[iMbXy])) | 259 | if (IS_INTRA4x4 (pCurLayer->pMbType[iMbXy])) |
| 270 | RecI4x4Mb (iMbXy, pCtx, pTempScaledTCoeff, pCurLayer); | 260 | RecI4x4Mb (iMbXy, pCtx, pCurLayer->pScaledTCoeff[iMbXy], pCurLayer); |
| 271 | 261 | ||
| 272 | return 0; | 262 | return 0; |
| 273 | } | 263 | } |