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

Commit a39882b5 authored by Wonsik Kim's avatar Wonsik Kim
Browse files

CCodecBuffers: add support for reallocating graphic buffers

Bug: 135261503
Test: modified AdaptivePlaybackTest
Change-Id: I64de657175c671672ab67d8941e35f0ba35c8dbd
parent a69eacc4
Loading
Loading
Loading
Loading
+19 −2
Original line number Diff line number Diff line
@@ -439,6 +439,10 @@ size_t BuffersArrayImpl::numClientBuffers() const {
            });
}

size_t BuffersArrayImpl::arraySize() const {
    return mBuffers.size();
}

// InputBuffersArray

void InputBuffersArray::initialize(
@@ -883,11 +887,24 @@ void OutputBuffersArray::realloc(const std::shared_ptr<C2Buffer> &c2buffer) {
            mAlloc = [format = mFormat, size] {
                return new LocalLinearBuffer(format, new ABuffer(size));
            };
            ALOGD("[%s] reallocating with linear buffer of size %u", mName, size);
            break;
        }

        // TODO: add support
        case C2BufferData::GRAPHIC:         [[fallthrough]];
        case C2BufferData::GRAPHIC: {
            // This is only called for RawGraphicOutputBuffers.
            mAlloc = [format = mFormat,
                      lbp = LocalBufferPool::Create(kMaxLinearBufferSize * mImpl.arraySize())] {
                return ConstGraphicBlockBuffer::AllocateEmpty(
                        format,
                        [lbp](size_t capacity) {
                            return lbp->newBuffer(capacity);
                        });
            };
            ALOGD("[%s] reallocating with graphic buffer: format = %s",
                  mName, mFormat->debugString().c_str());
            break;
        }

        case C2BufferData::INVALID:         [[fallthrough]];
        case C2BufferData::LINEAR_CHUNKS:   [[fallthrough]];
+5 −0
Original line number Diff line number Diff line
@@ -478,6 +478,11 @@ public:
     */
    size_t numClientBuffers() const;

    /**
     * Return the size of the array.
     */
    size_t arraySize() const;

private:
    std::string mImplName; ///< name for debugging
    const char *mName; ///< C-string version of name