Showing the changes to codec/decoder/core/src/decode_slice.cpp (1 of 1 file). Show all
Unified · Split
| @@ -2371,6 +2371,12 @@ int32_t WelsDecodeMbCavlcBSlice (PWelsDecoderContext pCtx, PNalUnit pNalCur, uin · 2370 unmodified lines | |||
| 2371 | memset (pCurLayer->pRefIndex[LIST_1][iMbXy], 0, sizeof (int8_t) * 16); | 2371 | memset (pCurLayer->pRefIndex[LIST_1][iMbXy], 0, sizeof (int8_t) * 16); |
| 2372 | pCtx->bMbRefConcealed = pCtx->bRPLRError || pCtx->bMbRefConcealed || ! (ppRefPicL0[0] && ppRefPicL0[0]->bIsComplete) | 2372 | pCtx->bMbRefConcealed = pCtx->bRPLRError || pCtx->bMbRefConcealed || ! (ppRefPicL0[0] && ppRefPicL0[0]->bIsComplete) |
| 2373 | || ! (ppRefPicL1[0] && ppRefPicL1[0]->bIsComplete); | 2373 | || ! (ppRefPicL1[0] && ppRefPicL1[0]->bIsComplete); |
| 2374 | |||
| 2375 | if (pCtx->bMbRefConcealed) { | ||
| 2376 | SLogContext* pLogCtx = & (pCtx->sLogCtx); | ||
| 2377 | WelsLog (pLogCtx, WELS_LOG_ERROR, "Ref Picture for B-Slice is lost, B-Slice decoding cannot be continued!"); | ||
| 2378 | return GENERATE_ERROR_NO (ERR_LEVEL_SLICE_DATA, ERR_INFO_REFERENCE_PIC_LOST); | ||
| 2379 | } | ||
| 2374 | //predict iMv | 2380 | //predict iMv |
| 2375 | SubMbType subMbType; | 2381 | SubMbType subMbType; |
| 2376 | if (pSliceHeader->iDirectSpatialMvPredFlag) { | 2382 | if (pSliceHeader->iDirectSpatialMvPredFlag) { |