ref: 47d6ac3b5786f273c4bc9c49d38eac49dabb4022
parent: bf33bde15defd14765cd00c5d0742338f0bd96bd
author: huade <[email protected]>
date: Wed Aug 19 05:05:15 EDT 2015
bug-fixed----left length of destination buffer for writing slice bs
--- a/codec/encoder/core/src/slice_multi_threading.cpp
+++ b/codec/encoder/core/src/slice_multi_threading.cpp
@@ -764,7 +764,7 @@
WelsUnloadNalForSlice (pSliceBs);
int32_t iLeftBufferSize = (iSliceIdx > 0) ?
- (pSliceBs->uiSize - (int32_t) (pSliceBs->sBsWrite.pCurBuf - pSliceBs->sBsWrite.pStartBuf))
+ (pSliceBs->uiSize - pSliceBs->uiBsPos)
: (pEncPEncCtx->iFrameBsSize - pEncPEncCtx->iPosBsBuffer);
iReturn = WriteSliceBs (pEncPEncCtx, pSliceBs->pBs,
&pSliceBs->iNalLen[0],
@@ -883,7 +883,7 @@
pEncPEncCtx->iPosBsBuffer += iSliceSize;
} else {
iReturn = WriteSliceBs (pEncPEncCtx, pSliceBs->pBs, &pSliceBs->iNalLen[0],
- pSliceBs->uiSize - (int32_t) (pSliceBs->sBsWrite.pCurBuf - pSliceBs->sBsWrite.pStartBuf),
+ pSliceBs->uiSize - pSliceBs->uiBsPos,
iSliceIdx, iSliceSize);
if (ENC_RETURN_SUCCESS != iReturn) {
uiThrdRet = iReturn;