| 312 | } |
| 313 | |
| 314 | int32_t CWelsPreProcess::UpdateSpatialPictures (sWelsEncCtx* pCtx, SWelsSvcCodingParam* pParam, |
| 315 | const int8_t iCurTid, const int32_t kiDidx) { |
| 316 | if (pCtx->pSvcParam->iUsageType == SCREEN_CONTENT_REAL_TIME) |
| 317 | return 0; |
| 318 | |
| 319 | WelsExchangeSpatialPictures (&m_pLastSpatialPicture[kiDidx][1], &m_pLastSpatialPicture[kiDidx][0]); |
| 320 | |
| 321 | const int32_t kiCurPos = GetCurPicPosition (kiDidx); |
| 322 | if (iCurTid < kiCurPos || pParam->iDecompStages == 0) { |
| 323 | if ((iCurTid >= MAX_TEMPORAL_LEVEL) || (kiCurPos > MAX_TEMPORAL_LEVEL)) { |
| 324 | InitLastSpatialPictures (pCtx); |
| 325 | return 1; |
| 326 | } |
| 327 | if (pCtx->bRefOfCurTidIsLtr[kiDidx][iCurTid]) { |
| 328 | const int32_t kiAvailableLtrPos = m_uiSpatialLayersInTemporal[kiDidx] + pCtx->pVaa->uiMarkLongTermPicIdx; |
| 329 | WelsExchangeSpatialPictures (&m_pSpatialPic[kiDidx][kiAvailableLtrPos], |
| 330 | &m_pSpatialPic[kiDidx][iCurTid]); |
| 331 | pCtx->bRefOfCurTidIsLtr[kiDidx][iCurTid] = false; |
| 332 | } |
| 333 | WelsExchangeSpatialPictures (&m_pSpatialPic[kiDidx][kiCurPos], |
| 334 | &m_pSpatialPic[kiDidx][iCurTid]); |
| 335 | |
| 336 | |
| 337 | } |
| 338 | return 0; |
| 339 | } |
| 340 | |
| 341 | |
| 342 | /* |
no outgoing calls
no test coverage detected