Showing the changes to codec/decoder/core/src/decode_slice.cpp (1 of 2 files). Show all
Unified · Split
| @@ -90,12 +90,14 @@ int32_t WelsTargetSliceConstruction (PWelsDecoderContext pCtx) { · 89 unmodified lines | ||
| 90 | 90 | break; |
| 91 | 91 | } |
| 92 | 92 | |
| 93 | − if (WelsTargetMbConstruction (pCtx)) { | |
| 94 | − WelsLog (& (pCtx->sLogCtx), WELS_LOG_WARNING, | |
| 95 | − "WelsTargetSliceConstruction():::MB(%d, %d) construction error. pCurSlice_type:%d", | |
| 96 | − pCurLayer->iMbX, pCurLayer->iMbY, pCurSlice->eSliceType); | |
| 93 | + if (!pCtx->bParseOnly) { //for parse only, actual recon MB unnecessary | |
| 94 | + if (WelsTargetMbConstruction (pCtx)) { | |
| 95 | + WelsLog (& (pCtx->sLogCtx), WELS_LOG_WARNING, | |
| 96 | + "WelsTargetSliceConstruction():::MB(%d, %d) construction error. pCurSlice_type:%d", | |
| 97 | + pCurLayer->iMbX, pCurLayer->iMbY, pCurSlice->eSliceType); | |
| 97 | 98 | |
| 98 | − return -1; | |
| 99 | + return -1; | |
| 100 | + } | |
| 99 | 101 | } |
| 100 | 102 | |
| 101 | 103 | ++iCountNumMb; |
| @@ -132,6 +134,9 @@ int32_t WelsTargetSliceConstruction (PWelsDecoderContext pCtx) { · 30 unmodified lines | ||
| 132 | 134 | if ((pCurSlice->eSliceType != I_SLICE) && (pCurSlice->eSliceType != P_SLICE)) |
| 133 | 135 | return 0; |
| 134 | 136 | |
| 137 | + if (pCtx->bParseOnly) //for parse only, deblocking should not go on | |
| 138 | + return 0; | |
| 139 | + | |
| 135 | 140 | pDeblockMb = WelsDeblockingMb; |
| 136 | 141 | |
| 137 | 142 | if (1 == pSliceHeader->uiDisableDeblockingFilterIdc) { |