am 4cffbb47: Merge "fix [2946787] Screen flicker on low resolution setting in camcorder." into gingerbread

Merge commit '4cffbb47a28faa594c2217d1e84f9382e0b57cc4' into gingerbread-plus-aosp

* commit '4cffbb47a28faa594c2217d1e84f9382e0b57cc4':
  fix [2946787] Screen flicker on low resolution setting in camcorder.
This commit is contained in:
Mathias Agopian
2010-08-25 15:40:44 -07:00
committed by Android Git Automerger

View File

@@ -162,9 +162,13 @@ status_t Layer::setBuffers( uint32_t w, uint32_t h,
const uint32_t hwFlags = hw.getFlags();
mFormat = format;
mReqFormat = format;
mWidth = w;
mHeight = h;
mReqFormat = format;
mReqWidth = w;
mReqHeight = h;
mSecure = (flags & ISurfaceComposer::eSecure) ? true : false;
mNeedsBlending = (info.h_alpha - info.l_alpha) > 0;
@@ -304,16 +308,22 @@ sp<GraphicBuffer> Layer::requestBuffer(int index,
uint32_t w, h, f;
{ // scope for the lock
Mutex::Autolock _l(mLock);
const bool fixedSizeChanged = mFixedSize != (reqWidth && reqHeight);
const bool formatChanged = mReqFormat != reqFormat;
mReqWidth = reqWidth;
mReqHeight = reqHeight;
mReqFormat = reqFormat;
mFixedSize = reqWidth && reqHeight;
w = reqWidth ? reqWidth : mWidth;
h = reqHeight ? reqHeight : mHeight;
f = reqFormat ? reqFormat : mFormat;
if (fixedSizeChanged || formatChanged) {
// zero means default
if (!reqFormat) reqFormat = mFormat;
if (!reqWidth) reqWidth = mWidth;
if (!reqHeight) reqHeight = mHeight;
w = reqWidth;
h = reqHeight;
f = reqFormat;
if ((reqWidth != mReqWidth) || (reqHeight != mReqHeight) ||
(reqFormat != mReqFormat)) {
mReqWidth = reqWidth;
mReqHeight = reqHeight;
mReqFormat = reqFormat;
lcblk->reallocateAllExcept(index);
}
}