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

Commit ef939bf1 authored by Pawin Vongmasa's avatar Pawin Vongmasa
Browse files

Use @2.0::IGraphicBufferProducer in Codec2 modules

Test: make cts -j123 && cts-tradefed run cts-dev -m \
CtsMediaTestCases --compatibility:module-arg \
CtsMediaTestCases:include-annotation:\
android.platform.test.annotations.RequiresDevice

Bug: 33350696
Bug: 112362730

Change-Id: Ia5ed8da1c1fa3ab9decbafd814783b68e9ac9adb
parent 48616156
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ cc_library {

    shared_libs: [
        "android.hardware.graphics.bufferqueue@1.0",
        "android.hardware.graphics.bufferqueue@2.0",
        "android.hardware.graphics.common@1.0",
        "android.hardware.media@1.0",
        "android.hardware.media.bufferpool@2.0",
@@ -36,6 +37,7 @@ cc_library {
        "libcodec2",
        "libcodec2_vndk",
        "libcutils",
        "libgui",
        "libhidlbase",
        "libhidltransport",
        "libhwbinder",
+2 −2
Original line number Diff line number Diff line
@@ -272,7 +272,7 @@ Return<Status> Component::drain(bool withEos) {

Return<Status> Component::setOutputSurface(
        uint64_t blockPoolId,
        const sp<HGraphicBufferProducer>& surface) {
        const sp<HGraphicBufferProducer2>& surface) {
    std::shared_ptr<C2BlockPool> pool;
    GetCodec2BlockPool(blockPoolId, mComponent, &pool);
    if (pool && pool->getAllocatorId() == C2PlatformAllocatorStore::BUFFERQUEUE) {
@@ -312,7 +312,7 @@ Return<void> Component::connectToInputSurface(
}

Return<void> Component::connectToOmxInputSurface(
        const sp<HGraphicBufferProducer>& producer,
        const sp<HGraphicBufferProducer1>& producer,
        const sp<::android::hardware::media::omx::V1_0::
        IGraphicBufferSource>& source,
        connectToOmxInputSurface_cb _hidl_cb) {
+3 −5
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@
#include <codec2/hidl/1.0/types.h>

#include <android-base/file.h>
#include <media/stagefright/bqhelper/WGraphicBufferProducer.h>
#include <gui/bufferqueue/2.0/B2HGraphicBufferProducer.h>
#include <media/stagefright/bqhelper/GraphicBufferSource.h>
#include <utils/Errors.h>

@@ -219,13 +219,11 @@ Return<void> ComponentStore::createInputSurface(createInputSurface_cb _hidl_cb)
        _hidl_cb(Status::CORRUPTED, nullptr);
        return Void();
    }
    typedef ::android::hardware::graphics::bufferqueue::V1_0::
            IGraphicBufferProducer HGbp;
    typedef ::android::TWGraphicBufferProducer<HGbp> B2HGbp;
    sp<InputSurface> inputSurface = new InputSurface(
            this,
            std::make_shared<C2ReflectorHelper>(),
            new B2HGbp(source->getIGraphicBufferProducer()),
            new ::android::hardware::graphics::bufferqueue::V2_0::utils::
                B2HGraphicBufferProducer(source->getIGraphicBufferProducer()),
            source);
    _hidl_cb(inputSurface ? Status::OK : Status::NO_MEMORY,
             inputSurface);
+0 −2
Original line number Diff line number Diff line
@@ -151,8 +151,6 @@ Return<void> InputSurface::connect(
    return Void();
}

// Derived methods from IGraphicBufferProducer

// Constructor is exclusive to ComponentStore.
InputSurface::InputSurface(
        const sp<ComponentStore>& store,
+5 −3
Original line number Diff line number Diff line
@@ -68,7 +68,9 @@ struct Component : public IComponent,
    c2_status_t status() const;

    typedef ::android::hardware::graphics::bufferqueue::V1_0::
            IGraphicBufferProducer HGraphicBufferProducer;
            IGraphicBufferProducer HGraphicBufferProducer1;
    typedef ::android::hardware::graphics::bufferqueue::V2_0::
            IGraphicBufferProducer HGraphicBufferProducer2;

    // Methods from IComponent follow.
    virtual Return<Status> queue(const WorkBundle& workBundle) override;
@@ -76,12 +78,12 @@ struct Component : public IComponent,
    virtual Return<Status> drain(bool withEos) override;
    virtual Return<Status> setOutputSurface(
            uint64_t blockPoolId,
            const sp<HGraphicBufferProducer>& surface) override;
            const sp<HGraphicBufferProducer2>& surface) override;
    virtual Return<void> connectToInputSurface(
            const sp<IInputSurface>& inputSurface,
            connectToInputSurface_cb _hidl_cb) override;
    virtual Return<void> connectToOmxInputSurface(
            const sp<HGraphicBufferProducer>& producer,
            const sp<HGraphicBufferProducer1>& producer,
            const sp<::android::hardware::media::omx::V1_0::
            IGraphicBufferSource>& source,
            connectToOmxInputSurface_cb _hidl_cb) override;
Loading