ref: 10dfb2670bbf3df00e0124e2a301bee2ffdd22ca
parent: 22bec095072d00e53df92eec7c51362ff594572d
author: Karina <[email protected]>
date: Thu Mar 24 10:17:47 EDT 2016
fix skip frames statistics issue
--- a/codec/encoder/core/src/encoder_ext.cpp
+++ b/codec/encoder/core/src/encoder_ext.cpp
@@ -3797,6 +3797,7 @@
#endif//_DEBUG
pCtx->iEncoderError = ENC_RETURN_SUCCESS;
pCtx->bCurFrameMarkedAsSceneLtr = false;
+ pFbi->eFrameType = videoFrameTypeSkip;
pFbi->iLayerNum = 0; // for initialization
pFbi->uiTimeStamp = GetTimestampForRc (pSrcPic->uiTimeStamp, pCtx->uiLastTimestamp, pCtx->pSvcParam->sSpatialLayers[pCtx->pSvcParam->iSpatialLayerNum - 1].fFrameRate);
for (int32_t iNalIdx = 0; iNalIdx < MAX_LAYER_NUM_OF_FRAME; iNalIdx++) {
@@ -3811,7 +3812,6 @@
if (iSpatialNum < 1) {
// ++ pCtx->iCodingIndex;
pLayerBsInfo->eFrameType = videoFrameTypeSkip;
- pFbi->eFrameType = videoFrameTypeSkip;
WelsLog (& (pCtx->sLogCtx), WELS_LOG_DEBUG,
"[Rc] Frame timestamp = %lld, skip one frame due to preprocessing return (temporal layer settings or else), continual skipped %d frames",
pSrcPic->uiTimeStamp, pCtx->iContinualSkipFrames);
--- a/codec/encoder/plus/src/welsEncoderExt.cpp
+++ b/codec/encoder/plus/src/welsEncoderExt.cpp
@@ -574,7 +574,7 @@
int32_t iMaxDid = m_pEncContext->pSvcParam->iSpatialLayerNum - 1;
SLayerBSInfo* pLayerInfo = &pBsInfo->sLayerInfo[0];
for (int32_t iDid = 0; iDid <= iMaxDid; iDid++) {
- EVideoFrameType eFrameType = videoFrameTypeInvalid;
+ EVideoFrameType eFrameType = pBsInfo->eFrameType;
int32_t kiCurrentFrameSize = 0;
if (pBsInfo->eFrameType == videoFrameTypeSkip) {
eFrameType = videoFrameTypeSkip;