Showing the changes to codec/decoder/core/src/decode_slice.cpp (1 of 5 files). Show all
Unified · Split
| @@ -893,7 +893,7 @@ int32_t WelsDecodeMbCabacPSlice (PWelsDecoderContext pCtx, PNalUnit pNalCur, uin · 892 unmodified lines | |||
| 893 | int32_t WelsDecodeSlice (PWelsDecoderContext pCtx, bool bFirstSliceInLayer, PNalUnit pNalCur) { | 893 | int32_t WelsDecodeSlice (PWelsDecoderContext pCtx, bool bFirstSliceInLayer, PNalUnit pNalCur) { |
| 894 | PDqLayer pCurLayer = pCtx->pCurDqLayer; | 894 | PDqLayer pCurLayer = pCtx->pCurDqLayer; |
| 895 | PFmo pFmo = pCtx->pFmo; | 895 | PFmo pFmo = pCtx->pFmo; |
| 896 | int32_t i, iRet; | 896 | int32_t iRet; |
| 897 | int32_t iNextMbXyIndex, iSliceIdc; | 897 | int32_t iNextMbXyIndex, iSliceIdc; |
| 898 | 898 | ||
| 899 | PSlice pSlice = &pCurLayer->sLayerInfo.sSliceInLayer; | 899 | PSlice pSlice = &pCurLayer->sLayerInfo.sSliceInLayer; |
| @@ -957,29 +957,6 @@ int32_t WelsDecodeSlice (PWelsDecoderContext pCtx, bool bFirstSliceInLayer, PNal · 57 unmodified lines | |||
| 957 | pCurLayer->iMbY = iMbY; | 957 | pCurLayer->iMbY = iMbY; |
| 958 | pCurLayer->iMbXyIndex = iNextMbXyIndex; | 958 | pCurLayer->iMbXyIndex = iNextMbXyIndex; |
| 959 | 959 | ||
| 960 | if (pSliceHeaderExt->bSliceSkipFlag == 1) { | ||
| 961 | for (i = 0; i < (int32_t)pSliceHeaderExt->uiNumMbsInSlice; i++) { | ||
| 962 | pCurLayer->pSliceIdc[iNextMbXyIndex] = iSliceIdc; | ||
| 963 | |||
| 964 | |||
| 965 | pCurLayer->pResidualPredFlag[iNextMbXyIndex] = 1; | ||
| 966 | |||
| 967 | if (pSliceHeaderExt->sSliceHeader.pPps->uiNumSliceGroups > 1) { | ||
| 968 | iNextMbXyIndex = FmoNextMb (pFmo, iNextMbXyIndex); | ||
| 969 | } else { | ||
| 970 | ++iNextMbXyIndex; | ||
| 971 | } | ||
| 972 | |||
| 973 | iMbX = iNextMbXyIndex % pCurLayer->iMbWidth; | ||
| 974 | iMbY = iNextMbXyIndex % pCurLayer->iMbHeight; | ||
| 975 | |||
| 976 | pCurLayer->iMbX = iMbX; | ||
| 977 | pCurLayer->iMbY = iMbY; | ||
| 978 | pCurLayer->iMbXyIndex = iNextMbXyIndex; | ||
| 979 | } | ||
| 980 | return 0; | ||
| 981 | } | ||
| 982 | |||
| 983 | do { | 960 | do { |
| 984 | if ((-1 == iNextMbXyIndex) || (iNextMbXyIndex >= kiCountNumMb)) { // slice group boundary or end of a frame | 961 | if ((-1 == iNextMbXyIndex) || (iNextMbXyIndex >= kiCountNumMb)) { // slice group boundary or end of a frame |
| 985 | break; | 962 | break; |