bool MdpRot::remap(uint32_t numbufs) { // if current size changed, remap uint32_t opBufSize = calcOutputBufSize(); if(opBufSize == mMem.size()) { ALOGE_IF(DEBUG_OVERLAY, "%s: same size %d", __FUNCTION__, opBufSize); return true; } if(!mMem.close()) { ALOGE("%s error in closing prev rot mem", __FUNCTION__); return false; } ALOGE_IF(DEBUG_OVERLAY, "%s: size changed - remapping", __FUNCTION__); if(!open_i(numbufs, opBufSize)) { ALOGE("%s Error could not open", __FUNCTION__); return false; } for (uint32_t i = 0; i < numbufs; ++i) { mMem.mRotOffset[i] = i * opBufSize; } return true; }
bool MdpRot::remap(uint32_t numbufs) { // if current size changed, remap uint32_t opBufSize = calcOutputBufSize(); if(opBufSize == mMem.curr().size()) { ALOGE_IF(DEBUG_OVERLAY, "%s: same size %d", __FUNCTION__, opBufSize); return true; } ALOGE_IF(DEBUG_OVERLAY, "%s: size changed - remapping", __FUNCTION__); OVASSERT(!mMem.prev().valid(), "Prev should not be valid"); // ++mMem will make curr to be prev, and prev will be curr ++mMem; if(!open_i(numbufs, opBufSize)) { ALOGE("%s Error could not open", __FUNCTION__); return false; } for (uint32_t i = 0; i < numbufs; ++i) { mMem.curr().mRotOffset[i] = i * opBufSize; } return true; }