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

Commit 685c0ae8 authored by Dan Stoza's avatar Dan Stoza Committed by Android (Google) Code Review
Browse files

Merge "BufferQueue: Allow returning interfaces as I*/Bn*"

parents 047b81ce f522af7e
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -106,14 +106,19 @@ public:
        wp<ConsumerListener> mConsumerListener;
    };

    static void createBufferQueue(sp<BnGraphicBufferProducer>* outProducer,
            sp<BnGraphicBufferConsumer>* outConsumer,
            const sp<IGraphicBufferAlloc>& allocator = NULL);

    // BufferQueue manages a pool of gralloc memory slots to be used by
    // producers and consumers. allocator is used to allocate all the
    // needed gralloc buffers.
    BufferQueue(const sp<IGraphicBufferAlloc>& allocator = NULL);

    static void createBufferQueue(sp<BnGraphicBufferProducer>* outProducer,
            sp<BnGraphicBufferConsumer>* outConsumer,
            const sp<IGraphicBufferAlloc>& allocator = NULL);

    static void createBufferQueue(sp<IGraphicBufferProducer>* outProducer,
            sp<IGraphicBufferConsumer>* outConsumer,
            const sp<IGraphicBufferAlloc>& allocator = NULL);

    virtual ~BufferQueue();

    /*
+13 −0
Original line number Diff line number Diff line
@@ -56,6 +56,19 @@ void BufferQueue::createBufferQueue(sp<BnGraphicBufferProducer>* outProducer,
    *outConsumer = new BufferQueueConsumer(core);
}

void BufferQueue::createBufferQueue(sp<IGraphicBufferProducer>* outProducer,
        sp<IGraphicBufferConsumer>* outConsumer,
        const sp<IGraphicBufferAlloc>& allocator) {
    LOG_ALWAYS_FATAL_IF(outProducer == NULL,
            "BufferQueue: outProducer must not be NULL");
    LOG_ALWAYS_FATAL_IF(outConsumer == NULL,
            "BufferQueue: outConsumer must not be NULL");

    sp<BufferQueueCore> core(new BufferQueueCore(allocator));
    *outProducer = new BufferQueueProducer(core);
    *outConsumer = new BufferQueueConsumer(core);
}

BufferQueue::BufferQueue(const sp<IGraphicBufferAlloc>& allocator) :
    mProducer(),
    mConsumer()