| 705 | } |
| 706 | |
| 707 | int32_t WelsPSliceMdEncDynamic (sWelsEncCtx* pEncCtx, SSlice* pSlice, const bool kbIsHighestDlayerFlag) { |
| 708 | const SSliceHeaderExt* kpShExt = &pSlice->sSliceHeaderExt; |
| 709 | const SSliceHeader* kpSh = &kpShExt->sSliceHeader; |
| 710 | const int32_t kiSliceFirstMbXY = kpSh->iFirstMbInSlice; |
| 711 | SWelsMD sMd; |
| 712 | |
| 713 | sMd.uiRef = kpSh->uiRefIndex; |
| 714 | sMd.bMdUsingSad = (pEncCtx->pSvcParam->iComplexityMode == LOW_COMPLEXITY); |
| 715 | if (!pEncCtx->pCurDqLayer->bBaseLayerAvailableFlag || !kbIsHighestDlayerFlag) |
| 716 | memset (&sMd.sMe, 0, sizeof (sMd.sMe)); |
| 717 | |
| 718 | //mb loop |
| 719 | return WelsMdInterMbLoopOverDynamicSlice (pEncCtx, pSlice, &sMd, kiSliceFirstMbXY); |
| 720 | } |
| 721 | |
| 722 | int32_t WelsCodePSlice (sWelsEncCtx* pEncCtx, SSlice* pSlice) { |
| 723 | //pSlice-level init should be outside and before this function |
no test coverage detected