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

Commit 8ed8ceda authored by Dan Stoza's avatar Dan Stoza
Browse files

libstagefright: Stop using IGBC::BufferItem

Switches all uses of IGraphicBufferConsumer::BufferItem (and
BufferQueue::BufferItem) to the BufferItem in libgui. Depends on
frameworks/native I699ed0a6837076867ca756b28d1ffb2238f7a0d9. This
is a member of I187b3a7d05196b6289596afac8fb9a9d4aebff76, but since
it was split out from the camera change in frameworks/av, they have
to have different change IDs.

Change-Id: I0ddd38df37500cfd6b21d1e768ed14e39c5cd9fc
parent 3f27436a
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) {
+6 −6
Original line number Diff line number Diff line
@@ -21,6 +21,8 @@
#include <media/stagefright/foundation/AMessage.h>
#include <media/stagefright/MediaErrors.h>

#include <gui/BufferItem.h>

#include "GraphicBufferListener.h"

namespace android {
@@ -83,8 +85,8 @@ void GraphicBufferListener::onSidebandStreamChanged() {
    // nothing to do
}

BufferQueue::BufferItem GraphicBufferListener::getBufferItem() {
    BufferQueue::BufferItem item;
BufferItem GraphicBufferListener::getBufferItem() {
    BufferItem item;

    {
        Mutex::Autolock autoLock(mMutex);
@@ -124,8 +126,7 @@ BufferQueue::BufferItem GraphicBufferListener::getBufferItem() {
    return item;
}

sp<GraphicBuffer> GraphicBufferListener::getBuffer(
        BufferQueue::BufferItem item) {
sp<GraphicBuffer> GraphicBufferListener::getBuffer(BufferItem item) {
    sp<GraphicBuffer> buf;
    if (item.mBuf < 0 || item.mBuf >= BufferQueue::NUM_BUFFER_SLOTS) {
        ALOGE("getBuffer() received invalid BufferItem: mBuf==%d", item.mBuf);
@@ -138,8 +139,7 @@ sp<GraphicBuffer> GraphicBufferListener::getBuffer(
    return buf;
}

status_t GraphicBufferListener::releaseBuffer(
        BufferQueue::BufferItem item) {
status_t GraphicBufferListener::releaseBuffer(BufferItem item) {
    if (item.mBuf < 0 || item.mBuf >= BufferQueue::NUM_BUFFER_SLOTS) {
        ALOGE("getBuffer() received invalid BufferItem: mBuf==%d", item.mBuf);
        return ERROR_OUT_OF_RANGE;
+3 −3
Original line number Diff line number Diff line
@@ -41,9 +41,9 @@ public:
        return mProducer;
    }

    BufferQueue::BufferItem getBufferItem();
    sp<GraphicBuffer> getBuffer(BufferQueue::BufferItem item);
    status_t releaseBuffer(BufferQueue::BufferItem item);
    BufferItem getBufferItem();
    sp<GraphicBuffer> getBuffer(BufferItem item);
    status_t releaseBuffer(BufferItem item);

    enum {
        kWhatFrameAvailable = 'frav',
+3 −1
Original line number Diff line number Diff line
@@ -31,6 +31,8 @@
#include <media/stagefright/MediaErrors.h>
#include <media/stagefright/MediaFilter.h>

#include <gui/BufferItem.h>

#include "ColorConvert.h"
#include "GraphicBufferListener.h"
#include "IntrinsicBlurFilter.h"
@@ -749,7 +751,7 @@ void MediaFilter::onCreateInputSurface() {
}

void MediaFilter::onInputFrameAvailable() {
    BufferQueue::BufferItem item = mGraphicBufferListener->getBufferItem();
    BufferItem item = mGraphicBufferListener->getBufferItem();
    sp<GraphicBuffer> buf = mGraphicBufferListener->getBuffer(item);

    // get pointer to graphic buffer
+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>
#include "FrameDropper.h"
@@ -360,7 +361,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) {
@@ -410,7 +411,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
@@ -503,7 +504,7 @@ bool GraphicBufferSource::repeatLatestBuffer_l() {
        return false;
    }

    BufferQueue::BufferItem item;
    BufferItem item;
    item.mBuf = mLatestBufferId;
    item.mFrameNumber = mLatestBufferFrameNum;
    item.mTimestamp = mRepeatLastFrameTimestamp;
@@ -534,7 +535,7 @@ bool GraphicBufferSource::repeatLatestBuffer_l() {
}

void GraphicBufferSource::setLatestBuffer_l(
        const BufferQueue::BufferItem &item, bool dropped) {
        const BufferItem &item, bool dropped) {
    ALOGV("setLatestBuffer_l");

    if (mLatestBufferId >= 0) {
@@ -590,7 +591,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) {
@@ -651,7 +652,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);
@@ -777,7 +778,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
Loading