Showing the changes to codec/encoder/core/src/svc_encode_slice.cpp (1 of 20 files). Show all
Unified · Split
| @@ -631,8 +631,9 @@ void WelsPSliceMdEncDynamic (sWelsEncCtx* pEncCtx, SSlice* pSlice, const bool kb · 630 unmodified lines | |||
| 631 | void WelsCodePSlice (sWelsEncCtx* pEncCtx, SSlice* pSlice) { | 631 | void WelsCodePSlice (sWelsEncCtx* pEncCtx, SSlice* pSlice) { |
| 632 | //pSlice-level init should be outside and before this function | 632 | //pSlice-level init should be outside and before this function |
| 633 | SDqLayer* pCurLayer = pEncCtx->pCurDqLayer; | 633 | SDqLayer* pCurLayer = pEncCtx->pCurDqLayer; |
| 634 | |||
| 634 | const bool kbBaseAvail = pCurLayer->bBaseLayerAvailableFlag; | 635 | const bool kbBaseAvail = pCurLayer->bBaseLayerAvailableFlag; |
| 635 | const bool kbHighestSpatial = pEncCtx->pSvcParam->iNumDependencyLayer == | 636 | const bool kbHighestSpatial = pEncCtx->pSvcParam->iSpatialLayerNum == |
| 636 | (pCurLayer->sLayerInfo.sNalHeaderExt.uiDependencyId + 1); | 637 | (pCurLayer->sLayerInfo.sNalHeaderExt.uiDependencyId + 1); |
| 637 | 638 | ||
| 638 | //MD switch | 639 | //MD switch |
| @@ -649,8 +650,9 @@ void WelsCodePSlice (sWelsEncCtx* pEncCtx, SSlice* pSlice) { · 10 unmodified lines | |||
| 649 | void WelsCodePOverDynamicSlice (sWelsEncCtx* pEncCtx, SSlice* pSlice) { | 650 | void WelsCodePOverDynamicSlice (sWelsEncCtx* pEncCtx, SSlice* pSlice) { |
| 650 | //pSlice-level init should be outside and before this function | 651 | //pSlice-level init should be outside and before this function |
| 651 | SDqLayer* pCurLayer = pEncCtx->pCurDqLayer; | 652 | SDqLayer* pCurLayer = pEncCtx->pCurDqLayer; |
| 653 | |||
| 652 | const bool kbBaseAvail = pCurLayer->bBaseLayerAvailableFlag; | 654 | const bool kbBaseAvail = pCurLayer->bBaseLayerAvailableFlag; |
| 653 | const bool kbHighestSpatial = pEncCtx->pSvcParam->iNumDependencyLayer == | 655 | const bool kbHighestSpatial = pEncCtx->pSvcParam->iSpatialLayerNum == |
| 654 | (pCurLayer->sLayerInfo.sNalHeaderExt.uiDependencyId + 1); | 656 | (pCurLayer->sLayerInfo.sNalHeaderExt.uiDependencyId + 1); |
| 655 | 657 | ||
| 656 | //MD switch | 658 | //MD switch |
| @@ -681,7 +683,7 @@ void WelsCodeOneSlice (sWelsEncCtx* pEncCtx, const int32_t kiSliceIdx, const int · 24 unmodified lines | |||
| 681 | SNalUnitHeaderExt* pNalHeadExt = &pCurLayer->sLayerInfo.sNalHeaderExt; | 683 | SNalUnitHeaderExt* pNalHeadExt = &pCurLayer->sLayerInfo.sNalHeaderExt; |
| 682 | SSlice* pCurSlice = &pCurLayer->sLayerInfo.pSliceInLayer[kiSliceIdx]; | 684 | SSlice* pCurSlice = &pCurLayer->sLayerInfo.pSliceInLayer[kiSliceIdx]; |
| 683 | SBitStringAux* pBs = pCurSlice->pSliceBsa; | 685 | SBitStringAux* pBs = pCurSlice->pSliceBsa; |
| 684 | const int32_t kiDynamicSliceFlag = (pEncCtx->pSvcParam->sDependencyLayers[pEncCtx->uiDependencyId].sMso.uiSliceMode == | 686 | const int32_t kiDynamicSliceFlag = (pEncCtx->pSvcParam->sDependencyLayers[pEncCtx->uiDependencyId].sSliceCfg.uiSliceMode == |
| 685 | SM_DYN_SLICE); | 687 | SM_DYN_SLICE); |
| 686 | 688 | ||
| 687 | assert (kiSliceIdx == pCurSlice->uiSliceIdx); | 689 | assert (kiSliceIdx == pCurSlice->uiSliceIdx); |
| @@ -916,7 +918,7 @@ void WelsMdInterMbLoop (sWelsEncCtx* pEncCtx, SSlice* pSlice, void* pWelsMd, con · 228 unmodified lines | |||
| 916 | int32_t iCurMbIdx = -1; | 918 | int32_t iCurMbIdx = -1; |
| 917 | int32_t iMbSkipRun = 0; | 919 | int32_t iMbSkipRun = 0; |
| 918 | const int32_t kiTotalNumMb = pCurLayer->iMbWidth * pCurLayer->iMbHeight; | 920 | const int32_t kiTotalNumMb = pCurLayer->iMbWidth * pCurLayer->iMbHeight; |
| 919 | const int32_t kiMvdInterTableSize = (pEncCtx->pSvcParam->iNumDependencyLayer == 1 ? 648 : 972); | 921 | const int32_t kiMvdInterTableSize = (pEncCtx->pSvcParam->iSpatialLayerNum == 1 ? 648 : 972); |
| 920 | const int32_t kiMvdInterTableStride = 1 + (kiMvdInterTableSize << 1); | 922 | const int32_t kiMvdInterTableStride = 1 + (kiMvdInterTableSize << 1); |
| 921 | uint16_t* pMvdCostTableInter = &pEncCtx->pMvdCostTableInter[kiMvdInterTableSize]; | 923 | uint16_t* pMvdCostTableInter = &pEncCtx->pMvdCostTableInter[kiMvdInterTableSize]; |
| 922 | const int32_t kiSliceIdx = pSlice->uiSliceIdx; | 924 | const int32_t kiSliceIdx = pSlice->uiSliceIdx; |
| @@ -999,7 +1001,7 @@ void WelsMdInterMbLoopOverDynamicSlice (sWelsEncCtx* pEncCtx, SSlice* pSlice, vo · 76 unmodified lines | |||
| 999 | int32_t iNextMbIdx = kiSliceFirstMbXY; | 1001 | int32_t iNextMbIdx = kiSliceFirstMbXY; |
| 1000 | int32_t iCurMbIdx = -1; | 1002 | int32_t iCurMbIdx = -1; |
| 1001 | int32_t iMbSkipRun = 0; | 1003 | int32_t iMbSkipRun = 0; |
| 1002 | const int32_t kiMvdInterTableSize = (pEncCtx->pSvcParam->iNumDependencyLayer == 1 ? 648 : 972); | 1004 | const int32_t kiMvdInterTableSize = (pEncCtx->pSvcParam->iSpatialLayerNum == 1 ? 648 : 972); |
| 1003 | const int32_t kiMvdInterTableStride = 1 + (kiMvdInterTableSize << 1); | 1005 | const int32_t kiMvdInterTableStride = 1 + (kiMvdInterTableSize << 1); |
| 1004 | uint16_t* pMvdCostTableInter = &pEncCtx->pMvdCostTableInter[kiMvdInterTableSize]; | 1006 | uint16_t* pMvdCostTableInter = &pEncCtx->pMvdCostTableInter[kiMvdInterTableSize]; |
| 1005 | const int32_t kiSliceIdx = pSlice->uiSliceIdx; | 1007 | const int32_t kiSliceIdx = pSlice->uiSliceIdx; |