Showing the changes to codec/decoder/core/src/decoder_core.cpp (1 of 1 file). Show all
Unified · Split
| @@ -2446,10 +2446,9 @@ bool CheckAndFinishLastPic (PWelsDecoderContext pCtx, uint8_t** ppDst, SBufferIn · 2445 unmodified lines | |||
| 2446 | bool CheckRefPicturesComplete (PWelsDecoderContext pCtx) { | 2446 | bool CheckRefPicturesComplete (PWelsDecoderContext pCtx) { |
| 2447 | // Multi Reference, RefIdx may differ | 2447 | // Multi Reference, RefIdx may differ |
| 2448 | bool bAllRefComplete = true; | 2448 | bool bAllRefComplete = true; |
| 2449 | int32_t iRealMbIdx; | 2449 | int32_t iRealMbIdx = pCtx->pCurDqLayer->sLayerInfo.sSliceInLayer.sSliceHeaderExt.sSliceHeader.iFirstMbInSlice; |
| 2450 | for (int32_t iMbIdx = 0; bAllRefComplete | 2450 | for (int32_t iMbIdx = 0; bAllRefComplete |
| 2451 | && iMbIdx < pCtx->pCurDqLayer->sLayerInfo.sSliceInLayer.iTotalMbInCurSlice; iMbIdx++) { | 2451 | && iMbIdx < pCtx->pCurDqLayer->sLayerInfo.sSliceInLayer.iTotalMbInCurSlice; iMbIdx++) { |
| 2452 | iRealMbIdx = pCtx->pCurDqLayer->sLayerInfo.sSliceInLayer.sSliceHeaderExt.sSliceHeader.iFirstMbInSlice + iMbIdx; | ||
| 2453 | switch (pCtx->pCurDqLayer->pMbType[iRealMbIdx]) { | 2452 | switch (pCtx->pCurDqLayer->pMbType[iRealMbIdx]) { |
| 2454 | case MB_TYPE_SKIP: | 2453 | case MB_TYPE_SKIP: |
| 2455 | case MB_TYPE_16x16: | 2454 | case MB_TYPE_16x16: |
| @@ -2477,6 +2476,8 @@ bool CheckRefPicturesComplete (PWelsDecoderContext pCtx) { · 21 unmodified lines | |||
| 2477 | default: | 2476 | default: |
| 2478 | break; | 2477 | break; |
| 2479 | } | 2478 | } |
| 2479 | iRealMbIdx = (pCtx->pPps->uiNumSliceGroups > 1) ? FmoNextMb (pCtx->pFmo, iRealMbIdx) : | ||
| 2480 | (pCtx->pCurDqLayer->sLayerInfo.sSliceInLayer.sSliceHeaderExt.sSliceHeader.iFirstMbInSlice + iMbIdx); | ||
| 2480 | } | 2481 | } |
| 2481 | return bAllRefComplete; | 2482 | return bAllRefComplete; |
| 2482 | } | 2483 | } |