diff options
| author | 2012-04-09 16:14:01 -0700 | |
|---|---|---|
| committer | 2012-04-10 21:04:12 -0700 | |
| commit | f0bc2f1d8d37977bd3aef3d3326a70e9e69d4246 (patch) | |
| tree | def01867f0d2c1528b97dc1673134c13bb648922 /libs/gui/BufferQueue.cpp | |
| parent | cac72cdbdf017bc292761a8e3b7195c31a691f49 (diff) | |
use in/out structures for queueBuffer() IPC
Change-Id: Ie125df2444b62a9a2200586a717dca268852afc9
Diffstat (limited to 'libs/gui/BufferQueue.cpp')
| -rw-r--r-- | libs/gui/BufferQueue.cpp | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/libs/gui/BufferQueue.cpp b/libs/gui/BufferQueue.cpp index 8263e4e710..ddbfe05409 100644 --- a/libs/gui/BufferQueue.cpp +++ b/libs/gui/BufferQueue.cpp @@ -526,9 +526,8 @@ status_t BufferQueue::setSynchronousMode(bool enabled) { return err; } -status_t BufferQueue::queueBuffer(int buf, int64_t timestamp, - const Rect& crop, int scalingMode, uint32_t transform, - uint32_t* outWidth, uint32_t* outHeight, uint32_t* outTransform) { +status_t BufferQueue::queueBuffer(int buf, + const QueueBufferInput& input, QueueBufferOutput* output) { ATRACE_CALL(); ATRACE_BUFFER_INDEX(buf); @@ -581,6 +580,15 @@ status_t BufferQueue::queueBuffer(int buf, int64_t timestamp, } } + int scalingMode; + + input.deflate( + &mSlots[buf].mTimestamp, + &mSlots[buf].mCrop, + &scalingMode, + &mSlots[buf].mTransform); + + switch (scalingMode) { case NATIVE_WINDOW_SCALING_MODE_FREEZE: case NATIVE_WINDOW_SCALING_MODE_SCALE_TO_WINDOW: @@ -592,19 +600,14 @@ status_t BufferQueue::queueBuffer(int buf, int64_t timestamp, } mSlots[buf].mBufferState = BufferSlot::QUEUED; - mSlots[buf].mCrop = crop; - mSlots[buf].mTransform = transform; mSlots[buf].mScalingMode = scalingMode; - mSlots[buf].mTimestamp = timestamp; mFrameCounter++; mSlots[buf].mFrameNumber = mFrameCounter; mBufferHasBeenQueued = true; mDequeueCondition.broadcast(); - *outWidth = mDefaultWidth; - *outHeight = mDefaultHeight; - *outTransform = mTransformHint; + output->inflate(mDefaultWidth, mDefaultHeight, mDefaultHeight); ATRACE_INT(mConsumerName.string(), mQueue.size()); } // scope for the lock |