History

fix timestamp = 0 issue when rc mode is BITRATE mode

sijchen committed 10 years ago

Commit 9816e331 parent 597b4ee6 files · +26 −22Browse files

Showing the changes to codec/encoder/plus/src/welsEncoderExt.cpp (1 of 6 files). Show all

Unified · Split

codec/encoder/plus/src/welsEncoderExt.cpp+5−10
@@ -402,14 +402,7 @@ int CWelsH264SVCEncoder::EncodeFrame (const SSourcePicture* kpSrcPic, SFrameBSIn · 401 unmodified lines
402402
403403 int CWelsH264SVCEncoder ::EncodeFrameInternal (const SSourcePicture* pSrcPic, SFrameBSInfo* pBsInfo) {
404404 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);
413406 const int64_t kiCurrentFrameMs = (WelsTime() - kiBeforeFrameUs) / 1000;
414407
415408 if ((kiEncoderReturn == ENC_RETURN_MEMALLOCERR) || (kiEncoderReturn == ENC_RETURN_MEMOVERFLOWFOUND)
@@ -422,7 +415,7 @@ int CWelsH264SVCEncoder ::EncodeFrameInternal (const SSourcePicture* pSrcPic, S · 6 unmodified lines
422415 return cmUnknownReason;
423416 }
424417
425− UpdateStatistics (uiTimeStamp, pBsInfo, kiCurrentFrameMs);
418+ UpdateStatistics (pBsInfo, kiCurrentFrameMs);
426419
427420 ///////////////////for test
428421 #ifdef OUTPUT_BIT_STREAM
@@ -573,9 +566,11 @@ void CWelsH264SVCEncoder::LogStatistics (const int64_t kiCurrentFrameTs, int32_t · 144 unmodified lines
573566 }
574567 }
575568
576−void CWelsH264SVCEncoder::UpdateStatistics (const int64_t kiCurrentFrameTs, SFrameBSInfo* pBsInfo,
569+void CWelsH264SVCEncoder::UpdateStatistics (SFrameBSInfo* pBsInfo,
577570 const int64_t kiCurrentFrameMs) {
578571
572+ const int64_t kiCurrentFrameTs = m_pEncContext->uiLastTimestamp = pBsInfo->uiTimeStamp;
573+
579574 int32_t iMaxDid = m_pEncContext->pSvcParam->iSpatialLayerNum - 1;
580575 SLayerBSInfo* pLayerInfo = &pBsInfo->sLayerInfo[0];
581576 for (int32_t iDid = 0; iDid <= iMaxDid; iDid++) {

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