ref: 9a9f92bcfea3e64fbec524d66e96bdd321294bb7
parent: 292d2511e2f91ffc00a1b9addf0876a0bcad271e
author: Martin Storsjö <martin@martin.st>
date: Tue Oct 28 10:35:43 EDT 2014
Don't stash the cabac state into the SBitStringAux buffer This fixes crashes on some platforms, and fixes valgrind errors.
--- a/codec/encoder/core/src/set_mb_syn_cavlc.cpp
+++ b/codec/encoder/core/src/set_mb_syn_cavlc.cpp
@@ -216,13 +216,13 @@
return pDss->iMbSkipRunStack;
}
void StashMBStatusCabac (SDynamicSlicingStack* pDss, void* pBuffer, SSlice* pSlice, int32_t iMbSkipRun) {
- SCabacCtx* pCtx = (SCabacCtx*)pBuffer;
+ SCabacCtx* pCtx = &pSlice->sCabacCtx;
memcpy (&pDss->sStoredCabac, pCtx, sizeof (SCabacCtx));
pDss->uiLastMbQp = pSlice->uiLastMbQp;
pDss->iMbSkipRunStack = iMbSkipRun;
}
int32_t StashPopMBStatusCabac (SDynamicSlicingStack* pDss, void* pBuffer, SSlice* pSlice) {
- SCabacCtx* pCtx = (SCabacCtx*)pBuffer;
+ SCabacCtx* pCtx = &pSlice->sCabacCtx;
memcpy (pCtx, &pDss->sStoredCabac, sizeof (SCabacCtx));
pSlice->uiLastMbQp = pDss->uiLastMbQp;
return pDss->iMbSkipRunStack;