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

Commit da7ff532 authored by Andreas Huber's avatar Andreas Huber
Browse files

Added an additional virtual method IStreamSource::flags().

Change-Id: I89e62d84328e12f08c8f73cbfd53cfb42569de97
parent dc91c885
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -33,6 +33,12 @@ struct IStreamSource : public IInterface {
    virtual void setBuffers(const Vector<sp<IMemory> > &buffers) = 0;

    virtual void onBufferAvailable(size_t index) = 0;

    enum {
        // Video PES packets contain exactly one (aligned) access unit.
        kFlagAlignedVideoData = 1,
    };
    virtual uint32_t flags() const { return 0; }
};

struct IStreamListener : public IInterface {
+16 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ enum {
    SET_LISTENER = IBinder::FIRST_CALL_TRANSACTION,
    SET_BUFFERS,
    ON_BUFFER_AVAILABLE,
    FLAGS,

    // IStreamListener
    QUEUE_BUFFER,
@@ -72,6 +73,14 @@ struct BpStreamSource : public BpInterface<IStreamSource> {
        remote()->transact(
                ON_BUFFER_AVAILABLE, data, &reply, IBinder::FLAG_ONEWAY);
    }

    virtual uint32_t flags() const {
        Parcel data, reply;
        data.writeInterfaceToken(IStreamSource::getInterfaceDescriptor());
        remote()->transact(FLAGS, data, &reply);

        return reply.readInt32();
    }
};

IMPLEMENT_META_INTERFACE(StreamSource, "android.hardware.IStreamSource");
@@ -109,6 +118,13 @@ status_t BnStreamSource::onTransact(
            break;
        }

        case FLAGS:
        {
            CHECK_INTERFACE(IStreamSource, data, reply);
            reply->writeInt32(this->flags());
            break;
        }

        default:
            return BBinder::onTransact(code, data, reply, flags);
    }