History

improve the src dump function and remove duplicated calls

sijchen@cisco.com committed 10 years ago

Commit 3e3793b1 parent f9118952 files · +19 −27Browse files

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

Unified · Split

codec/encoder/plus/src/welsEncoderExt.cpp+18−26
@@ -393,9 +393,6 @@ int CWelsH264SVCEncoder::EncodeFrame (const SSourcePicture* kpSrcPic, SFrameBSIn · 392 unmodified lines
393393 "CWelsH264SVCEncoder::EncodeFrame(), m_uiCountFrameNum= %d,", m_uiCountFrameNum);
394394 #endif//REC_FRAME_COUNT
395395
396−#ifdef DUMP_SRC_PICTURE
397− DumpSrcPicture (pSrc);
398−#endif // DUMP_SRC_PICTURE
399396 return kiEncoderReturn;
400397 }
401398
@@ -461,7 +458,7 @@ int CWelsH264SVCEncoder ::EncodeFrameInternal (const SSourcePicture* pSrcPic, S · 59 unmodified lines
461458 }
462459 #endif //OUTPUT_BIT_STREAM
463460 #ifdef DUMP_SRC_PICTURE
464− DumpSrcPicture (pSrcPicList[0]->pData[0]);
461+ DumpSrcPicture (pSrcPic, m_pEncContext->pSvcParam->iUsageType);
465462 #endif // DUMP_SRC_PICTURE
466463
467464 return cmResultSuccess;
@@ -491,7 +488,7 @@ int CWelsH264SVCEncoder::ForceIntraFrame (bool bIDR) { · 23 unmodified lines
491488 void CWelsH264SVCEncoder::TraceParamInfo (SEncParamExt* pParam) {
492489 WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO,
493490 "iUsageType = %d,iPicWidth= %d;iPicHeight= %d;iTargetBitrate= %d;iMaxBitrate= %d;iRCMode= %d;iPaddingFlag= %d;iTemporalLayerNum= %d;iSpatialLayerNum= %d;fFrameRate= %.6ff;uiIntraPeriod= %d;"
494− "eSpsPpsIdStrategy = %d;bPrefixNalAddingCtrl = %d;bSimulcastAVC=%d;bEnableDenoise= %d;bEnableBackgroundDetection= %d;bEnableSceneChangeDetect = %d;bEnableAdaptiveQuant= %d;bEnableFrameSkip= %d;bEnableLongTermReference= %d;iLtrMarkPeriod= %d;"
491+ "eSpsPpsIdStrategy = %d;bPrefixNalAddingCtrl = %d;bSimulcastAVC=%d;bEnableDenoise= %d;bEnableBackgroundDetection= %d;bEnableSceneChangeDetect = %d;bEnableAdaptiveQuant= %d;bEnableFrameSkip= %d;bEnableLongTermReference= %d;iLtrMarkPeriod= %d, bIsLosslessLink=%d;"
495492 "iComplexityMode = %d;iNumRefFrame = %d;iEntropyCodingModeFlag = %d;uiMaxNalSize = %d;iLTRRefNum = %d;iMultipleThreadIdc = %d;iLoopFilterDisableIdc = %d (offset(alpha/beta): %d,%d;iMaxQp = %d;iMinQp = %d)",
496493 pParam->iUsageType,
497494 pParam->iPicWidth,
@@ -514,6 +511,7 @@ void CWelsH264SVCEncoder::TraceParamInfo (SEncParamExt* pParam) { · 16 unmodified lines
514511 pParam->bEnableFrameSkip,
515512 pParam->bEnableLongTermReference,
516513 pParam->iLtrMarkPeriod,
514+ pParam->bIsLosslessLink,
517515 pParam->iComplexityMode,
518516 pParam->iNumRefFrame,
519517 pParam->iEntropyCodingModeFlag,
@@ -1273,57 +1271,51 @@ int CWelsH264SVCEncoder::GetOption (ENCODER_OPTION eOptionId, void* pOption) { · 753 unmodified lines
12731271 return 0;
12741272 }
12751273
1276−void CWelsH264SVCEncoder::DumpSrcPicture (const uint8_t* pSrc) {
1274+void CWelsH264SVCEncoder::DumpSrcPicture (const SSourcePicture* pSrcPic, const int iUsageType) {
12771275 #ifdef DUMP_SRC_PICTURE
12781276 FILE* pFile = NULL;
12791277 char strFileName[256] = {0};
12801278 const int32_t iDataLength = m_iMaxPicWidth * m_iMaxPicHeight;
12811279
1282− WelsStrncpy (strFileName, 256, "pic_in_"); // confirmed_safe_unsafe_usage
1283−
1284− if (m_iMaxPicWidth == 640) {
1285− WelsStrcat (strFileName, 256, "360p."); // confirmed_safe_unsafe_usage
1286− } else if (m_iMaxPicWidth == 320) {
1287− WelsStrcat (strFileName, 256, "180p."); // confirmed_safe_unsafe_usage
1288− } else if (m_iMaxPicWidth == 160) {
1289− WelsStrcat (strFileName, 256, "90p."); // confirmed_safe_unsafe_usage
1290− }
1280+ WelsSnprintf (strFileName, sizeof (strFileName), "pic_in_%dx%d.yuv", m_iMaxPicWidth, m_iMaxPicHeight);// confirmed_safe_unsafe_usage
12911281
1292− switch (m_iCspInternal) {
1282+ switch (pSrcPic->iColorFormat) {
12931283 case videoFormatI420:
12941284 case videoFormatYV12:
1295− WelsStrcat (strFileName, 256, "yuv"); // confirmed_safe_unsafe_usage
12961285 pFile = WelsFopen (strFileName, "ab+");
1297− // WelsLog( &m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, "WELS_CSP_I420, m_iCspInternal= 0x%x", m_iCspInternal);
1286+
12981287 if (NULL != pFile) {
1299− fwrite (pSrc, sizeof (uint8_t), (iDataLength * 3) >> 1, pFile);
1288+ fwrite (pSrcPic->pData[0], sizeof (uint8_t), pSrcPic->iStride[0]*m_iMaxPicHeight, pFile);
1289+ fwrite (pSrcPic->pData[1], sizeof (uint8_t), pSrcPic->iStride[1]*(m_iMaxPicHeight >> 1), pFile);
1290+ fwrite (pSrcPic->pData[2], sizeof (uint8_t), pSrcPic->iStride[2]*(m_iMaxPicHeight >> 1), pFile);
13001291 fflush (pFile);
13011292 fclose (pFile);
1293+ } else {
1294+ WelsLog (&m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, "DumpSrcPicture, strFileName %s open failed!", strFileName);
13021295 }
13031296 break;
13041297 case videoFormatRGB:
1305− WelsStrcat (strFileName, 256, "rgb"); // confirmed_safe_unsafe_usage
1298+ WelsStrcat (strFileName, 256, ".rgb"); // confirmed_safe_unsafe_usage
13061299 pFile = WelsFopen (strFileName, "ab+");
13071300 if (NULL != pFile) {
1308− fwrite (pSrc, sizeof (uint8_t), iDataLength * 3, pFile);
1301+ fwrite (pSrcPic->pData[0], sizeof (uint8_t), iDataLength * 3, pFile);
13091302 fflush (pFile);
13101303 fclose (pFile);
13111304 }
13121305 case videoFormatBGR:
1313− WelsStrcat (strFileName, 256, "bgr"); // confirmed_safe_unsafe_usage
1306+ WelsStrcat (strFileName, 256, ".bgr"); // confirmed_safe_unsafe_usage
13141307 pFile = WelsFopen (strFileName, "ab+");
1315− // WelsLog( &m_pWelsTrace->m_sLogCtx, WELS_LOG_INFO, "WELS_CSP_BGR, m_iCspInternal= 0x%x", m_iCspInternal);
13161308 if (NULL != pFile) {
1317− fwrite (pSrc, sizeof (uint8_t), iDataLength * 3, pFile);
1309+ fwrite (pSrcPic->pData[0], sizeof (uint8_t), iDataLength * 3, pFile);
13181310 fflush (pFile);
13191311 fclose (pFile);
13201312 }
13211313 break;
13221314 case videoFormatYUY2:
1323− WelsStrcat (strFileName, 256, "yuy2"); // confirmed_safe_unsafe_usage
1315+ WelsStrcat (strFileName, 256, ".yuy2"); // confirmed_safe_unsafe_usage
13241316 pFile = WelsFopen (strFileName, "ab+");
13251317 if (NULL != pFile) {
1326− fwrite (pSrc, sizeof (uint8_t), (CALC_BI_STRIDE (m_iMaxPicWidth, 16)) * m_iMaxPicHeight, pFile);
1318+ fwrite (pSrcPic->pData[0], sizeof (uint8_t), (CALC_BI_STRIDE (m_iMaxPicWidth, 16)) * m_iMaxPicHeight, pFile);
13271319 fflush (pFile);
13281320 fclose (pFile);
13291321 }

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