History

Multi-thread-fixed:RBC#1720:iMaxSliceNumConstraint replaced by iMaxSliceNum

huade committed 9 years ago

Commit c2e37d51 parent c917d315 files · +31 −36Browse files

Showing the changes to codec/encoder/core/src/encoder_ext.cpp (1 of 5 files). Show all

Unified · Split

codec/encoder/core/src/encoder_ext.cpp+9−12
@@ -2478,6 +2478,7 @@ void UpdateSlicepEncCtxWithPartition (SDqLayer* pCurDq, int32_t iPartitionNum) { · 2477 unmodified lines
2478void WelsInitCurrentDlayerMltslc (sWelsEncCtx* pCtx, int32_t iPartitionNum) {2478void WelsInitCurrentDlayerMltslc (sWelsEncCtx* pCtx, int32_t iPartitionNum) {
2479 SDqLayer* pCurDq = pCtx->pCurDqLayer;2479 SDqLayer* pCurDq = pCtx->pCurDqLayer;
2480 SSliceCtx* pSliceCtx = &pCurDq->sSliceEncCtx;2480 SSliceCtx* pSliceCtx = &pCurDq->sSliceEncCtx;
2481 uint32_t uiMiniPacketSize = 0;
2481 2482
2482 UpdateSlicepEncCtxWithPartition (pCurDq, iPartitionNum);2483 UpdateSlicepEncCtxWithPartition (pCurDq, iPartitionNum);
2483 2484
@@ -2508,12 +2509,9 @@ void WelsInitCurrentDlayerMltslc (sWelsEncCtx* pCtx, int32_t iPartitionNum) { · 24 unmodified lines
2508 }2509 }
2509 2510
2510 //MINPACKETSIZE_CONSTRAINT2511 //MINPACKETSIZE_CONSTRAINT
2511 if (pSliceCtx->uiSliceSizeConstraint2512 //suppose 16 byte per mb at average
2512 <2513 uiMiniPacketSize = (uint32_t) (uiFrmByte / pSliceCtx->iMaxSliceNumConstraint);
2513 (uint32_t) (uiFrmByte//suppose 16 byte per mb at average2514 if (pSliceCtx->uiSliceSizeConstraint < uiMiniPacketSize ) {
2514 / (pSliceCtx->iMaxSliceNumConstraint))
2515 ) {
2516
2517 WelsLog (& (pCtx->sLogCtx),2515 WelsLog (& (pCtx->sLogCtx),
2518 WELS_LOG_WARNING,2516 WELS_LOG_WARNING,
2519 "Set-SliceConstraint(%d) too small for current resolution (MB# %d) under QP/BR!",2517 "Set-SliceConstraint(%d) too small for current resolution (MB# %d) under QP/BR!",
@@ -4445,7 +4443,7 @@ int32_t FrameBsRealloc (sWelsEncCtx* pCtx, · 1925 unmodified lines
4445 SDqLayer* pCurLayer = pCtx->pCurDqLayer;4443 SDqLayer* pCurLayer = pCtx->pCurDqLayer;
4446 4444
4447 int32_t iCountNals = pCtx->pOut->iCountNals;4445 int32_t iCountNals = pCtx->pOut->iCountNals;
4448 int32_t iMaxSliceNumOld = pCurLayer->sSliceEncCtx.iMaxSliceNumConstraint;4446 int32_t iMaxSliceNumOld = pCurLayer->iMaxSliceNum;
4449 int32_t iMaxSliceNum = iMaxSliceNumOld;4447 int32_t iMaxSliceNum = iMaxSliceNumOld;
4450 iCountNals += iMaxSliceNum * (pCtx->pSvcParam->iSpatialLayerNum + pCtx->bNeedPrefixNalFlag);4448 iCountNals += iMaxSliceNum * (pCtx->pSvcParam->iSpatialLayerNum + pCtx->bNeedPrefixNalFlag);
4451 iMaxSliceNum *= SLICE_NUM_EXPAND_COEF;4449 iMaxSliceNum *= SLICE_NUM_EXPAND_COEF;
@@ -4512,7 +4510,6 @@ int32_t WelsCodeOnePicPartition (sWelsEncCtx* pCtx, · 60 unmodified lines
4512 ) {4510 ) {
4513 4511
4514 SDqLayer* pCurLayer = pCtx->pCurDqLayer;4512 SDqLayer* pCurLayer = pCtx->pCurDqLayer;
4515 SSliceCtx* pSliceCtx = &pCurLayer->sSliceEncCtx;
4516 SSlice* pStartSlice = pCurLayer->ppSliceInLayer[iStartSliceIdx];4513 SSlice* pStartSlice = pCurLayer->ppSliceInLayer[iStartSliceIdx];
4517 int32_t iNalIdxInLayer = *pNalIdxInLayer;4514 int32_t iNalIdxInLayer = *pNalIdxInLayer;
4518 int32_t iSliceIdx = iStartSliceIdx;4515 int32_t iSliceIdx = iStartSliceIdx;
@@ -4538,7 +4535,7 @@ int32_t WelsCodeOnePicPartition (sWelsEncCtx* pCtx, · 19 unmodified lines
4538 int32_t iPayloadSize = 0;4535 int32_t iPayloadSize = 0;
4539 SSlice* pCurSlice = NULL;4536 SSlice* pCurSlice = NULL;
4540 4537
4541 if (iSliceIdx >= (pSliceCtx->iMaxSliceNumConstraint - kiSliceIdxStep)) { // insufficient memory in pSliceInLayer[]4538 if (iSliceIdx >= (pCurLayer->iMaxSliceNum - kiSliceIdxStep)) { // insufficient memory in pSliceInLayer[]
4542 if (pCtx->iActiveThreadsNum == 1) {4539 if (pCtx->iActiveThreadsNum == 1) {
4543 //only single thread support re-alloc now4540 //only single thread support re-alloc now
4544 if (DynSliceRealloc (pCtx, pFrameBSInfo, pLayerBsInfo)) {4541 if (DynSliceRealloc (pCtx, pFrameBSInfo, pLayerBsInfo)) {
@@ -4546,10 +4543,10 @@ int32_t WelsCodeOnePicPartition (sWelsEncCtx* pCtx, · 1 unmodified line
4546 "CWelsH264SVCEncoder::WelsCodeOnePicPartition: DynSliceRealloc not successful");4543 "CWelsH264SVCEncoder::WelsCodeOnePicPartition: DynSliceRealloc not successful");
4547 return ENC_RETURN_MEMALLOCERR;4544 return ENC_RETURN_MEMALLOCERR;
4548 }4545 }
4549 } else if (iSliceIdx >= pSliceCtx->iMaxSliceNumConstraint) {4546 } else if (iSliceIdx >= pCurLayer->iMaxSliceNum) {
4550 WelsLog (& (pCtx->sLogCtx), WELS_LOG_ERROR,4547 WelsLog (& (pCtx->sLogCtx), WELS_LOG_ERROR,
4551 "CWelsH264SVCEncoder::WelsCodeOnePicPartition: iSliceIdx(%d) over iMaxSliceNumConstraint(%d)", iSliceIdx,4548 "CWelsH264SVCEncoder::WelsCodeOnePicPartition: iSliceIdx(%d) over iMaxSliceNum(%d)", iSliceIdx,
4552 pSliceCtx->iMaxSliceNumConstraint);4549 pCurLayer->iMaxSliceNum);
4553 return ENC_RETURN_MEMALLOCERR;4550 return ENC_RETURN_MEMALLOCERR;
4554 }4551 }
4555 }4552 }

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