History

fix for simulcast case when the frame rate of lower resolution is higher, and add test case

Sijia Chen committed 11 years ago

Commit 53c057a1 parent 5c301de5 files · +183 −25Browse files

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

Unified · Split

codec/encoder/core/src/encoder_ext.cpp+5−12
@@ -3481,7 +3481,7 @@ int32_t WelsEncoderEncodeParameterSets (sWelsEncCtx* pCtx, void* pDst) { · 3480 unmodified lines
34813481 pLayerBsInfo->uiLayerType = NON_VIDEO_CODING_LAYER;
34823482 pLayerBsInfo->iNalCount = iCountNal;
34833483
3484− pCtx->eLastNalPriority = NRI_PRI_HIGHEST;
3484+ //pCtx->eLastNalPriority = NRI_PRI_HIGHEST;
34853485 pFbi->iLayerNum = 1;
34863486 pFbi->eFrameType = videoFrameTypeInvalid;
34873487
@@ -3712,17 +3712,10 @@ void StackBackEncoderStatus (sWelsEncCtx* pEncCtx, · 224 unmodified lines
37123712 pEncCtx->iPOC = (1 << pEncCtx->pSps->iLog2MaxPocLsb) - 2;
37133713 }
37143714
3715− if (pEncCtx->eLastNalPriority != 0) {
3716− if (pEncCtx->iFrameNum != 0) {
3717− pEncCtx->iFrameNum --;
3718− } else {
3719− pEncCtx->iFrameNum = (1 << pEncCtx->pSps->uiLog2MaxFrameNum) - 1;
3720− }
3721− }
3722−
3715+ LoadBackFrameNum(pEncCtx);
37233716 pEncCtx->eNalType = NAL_UNIT_CODED_SLICE;
37243717 pEncCtx->eSliceType = P_SLICE;
3725− pEncCtx->eNalPriority = pEncCtx->eLastNalPriority;
3718+ //pEncCtx->eNalPriority = pEncCtx->eLastNalPriority; //not need this since eNalPriority will be updated at the beginning of coding a frame
37263719 } else if (keFrameType == videoFrameTypeIDR) {
37273720 pEncCtx->uiIdrPicId --;
37283721
@@ -3865,7 +3858,7 @@ int32_t WelsEncoderEncodeExt (sWelsEncCtx* pCtx, SFrameBSInfo* pFbi, const SSour · 136 unmodified lines
38653858 while (iSpatialIdx < iSpatialNum) {
38663859 const int32_t iDidIdx = (pSpatialIndexMap + iSpatialIdx)->iDid; // get iDid
38673860 SSpatialLayerConfig* pParam = &pSvcParam->sSpatialLayers[iDidIdx];
3868− int32_t iDecompositionStages = pSvcParam->sDependencyLayers[iSpatialIdx].iDecompositionStages;
3861+ int32_t iDecompositionStages = pSvcParam->sDependencyLayers[iDidIdx].iDecompositionStages;
38693862 pCtx->uiDependencyId = iCurDid = (int8_t)iDidIdx;
38703863 pCtx->pVpp->AnalyzeSpatialPic (pCtx, iDidIdx);
38713864
@@ -4387,6 +4380,7 @@ int32_t WelsEncoderEncodeExt (sWelsEncCtx* pCtx, SFrameBSInfo* pFbi, const SSour · 515 unmodified lines
43874380 #endif//#if defined(MT_DEBUG)
43884381 }
43894382
4383+ pCtx->eLastNalPriority[iDidIdx] = eNalRefIdc;
43904384 ++ iSpatialIdx;
43914385
43924386 if (iCurDid + 1 < pSvcParam->iSpatialLayerNum) {
@@ -4447,7 +4441,6 @@ int32_t WelsEncoderEncodeExt (sWelsEncCtx* pCtx, SFrameBSInfo* pFbi, const SSour · 54 unmodified lines
44474441 }
44484442
44494443 ++ pCtx->iCodingIndex;
4450− pCtx->eLastNalPriority = eNalRefIdc;
44514444 pFbi->iLayerNum = iLayerNum;
44524445 pFbi->iSubSeqId = GetSubSequenceId (pCtx, eFrameType);
44534446

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