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

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

Merge "stagefright: add rangeOffset to OMXBuffer"

parents f95fa333 49b2b4d3
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -58,10 +58,6 @@ public:
    // |codecBuffer|'s size (or 0 if |codecBuffer| is NULL).
    OMXBuffer(const sp<MediaCodecBuffer> &codecBuffer);

    // Constructs a buffer of type kBufferTypePreset with a specified
    // mRangeLength.
    explicit OMXBuffer(OMX_U32 rangeLength);

    // Constructs a buffer of type kBufferTypeSharedMem.
    OMXBuffer(const sp<IMemory> &mem);

@@ -101,6 +97,7 @@ private:
    // kBufferTypePreset
    // If the port is operating in byte buffer mode, mRangeLength is the valid
    // range length. Otherwise the range info should also be ignored.
    OMX_U32 mRangeOffset;
    OMX_U32 mRangeLength;

    // kBufferTypeSharedMem
+13 −6
Original line number Diff line number Diff line
@@ -35,14 +35,10 @@ OMXBuffer::OMXBuffer()

OMXBuffer::OMXBuffer(const sp<MediaCodecBuffer>& codecBuffer)
    : mBufferType(kBufferTypePreset),
      mRangeOffset(codecBuffer != NULL ? codecBuffer->offset() : 0),
      mRangeLength(codecBuffer != NULL ? codecBuffer->size() : 0) {
}

OMXBuffer::OMXBuffer(OMX_U32 rangeLength)
    : mBufferType(kBufferTypePreset),
      mRangeLength(rangeLength) {
}

OMXBuffer::OMXBuffer(const sp<IMemory> &mem)
    : mBufferType(kBufferTypeSharedMem),
      mMem(mem) {
@@ -67,6 +63,10 @@ status_t OMXBuffer::writeToParcel(Parcel *parcel) const {
    switch(mBufferType) {
        case kBufferTypePreset:
        {
            status_t err = parcel->writeUint32(mRangeOffset);
            if (err != OK) {
                return err;
            }
            return parcel->writeUint32(mRangeLength);
        }

@@ -97,7 +97,14 @@ status_t OMXBuffer::readFromParcel(const Parcel *parcel) {
    switch(bufferType) {
        case kBufferTypePreset:
        {
            mRangeLength = parcel->readUint32();
            status_t err = parcel->readUint32(&mRangeOffset);
            if (err != OK) {
                return err;
            }
            err = parcel->readUint32(&mRangeLength);
            if (err != OK) {
                return err;
            }
            break;
        }

+2 −1
Original line number Diff line number Diff line
@@ -5543,6 +5543,7 @@ void ACodec::BaseState::onInputBufferFilled(const sp<AMessage> &msg) {
                }

                size_t size = buffer->size();
                size_t offset = buffer->offset();
                if (buffer->base() != info->mCodecData->base()) {
                    ALOGV("[%s] Needs to copy input data for buffer %u. (%p != %p)",
                         mCodec->mComponentName.c_str(),
@@ -5560,7 +5561,7 @@ void ACodec::BaseState::onInputBufferFilled(const sp<AMessage> &msg) {
                    }
                    size = info->mCodecData->size();
                } else {
                    info->mCodecData->setRange(0, size);
                    info->mCodecData->setRange(offset, size);
                }

                if (flags & OMX_BUFFERFLAG_CODECCONFIG) {
+2 −1
Original line number Diff line number Diff line
@@ -1559,7 +1559,8 @@ status_t OMXNodeInstance::emptyBuffer(
    switch (omxBuffer.mBufferType) {
    case OMXBuffer::kBufferTypePreset:
        return emptyBuffer_l(
                buffer, 0, omxBuffer.mRangeLength, flags, timestamp, fenceFd);
                buffer, omxBuffer.mRangeOffset, omxBuffer.mRangeLength,
                flags, timestamp, fenceFd);

    case OMXBuffer::kBufferTypeANWBuffer:
        return emptyGraphicBuffer_l(