Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 983e2be8 authored by Dan Stoza's avatar Dan Stoza
Browse files

DO NOT MERGE libstagefright: Stop using IGBC::BufferItem

Switches all uses of IGraphicBufferConsumer::BufferItem (and
BufferQueue::BufferItem) to the BufferItem in libgui.

Similar to I0ddd38df37500cfd6b21d1e768ed14e39c5cd9fc, but not a
cherry-pick.

Change-Id: I9b16c81bd3bdacdba86eb8fb9b216b295a44b1cb
parent 027c772e
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@
#include <media/hardware/MetadataBufferType.h>

#include <ui/GraphicBuffer.h>
#include <gui/BufferItem.h>
#include <gui/ISurfaceComposer.h>
#include <gui/IGraphicBufferAlloc.h>
#include <OMX_Component.h>
@@ -290,7 +291,7 @@ status_t SurfaceMediaSource::read(
    // TODO: mCurrentSlot can be made a bufferstate since there
    // can be more than one "current" slots.

    BufferQueue::BufferItem item;
    BufferItem item;
    // If the recording has started and the queue is empty, then just
    // wait here till the frames come in from the client side
    while (mStarted) {
+8 −7
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@

#include <media/hardware/MetadataBufferType.h>
#include <ui/GraphicBuffer.h>
#include <gui/BufferItem.h>

#include <inttypes.h>

@@ -359,7 +360,7 @@ void GraphicBufferSource::suspend(bool suspend) {
        mSuspended = true;

        while (mNumFramesAvailable > 0) {
            BufferQueue::BufferItem item;
            BufferItem item;
            status_t err = mConsumer->acquireBuffer(&item, 0);

            if (err == BufferQueue::NO_BUFFER_AVAILABLE) {
@@ -409,7 +410,7 @@ bool GraphicBufferSource::fillCodecBuffer_l() {

    ALOGV("fillCodecBuffer_l: acquiring buffer, avail=%zu",
            mNumFramesAvailable);
    BufferQueue::BufferItem item;
    BufferItem item;
    status_t err = mConsumer->acquireBuffer(&item, 0);
    if (err == BufferQueue::NO_BUFFER_AVAILABLE) {
        // shouldn't happen
@@ -492,7 +493,7 @@ bool GraphicBufferSource::repeatLatestSubmittedBuffer_l() {
        return false;
    }

    BufferQueue::BufferItem item;
    BufferItem item;
    item.mBuf = mLatestSubmittedBufferId;
    item.mFrameNumber = mLatestSubmittedBufferFrameNum;
    item.mTimestamp = mRepeatLastFrameTimestamp;
@@ -523,7 +524,7 @@ bool GraphicBufferSource::repeatLatestSubmittedBuffer_l() {
}

void GraphicBufferSource::setLatestSubmittedBuffer_l(
        const BufferQueue::BufferItem &item) {
        const BufferItem &item) {
    ALOGV("setLatestSubmittedBuffer_l");

    if (mLatestSubmittedBufferId >= 0) {
@@ -579,7 +580,7 @@ status_t GraphicBufferSource::signalEndOfInputStream() {
    return OK;
}

int64_t GraphicBufferSource::getTimestamp(const BufferQueue::BufferItem &item) {
int64_t GraphicBufferSource::getTimestamp(const BufferItem &item) {
    int64_t timeUs = item.mTimestamp / 1000;

    if (mTimePerCaptureUs > 0ll) {
@@ -640,7 +641,7 @@ int64_t GraphicBufferSource::getTimestamp(const BufferQueue::BufferItem &item) {
}

status_t GraphicBufferSource::submitBuffer_l(
        const BufferQueue::BufferItem &item, int cbi) {
        const BufferItem &item, int cbi) {
    ALOGV("submitBuffer_l cbi=%d", cbi);

    int64_t timeUs = getTimestamp(item);
@@ -766,7 +767,7 @@ void GraphicBufferSource::onFrameAvailable(const BufferItem& /*item*/) {
            ALOGV("onFrameAvailable: suspended, ignoring frame");
        }

        BufferQueue::BufferItem item;
        BufferItem item;
        status_t err = mConsumer->acquireBuffer(&item, 0);
        if (err == OK) {
            // If this is the first time we're seeing this buffer, add it to our
+3 −3
Original line number Diff line number Diff line
@@ -187,15 +187,15 @@ private:

    // Marks the mCodecBuffers entry as in-use, copies the GraphicBuffer
    // reference into the codec buffer, and submits the data to the codec.
    status_t submitBuffer_l(const BufferQueue::BufferItem &item, int cbi);
    status_t submitBuffer_l(const BufferItem &item, int cbi);

    // Submits an empty buffer, with the EOS flag set.   Returns without
    // doing anything if we don't have a codec buffer available.
    void submitEndOfInputStream_l();

    void setLatestSubmittedBuffer_l(const BufferQueue::BufferItem &item);
    void setLatestSubmittedBuffer_l(const BufferItem &item);
    bool repeatLatestSubmittedBuffer_l();
    int64_t getTimestamp(const BufferQueue::BufferItem &item);
    int64_t getTimestamp(const BufferItem &item);

    // Lock, covers all member variables.
    mutable Mutex mMutex;