Skip to content

Commit

Permalink
fix an improper mb-size assignment
Browse files Browse the repository at this point in the history
  • Loading branch information
sijchen committed May 8, 2015
1 parent 7c868ca commit 38ffbf7
Showing 1 changed file with 11 additions and 11 deletions.
22 changes: 11 additions & 11 deletions codec/encoder/core/src/svc_enc_slice_segment.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -280,33 +280,33 @@ bool GomValidCheckSliceMbNum (const int32_t kiMbWidth, const int32_t kiMbHeight,
iGomSize = kiMbWidth * GOM_ROW_MODE0_360P;
else
iGomSize = kiMbWidth * GOM_ROW_MODE0_720P;
// GOM boundary aligned
int32_t iNumMbAssigning = WELS_DIV_ROUND (INT_MULTIPLY * kiMbNumPerSlice, iGomSize * INT_MULTIPLY) * iGomSize;
int32_t iCurNumMbAssigning = 0;

iMinimalMbNum = iGomSize;
iMaximalMbNum = kiMbNumInFrame - (kuiSliceNum - 1) * iMinimalMbNum;

while (uiSliceIdx + 1 < kuiSliceNum) {
// GOM boundary aligned
int32_t iNumMbAssigning = WELS_DIV_ROUND (INT_MULTIPLY * kiMbNumPerSlice, iGomSize * INT_MULTIPLY) * iGomSize;
iMaximalMbNum = iNumMbLeft - (kuiSliceNum - uiSliceIdx - 1) * iMinimalMbNum; // get maximal num_mb in left parts

// make sure one GOM at least in each slice for safe
if (iNumMbAssigning < iMinimalMbNum)
iNumMbAssigning = iMinimalMbNum;
iCurNumMbAssigning = iMinimalMbNum;
else if (iNumMbAssigning > iMaximalMbNum)
iNumMbAssigning = iMaximalMbNum;
iCurNumMbAssigning = ( iMaximalMbNum / iGomSize ) * iGomSize;
else
iCurNumMbAssigning = iNumMbAssigning;

if (iNumMbAssigning <= 0) {
if (iCurNumMbAssigning <= 0) {
return false;
}

iNumMbLeft -= iNumMbAssigning;
iNumMbLeft -= iCurNumMbAssigning;
if (iNumMbLeft <= 0) {
return false;
}

pSlicesAssignList[uiSliceIdx] = iNumMbAssigning;

pSlicesAssignList[uiSliceIdx] = iCurNumMbAssigning;
++ uiSliceIdx;
iMaximalMbNum = iNumMbLeft - (kuiSliceNum - uiSliceIdx - 1) * iMinimalMbNum; // get maximal num_mb in left parts
}
pSlicesAssignList[uiSliceIdx] = iNumMbLeft;

Expand Down

0 comments on commit 38ffbf7

Please sign in to comment.