History

Merge pull request #2195 from sijchen/add_stat_log

[Encoder] Log enhancement for easier debugging

HaiboZhu committed 11 years ago

Commit 02926472 parents 8eed27a b86bd5f3 files · +29 −14Browse files

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

Unified · Split

codec/encoder/plus/src/welsEncoderExt.cpp+25−14
@@ -475,8 +475,8 @@ int CWelsH264SVCEncoder::ForceIntraFrame (bool bIDR) { · 474 unmodified lines
475 if (! (m_pEncContext && m_bInitialFlag)) {475 if (! (m_pEncContext && m_bInitialFlag)) {
476 return 1;476 return 1;
477 }477 }
478 WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO,478 //WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO,
479 "CWelsH264SVCEncoder::ForceIntraFrame(), bIDR= %d", bIDR);479 // "CWelsH264SVCEncoder::ForceIntraFrame(), bIDR= %d", bIDR);
480 480
481 ForceCodingIDR (m_pEncContext);481 ForceCodingIDR (m_pEncContext);
482 482
@@ -541,6 +541,21 @@ void CWelsH264SVCEncoder::TraceParamInfo (SEncParamExt* pParam) { · 58 unmodified lines
541 }541 }
542}542}
543 543
544void CWelsH264SVCEncoder::LogStatistics (const int64_t kiCurrentFrameTs) {
545 SEncoderStatistics* pStatistics = & (m_pEncContext->sEncoderStatistics);
546 WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO,
547 "EncoderStatistics: %dx%d, SpeedInMs: %f, fAverageFrameRate=%f, "
548 "LastFrameRate=%f, LatestBitRate=%d, LastFrameQP=%d, uiInputFrameCount=%d, uiSkippedFrameCount=%d, "
549 "uiResolutionChangeTimes=%d, uIDRReqNum=%d, uIDRSentNum=%d, uLTRSentNum=NA, iTotalEncodedBytes=%" PRId64
550 " at Ts = %" PRId64,
551 pStatistics->uiWidth, pStatistics->uiHeight,
552 pStatistics->fAverageFrameSpeedInMs, pStatistics->fAverageFrameRate,
553 pStatistics->fLatestFrameRate, pStatistics->uiBitRate, pStatistics->uiAverageFrameQP,
554 pStatistics->uiInputFrameCount, pStatistics->uiSkippedFrameCount,
555 pStatistics->uiResolutionChangeTimes, pStatistics->uiIDRReqNum, pStatistics->uiIDRSentNum,
556 m_pEncContext->iTotalEncodedBytes, kiCurrentFrameTs);
557}
558
544void CWelsH264SVCEncoder::UpdateStatistics (const int64_t kiCurrentFrameTs, EVideoFrameType eFrameType,559void CWelsH264SVCEncoder::UpdateStatistics (const int64_t kiCurrentFrameTs, EVideoFrameType eFrameType,
545 const int32_t kiCurrentFrameSize, const int64_t kiCurrentFrameMs) {560 const int32_t kiCurrentFrameSize, const int64_t kiCurrentFrameMs) {
546 SEncoderStatistics* pStatistics = & (m_pEncContext->sEncoderStatistics);561 SEncoderStatistics* pStatistics = & (m_pEncContext->sEncoderStatistics);
@@ -624,21 +639,12 @@ void CWelsH264SVCEncoder::UpdateStatistics (const int64_t kiCurrentFrameTs, EVid · 77 unmodified lines
624 if ((kiTimeDiff > m_pEncContext->iStatisticsLogInterval) || (0 == pStatistics->uiInputFrameCount % 300)) {639 if ((kiTimeDiff > m_pEncContext->iStatisticsLogInterval) || (0 == pStatistics->uiInputFrameCount % 300)) {
625 if (WELS_ABS (pStatistics->fAverageFrameRate - m_pEncContext->pSvcParam->fMaxFrameRate) > 30) {640 if (WELS_ABS (pStatistics->fAverageFrameRate - m_pEncContext->pSvcParam->fMaxFrameRate) > 30) {
626 WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_WARNING,641 WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_WARNING,
627 "Actual input framerate fAverageFrameRate = %f is quite different from framerate in setting %f, please check setting or timestamp unit (ms), start_Ts = %" PRId64,642 "Actual input framerate fAverageFrameRate = %f is quite different from framerate in setting %f, please check setting or timestamp unit (ms), start_Ts = %"
643 PRId64,
628 pStatistics->fAverageFrameRate, m_pEncContext->pSvcParam->fMaxFrameRate, m_pEncContext->uiStartTimestamp);644 pStatistics->fAverageFrameRate, m_pEncContext->pSvcParam->fMaxFrameRate, m_pEncContext->uiStartTimestamp);
629 }645 }
630 646
631 WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO,647 LogStatistics (kiCurrentFrameTs);
632 "EncoderStatistics: %dx%d, SpeedInMs: %f, fAverageFrameRate=%f, "
633 "LastFrameRate=%f, LatestBitRate=%d, LastFrameQP=%d, uiInputFrameCount=%d, uiSkippedFrameCount=%d, "
634 "uiResolutionChangeTimes=%d, uIDRReqNum=%d, uIDRSentNum=%d, uLTRSentNum=NA, iTotalEncodedBytes=%" PRId64
635 " at Ts = %" PRId64,
636 pStatistics->uiWidth, pStatistics->uiHeight,
637 pStatistics->fAverageFrameSpeedInMs, pStatistics->fAverageFrameRate,
638 pStatistics->fLatestFrameRate, pStatistics->uiBitRate, pStatistics->uiAverageFrameQP,
639 pStatistics->uiInputFrameCount, pStatistics->uiSkippedFrameCount,
640 pStatistics->uiResolutionChangeTimes, pStatistics->uiIDRReqNum, pStatistics->uiIDRSentNum,
641 m_pEncContext->iTotalEncodedBytes, kiCurrentFrameTs);
642 m_pEncContext->iLastStatisticsLogTs = kiCurrentFrameTs;648 m_pEncContext->iLastStatisticsLogTs = kiCurrentFrameTs;
643 }649 }
644 }650 }
@@ -772,6 +778,11 @@ int CWelsH264SVCEncoder::SetOption (ENCODER_OPTION eOptionId, void* pOption) { · 127 unmodified lines
772 if (WelsEncoderParamAdjust (&m_pEncContext, &sConfig)) {778 if (WelsEncoderParamAdjust (&m_pEncContext, &sConfig)) {
773 return cmInitParaError;779 return cmInitParaError;
774 }780 }
781
782 //LogStatistics
783 WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO,
784 "CWelsH264SVCEncoder::SetOption():ENCODER_OPTION_SVC_ENCODE_PARAM_EXT, LogStatisticsBeforeNewEncoding");
785 LogStatistics (m_pEncContext->iLastStatisticsLogTs);
775 }786 }
776 break;787 break;
777 case ENCODER_OPTION_FRAME_RATE: { // Maximal input frame rate788 case ENCODER_OPTION_FRAME_RATE: { // Maximal input frame rate

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