History

refactor

Sijia Chen committed 11 years ago

Commit 76ef30d1 parent a5cb0ea2 files · +13 −10Browse files

Showing the changes to codec/encoder/core/src/wels_preprocess.cpp (1 of 2 files). Show all

Unified · Split

codec/encoder/core/src/wels_preprocess.cpp+12−10
@@ -255,26 +255,28 @@ int32_t CWelsPreProcess::AnalyzeSpatialPic (sWelsEncCtx* pCtx, const int32_t kiD · 254 unmodified lines
255255 return 0;
256256 }
257257
258+int32_t CWelsPreProcess::GetCurPicPosition(const int32_t kiDidx) {
259+ return (m_uiSpatialLayersInTemporal[kiDidx] - 1);
260+}
261+
258262 int32_t CWelsPreProcess::UpdateSpatialPictures (sWelsEncCtx* pCtx, SWelsSvcCodingParam* pParam,
259263 const int8_t iCurTid, const int32_t kiDidx) {
260264 if (pCtx->pSvcParam->iUsageType == SCREEN_CONTENT_REAL_TIME)
261265 return 0;
262− if (iCurTid < m_uiSpatialLayersInTemporal[kiDidx] - 1 || pParam->iDecompStages == 0) {
263− if ((iCurTid >= MAX_TEMPORAL_LEVEL) || (m_uiSpatialLayersInTemporal[kiDidx] - 1 > MAX_TEMPORAL_LEVEL)) {
266+ const int32_t kiCurPos = GetCurPicPosition(kiDidx);
267+ if (iCurTid < kiCurPos || pParam->iDecompStages == 0) {
268+ if ((iCurTid >= MAX_TEMPORAL_LEVEL) || (kiCurPos > MAX_TEMPORAL_LEVEL)) {
264269 InitLastSpatialPictures (pCtx);
265270 return 1;
266271 }
267272 if (pParam->bEnableLongTermReference && pCtx->bLongTermRefFlag[kiDidx][iCurTid]) {
268− SPicture* tmp = m_pSpatialPic[kiDidx][m_uiSpatialLayersInTemporal[kiDidx] + pCtx->pVaa->uiMarkLongTermPicIdx];
269− m_pSpatialPic[kiDidx][m_uiSpatialLayersInTemporal[kiDidx] + pCtx->pVaa->uiMarkLongTermPicIdx] =
270− m_pSpatialPic[kiDidx][iCurTid];
271− m_pSpatialPic[kiDidx][iCurTid] = m_pSpatialPic[kiDidx][m_uiSpatialLayersInTemporal[kiDidx] - 1];
272− m_pSpatialPic[kiDidx][m_uiSpatialLayersInTemporal[kiDidx] - 1] = tmp;
273− pCtx->bLongTermRefFlag[kiDidx][iCurTid] = false;
274− } else {
275− WelsExchangeSpatialPictures (&m_pSpatialPic[kiDidx][m_uiSpatialLayersInTemporal[kiDidx] - 1],
273+ const int32_t kiAvailableLtrPos = m_uiSpatialLayersInTemporal[kiDidx] + pCtx->pVaa->uiMarkLongTermPicIdx;
274+ WelsExchangeSpatialPictures (&m_pSpatialPic[kiDidx][kiAvailableLtrPos],
276275 &m_pSpatialPic[kiDidx][iCurTid]);
276+ pCtx->bLongTermRefFlag[kiDidx][iCurTid] = false;
277277 }
278+ WelsExchangeSpatialPictures (&m_pSpatialPic[kiDidx][kiCurPos],
279+ &m_pSpatialPic[kiDidx][iCurTid]);
278280 }
279281 return 0;
280282 }

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t