Showing the changes to codec/encoder/plus/src/welsEncoderExt.cpp (1 of 6 files). Show all
Unified · Split
| @@ -402,14 +402,7 @@ int CWelsH264SVCEncoder::EncodeFrame (const SSourcePicture* kpSrcPic, SFrameBSIn · 401 unmodified lines | ||
| 402 | 402 | |
| 403 | 403 | int CWelsH264SVCEncoder ::EncodeFrameInternal (const SSourcePicture* pSrcPic, SFrameBSInfo* pBsInfo) { |
| 404 | 404 | const int64_t kiBeforeFrameUs = WelsTime(); |
| 405 | − int64_t uiTimeStamp = pSrcPic->uiTimeStamp; | |
| 406 | − if ((m_pEncContext->uiLastTimestamp == uiTimeStamp) || ((uiTimeStamp == 0) && (m_pEncContext->uiLastTimestamp != -1))) { | |
| 407 | − uiTimeStamp = m_pEncContext->uiLastTimestamp + (int32_t) (1000.0 / | |
| 408 | − m_pEncContext->pSvcParam->sSpatialLayers->fFrameRate); | |
| 409 | − } | |
| 410 | − m_pEncContext->uiLastTimestamp = uiTimeStamp; | |
| 411 | − | |
| 412 | − const int32_t kiEncoderReturn = WelsEncoderEncodeExt (m_pEncContext, pBsInfo, pSrcPic, uiTimeStamp); | |
| 405 | + const int32_t kiEncoderReturn = WelsEncoderEncodeExt (m_pEncContext, pBsInfo, pSrcPic); | |
| 413 | 406 | const int64_t kiCurrentFrameMs = (WelsTime() - kiBeforeFrameUs) / 1000; |
| 414 | 407 | |
| 415 | 408 | if ((kiEncoderReturn == ENC_RETURN_MEMALLOCERR) || (kiEncoderReturn == ENC_RETURN_MEMOVERFLOWFOUND) |
| @@ -422,7 +415,7 @@ int CWelsH264SVCEncoder ::EncodeFrameInternal (const SSourcePicture* pSrcPic, S · 6 unmodified lines | ||
| 422 | 415 | return cmUnknownReason; |
| 423 | 416 | } |
| 424 | 417 | |
| 425 | − UpdateStatistics (uiTimeStamp, pBsInfo, kiCurrentFrameMs); | |
| 418 | + UpdateStatistics (pBsInfo, kiCurrentFrameMs); | |
| 426 | 419 | |
| 427 | 420 | ///////////////////for test |
| 428 | 421 | #ifdef OUTPUT_BIT_STREAM |
| @@ -573,9 +566,11 @@ void CWelsH264SVCEncoder::LogStatistics (const int64_t kiCurrentFrameTs, int32_t · 144 unmodified lines | ||
| 573 | 566 | } |
| 574 | 567 | } |
| 575 | 568 | |
| 576 | −void CWelsH264SVCEncoder::UpdateStatistics (const int64_t kiCurrentFrameTs, SFrameBSInfo* pBsInfo, | |
| 569 | +void CWelsH264SVCEncoder::UpdateStatistics (SFrameBSInfo* pBsInfo, | |
| 577 | 570 | const int64_t kiCurrentFrameMs) { |
| 578 | 571 | |
| 572 | + const int64_t kiCurrentFrameTs = m_pEncContext->uiLastTimestamp = pBsInfo->uiTimeStamp; | |
| 573 | + | |
| 579 | 574 | int32_t iMaxDid = m_pEncContext->pSvcParam->iSpatialLayerNum - 1; |
| 580 | 575 | SLayerBSInfo* pLayerInfo = &pBsInfo->sLayerInfo[0]; |
| 581 | 576 | for (int32_t iDid = 0; iDid <= iMaxDid; iDid++) { |