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

Commit bb08e4d9 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add asInputSink() to Component"

parents 8702e425 9f4c0a33
Loading
Loading
Loading
Loading
+12 −12
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@
#include <codec2/hidl/1.0/ComponentStore.h>
#include <codec2/hidl/1.0/InputBufferManager.h>

#include <android/hardware/media/c2/1.0/IInputSink.h>
#include <hidl/HidlBinderSupport.h>
#include <utils/Timers.h>

@@ -298,19 +297,12 @@ Return<Status> Component::setOutputSurface(
Return<void> Component::connectToInputSurface(
        const sp<IInputSurface>& inputSurface,
        connectToInputSurface_cb _hidl_cb) {
    sp<Sink> sink;
    {
        std::lock_guard<std::mutex> lock(mSinkMutex);
        if (!mSink) {
            mSink = new Sink(shared_from_this());
        }
        sink = mSink;
    }
    Status status;
    sp<IInputSurfaceConnection> connection;
    auto transStatus = inputSurface->connect(sink,
            [&status, &connection](Status s,
                                   const sp<IInputSurfaceConnection>& c) {
    auto transStatus = inputSurface->connect(
            asInputSink(),
            [&status, &connection](
                    Status s, const sp<IInputSurfaceConnection>& c) {
                status = s;
                connection = c;
            }
@@ -454,6 +446,14 @@ Return<sp<IComponentInterface>> Component::getInterface() {
    return sp<IComponentInterface>(mInterface);
}

Return<sp<IInputSink>> Component::asInputSink() {
    std::lock_guard<std::mutex> lock(mSinkMutex);
    if (!mSink) {
        mSink = new Sink(shared_from_this());
    }
    return {mSink};
}

std::shared_ptr<C2Component> Component::findLocalComponent(
        const sp<IInputSink>& sink) {
    return Component::Sink::findLocalComponent(sink);
+2 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@
#include <android/hardware/media/c2/1.0/IComponentInterface.h>
#include <android/hardware/media/c2/1.0/IComponentListener.h>
#include <android/hardware/media/c2/1.0/IComponentStore.h>
#include <android/hardware/media/c2/1.0/IInputSink.h>
#include <hidl/Status.h>
#include <hwbinder/IBinder.h>

@@ -94,6 +95,7 @@ struct Component : public IComponent,
    virtual Return<Status> reset() override;
    virtual Return<Status> release() override;
    virtual Return<sp<IComponentInterface>> getInterface() override;
    virtual Return<sp<IInputSink>> asInputSink() override;

    // Returns a C2Component associated to the given sink if the sink is indeed
    // a local component. Returns nullptr otherwise.