Merge pull request #724 from mstorsjo/string-cleanup

Unify return values from Wels*Snprintf and simplify calling code
This commit is contained in:
Licai Guo 2014-04-22 16:41:44 +08:00
commit 75c941a836
4 changed files with 46 additions and 69 deletions

View File

@ -68,6 +68,8 @@ int32_t WelsSnprintf (char* pBuffer, int32_t iSizeOfBuffer, const char* kpForma
va_start (pArgPtr, kpFormat);
iRc = vsnprintf_s (pBuffer, iSizeOfBuffer, _TRUNCATE, kpFormat, pArgPtr);
if (iRc < 0)
iRc = iSizeOfBuffer;
va_end (pArgPtr);
@ -81,7 +83,10 @@ char* WelsStrncpy (char* pDest, int32_t iSizeInBytes, const char* kpSrc) {
}
int32_t WelsVsnprintf (char* pBuffer, int32_t iSizeOfBuffer, const char* kpFormat, va_list pArgPtr) {
return vsnprintf_s (pBuffer, iSizeOfBuffer, _TRUNCATE, kpFormat, pArgPtr);
int32_t iRc = vsnprintf_s (pBuffer, iSizeOfBuffer, _TRUNCATE, kpFormat, pArgPtr);
if (iRc < 0)
iRc = iSizeOfBuffer;
return iRc;
}
WelsFileHandle* WelsFopen (const char* kpFilename, const char* kpMode) {
@ -122,8 +127,10 @@ int32_t WelsSnprintf (char* pBuffer, int32_t iSizeOfBuffer, const char* kpForma
va_start (pArgPtr, kpFormat);
iRc = vsnprintf (pBuffer, iSizeOfBuffer, kpFormat, pArgPtr); //confirmed_safe_unsafe_usage
if (iRc < 0)
if (iRc < 0) {
pBuffer[iSizeOfBuffer - 1] = '\0';
iRc = iSizeOfBuffer;
}
va_end (pArgPtr);
@ -139,8 +146,10 @@ char* WelsStrncpy (char* pDest, int32_t iSizeInBytes, const char* kpSrc) {
int32_t WelsVsnprintf (char* pBuffer, int32_t iSizeOfBuffer, const char* kpFormat, va_list pArgPtr) {
int32_t iRc = vsnprintf (pBuffer, iSizeOfBuffer, kpFormat, pArgPtr); //confirmed_safe_unsafe_usage
if (iRc < 0)
if (iRc < 0) {
pBuffer[iSizeOfBuffer - 1] = '\0';
iRc = iSizeOfBuffer;
}
return iRc;
}

View File

@ -110,20 +110,16 @@ CWelsDecoder::CWelsDecoder (void)
iCurUsed = WelsSnprintf (chFileName, iBufLeft, "bs_0x%p_", (void*)this);
iCurUsedSize = WelsSnprintf (chFileNameSize, iBufLeftSize, "size_0x%p_", (void*)this);
if (iCurUsed > 0) {
iBufUsed += iCurUsed;
iBufLeft -= iCurUsed;
}
iBufUsed += iCurUsed;
iBufLeft -= iCurUsed;
if (iBufLeft > 0) {
iCurUsed = WelsStrftime (&chFileName[iBufUsed], iBufLeft, "%y%m%d%H%M%S", &sCurTime);
iBufUsed += iCurUsed;
iBufLeft -= iCurUsed;
}
if (iCurUsedSize > 0) {
iBufUsedSize += iCurUsedSize;
iBufLeftSize -= iCurUsedSize;
}
iBufUsedSize += iCurUsedSize;
iBufLeftSize -= iCurUsedSize;
if (iBufLeftSize > 0) {
iCurUsedSize = WelsStrftime (&chFileNameSize[iBufUsedSize], iBufLeftSize, "%y%m%d%H%M%S", &sCurTime);
iBufUsedSize += iCurUsedSize;
@ -132,19 +128,15 @@ CWelsDecoder::CWelsDecoder (void)
if (iBufLeft > 0) {
iCurUsed = WelsSnprintf (&chFileName[iBufUsed], iBufLeft, ".%03.3u.264", WelsGetMillisecond (&sCurTime));
if (iCurUsed > 0) {
iBufUsed += iCurUsed;
iBufLeft -= iCurUsed;
}
iBufUsed += iCurUsed;
iBufLeft -= iCurUsed;
}
if (iBufLeftSize > 0) {
iCurUsedSize = WelsSnprintf (&chFileNameSize[iBufUsedSize], iBufLeftSize, ".%03.3u.len",
WelsGetMillisecond (&sCurTime));
if (iCurUsedSize > 0) {
iBufUsedSize += iCurUsedSize;
iBufLeftSize -= iCurUsedSize;
}
iBufUsedSize += iCurUsedSize;
iBufLeftSize -= iCurUsedSize;
}

View File

@ -144,26 +144,20 @@ void WelsLogDefault (void* pCtx, const int32_t kiLevel, const char* kpFmtStr, va
WelsGetTimeOfDay(&tTime);
iCurUsed = WelsSnprintf (&pBuf[iBufUsed], iBufLeft, "[0x%p @ ", pEncCtx); // confirmed_safe_unsafe_usage
if (iCurUsed >= 0) {
iBufUsed += iCurUsed;
iBufLeft -= iCurUsed;
}
iBufUsed += iCurUsed;
iBufLeft -= iCurUsed;
if (iBufLeft > 0) {
iCurUsed = GetCodeName (&pBuf[iBufUsed], iBufLeft);
if (iCurUsed > 0) {
iBufUsed += iCurUsed;
iBufLeft -= iCurUsed;
}
iBufUsed += iCurUsed;
iBufLeft -= iCurUsed;
pBuf[iBufUsed] = ' ';
++ iBufUsed;
-- iBufLeft;
iCurUsed = GetLibName (&pBuf[iBufUsed], iBufLeft);
if (iCurUsed > 0) {
iBufUsed += iCurUsed;
iBufLeft -= iCurUsed;
}
iBufUsed += iCurUsed;
iBufLeft -= iCurUsed;
pBuf[iBufUsed] = ' ';
++ iBufUsed;
-- iBufLeft;
@ -172,10 +166,8 @@ void WelsLogDefault (void* pCtx, const int32_t kiLevel, const char* kpFmtStr, va
++ iBufUsed;
-- iBufLeft;
iCurUsed = GetVerNum (&pBuf[iBufUsed], iBufLeft);
if (iCurUsed > 0) {
iBufUsed += iCurUsed;
iBufLeft -= iCurUsed;
}
iBufUsed += iCurUsed;
iBufLeft -= iCurUsed;
pBuf[iBufUsed] = ' ';
++ iBufUsed;
-- iBufLeft;
@ -183,20 +175,16 @@ void WelsLogDefault (void* pCtx, const int32_t kiLevel, const char* kpFmtStr, va
if (iBufLeft > 0) {
iCurUsed = WelsStrftime (&pBuf[iBufUsed], iBufLeft, "%y-%m-%d %H:%M:%S", &tTime);
if (iCurUsed > 0) {
iBufUsed += iCurUsed;
iBufLeft -= iCurUsed;
}
iBufUsed += iCurUsed;
iBufLeft -= iCurUsed;
} else {
return;
}
if (iBufLeft > 0) {
iCurUsed = WelsSnprintf (&pBuf[iBufUsed], iBufLeft, ".%3.3u]: ", tTime.millitm); // confirmed_safe_unsafe_usage
if (iCurUsed >= 0) {
iBufUsed += iCurUsed;
iBufLeft -= iCurUsed;
}
iBufUsed += iCurUsed;
iBufLeft -= iCurUsed;
} else {
return;
}
@ -209,18 +197,14 @@ void WelsLogDefault (void* pCtx, const int32_t kiLevel, const char* kpFmtStr, va
pStr = GetLogTag (kiLevel, &i_shift);
if (NULL != pStr) {
iCurUsed = WelsSnprintf (&pBuf[iBufUsed], iBufLeft, "%s ", pStr);
if (iCurUsed >= 0) {
iBufUsed += iCurUsed;
iBufLeft -= iCurUsed;
}
iBufUsed += iCurUsed;
iBufLeft -= iCurUsed;
}
}
if (iBufLeft > 0) {
iCurUsed = WelsVsnprintf (&pBuf[iBufUsed], iBufLeft, kpFmtStr, argv); // confirmed_safe_unsafe_usage
if (iCurUsed > 0) {
iBufUsed += iCurUsed;
iBufLeft -= iCurUsed;
}
iBufUsed += iCurUsed;
iBufLeft -= iCurUsed;
}
#ifdef ENABLE_TRACE_FILE
if (NULL != pEncCtx && NULL != pEncCtx->pFileLog) {

View File

@ -90,20 +90,16 @@ CWelsH264SVCEncoder::CWelsH264SVCEncoder()
iCurUsedSize = WelsSnprintf (strLenFileName, iBufferLeftSize, "enc_size_0x%p_", (void*)this);
if (iCurUsed > 0) {
iBufferUsed += iCurUsed;
iBufferLeft -= iCurUsed;
}
iBufferUsed += iCurUsed;
iBufferLeft -= iCurUsed;
if (iBufferLeft > 0) {
iCurUsed = WelsStrftime (&strStreamFileName[iBufferUsed], iBufferLeft, "%y%m%d%H%M%S", &tTime);
iBufferUsed += iCurUsed;
iBufferLeft -= iCurUsed;
}
if (iCurUsedSize > 0) {
iBufferUsedSize += iCurUsedSize;
iBufferLeftSize -= iCurUsedSize;
}
iBufferUsedSize += iCurUsedSize;
iBufferLeftSize -= iCurUsedSize;
if (iBufferLeftSize > 0) {
iCurUsedSize = WelsStrftime (&strLenFileName[iBufferUsedSize], iBufferLeftSize, "%y%m%d%H%M%S", &tTime);
iBufferUsedSize += iCurUsedSize;
@ -113,19 +109,15 @@ CWelsH264SVCEncoder::CWelsH264SVCEncoder()
if (iBufferLeft > 0) {
iCurUsed = WelsSnprintf (&strStreamFileName[iBufferUsed], iBufferLeft, ".%03.3u.264",
WelsGetMillisecond(&tTime));
if (iCurUsed > 0) {
iBufferUsed += iCurUsed;
iBufferLeft -= iCurUsed;
}
iBufferUsed += iCurUsed;
iBufferLeft -= iCurUsed;
}
if (iBufferLeftSize > 0) {
iCurUsedSize = WelsSnprintf (&strLenFileName[iBufferUsedSize], iBufferLeftSize, ".%03.3u.len",
WelsGetMillisecond(&tTime));
if (iCurUsedSize > 0) {
iBufferUsedSize += iCurUsedSize;
iBufferLeftSize -= iCurUsedSize;
}
iBufferUsedSize += iCurUsedSize;
iBufferLeftSize -= iCurUsedSize;
}
m_pFileBs = WelsFopen (strStreamFileName, "wb");
@ -471,8 +463,8 @@ int CWelsH264SVCEncoder::EncodeFrameInternal(const SSourcePicture* pSrcPic, SFr
m_pFileBsSize = NULL;
}
char strStreamFileName[128] = {0};
int32_t iLen = WelsSnprintf (strStreamFileName, 128, "adj%d_w%d.264", m_iSwitchTimes,
m_pEncContext->pSvcParam->iPicWidth);
WelsSnprintf (strStreamFileName, 128, "adj%d_w%d.264", m_iSwitchTimes,
m_pEncContext->pSvcParam->iPicWidth);
m_pFileBs = WelsFopen (strStreamFileName, "wb");
WelsSnprintf (strStreamFileName, 128, "adj%d_w%d_size.iLen", m_iSwitchTimes,
m_pEncContext->pSvcParam->iPicWidth);