Unified · Split
| @@ -3797,6 +3797,7 @@ int32_t WelsEncoderEncodeExt (sWelsEncCtx* pCtx, SFrameBSInfo* pFbi, const SSour · 3796 unmodified lines | ||
| 3797 | 3797 | #endif//_DEBUG |
| 3798 | 3798 | pCtx->iEncoderError = ENC_RETURN_SUCCESS; |
| 3799 | 3799 | pCtx->bCurFrameMarkedAsSceneLtr = false; |
| 3800 | + pFbi->eFrameType = videoFrameTypeSkip; | |
| 3800 | 3801 | pFbi->iLayerNum = 0; // for initialization |
| 3801 | 3802 | pFbi->uiTimeStamp = GetTimestampForRc (pSrcPic->uiTimeStamp, pCtx->uiLastTimestamp, pCtx->pSvcParam->sSpatialLayers[pCtx->pSvcParam->iSpatialLayerNum - 1].fFrameRate); |
| 3802 | 3803 | for (int32_t iNalIdx = 0; iNalIdx < MAX_LAYER_NUM_OF_FRAME; iNalIdx++) { |
| @@ -3811,7 +3812,6 @@ int32_t WelsEncoderEncodeExt (sWelsEncCtx* pCtx, SFrameBSInfo* pFbi, const SSour · 8 unmodified lines | ||
| 3811 | 3812 | if (iSpatialNum < 1) { |
| 3812 | 3813 | // ++ pCtx->iCodingIndex; |
| 3813 | 3814 | pLayerBsInfo->eFrameType = videoFrameTypeSkip; |
| 3814 | − pFbi->eFrameType = videoFrameTypeSkip; | |
| 3815 | 3815 | WelsLog (& (pCtx->sLogCtx), WELS_LOG_DEBUG, |
| 3816 | 3816 | "[Rc] Frame timestamp = %lld, skip one frame due to preprocessing return (temporal layer settings or else), continual skipped %d frames", |
| 3817 | 3817 | pSrcPic->uiTimeStamp, pCtx->iContinualSkipFrames); |
| @@ -574,7 +574,7 @@ void CWelsH264SVCEncoder::UpdateStatistics (SFrameBSInfo* pBsInfo, · 573 unmodified lines | ||
| 574 | 574 | int32_t iMaxDid = m_pEncContext->pSvcParam->iSpatialLayerNum - 1; |
| 575 | 575 | SLayerBSInfo* pLayerInfo = &pBsInfo->sLayerInfo[0]; |
| 576 | 576 | for (int32_t iDid = 0; iDid <= iMaxDid; iDid++) { |
| 577 | − EVideoFrameType eFrameType = videoFrameTypeInvalid; | |
| 577 | + EVideoFrameType eFrameType = pBsInfo->eFrameType; | |
| 578 | 578 | int32_t kiCurrentFrameSize = 0; |
| 579 | 579 | if (pBsInfo->eFrameType == videoFrameTypeSkip) { |
| 580 | 580 | eFrameType = videoFrameTypeSkip; |