Loading media/codec2/sfplugin/CCodecBuffers.cpp +2 −0 Original line number Original line Diff line number Diff line Loading @@ -261,6 +261,7 @@ bool FlexBuffersImpl::releaseSlot( std::shared_ptr<C2Buffer> result = mBuffers[index].compBuffer.lock(); std::shared_ptr<C2Buffer> result = mBuffers[index].compBuffer.lock(); if (!result) { if (!result) { result = clientBuffer->asC2Buffer(); result = clientBuffer->asC2Buffer(); clientBuffer->clearC2BufferRefs(); mBuffers[index].compBuffer = result; mBuffers[index].compBuffer = result; } } if (c2buffer) { if (c2buffer) { Loading Loading @@ -379,6 +380,7 @@ bool BuffersArrayImpl::returnBuffer( std::shared_ptr<C2Buffer> result = mBuffers[index].compBuffer.lock(); std::shared_ptr<C2Buffer> result = mBuffers[index].compBuffer.lock(); if (!result) { if (!result) { result = clientBuffer->asC2Buffer(); result = clientBuffer->asC2Buffer(); clientBuffer->clearC2BufferRefs(); mBuffers[index].compBuffer = result; mBuffers[index].compBuffer = result; } } if (c2buffer) { if (c2buffer) { Loading media/codec2/sfplugin/Codec2Buffer.cpp +15 −3 Original line number Original line Diff line number Diff line Loading @@ -111,7 +111,11 @@ DummyContainerBuffer::DummyContainerBuffer( } } std::shared_ptr<C2Buffer> DummyContainerBuffer::asC2Buffer() { std::shared_ptr<C2Buffer> DummyContainerBuffer::asC2Buffer() { return std::move(mBufferRef); return mBufferRef; } void DummyContainerBuffer::clearC2BufferRefs() { mBufferRef.reset(); } } bool DummyContainerBuffer::canCopy(const std::shared_ptr<C2Buffer> &) const { bool DummyContainerBuffer::canCopy(const std::shared_ptr<C2Buffer> &) const { Loading Loading @@ -187,7 +191,11 @@ ConstLinearBlockBuffer::ConstLinearBlockBuffer( } } std::shared_ptr<C2Buffer> ConstLinearBlockBuffer::asC2Buffer() { std::shared_ptr<C2Buffer> ConstLinearBlockBuffer::asC2Buffer() { return std::move(mBufferRef); return mBufferRef; } void ConstLinearBlockBuffer::clearC2BufferRefs() { mBufferRef.reset(); } } // GraphicView2MediaImageConverter // GraphicView2MediaImageConverter Loading Loading @@ -689,8 +697,12 @@ ConstGraphicBlockBuffer::ConstGraphicBlockBuffer( } } std::shared_ptr<C2Buffer> ConstGraphicBlockBuffer::asC2Buffer() { std::shared_ptr<C2Buffer> ConstGraphicBlockBuffer::asC2Buffer() { return mBufferRef; } void ConstGraphicBlockBuffer::clearC2BufferRefs() { mView.reset(); mView.reset(); return std::move(mBufferRef); mBufferRef.reset(); } } bool ConstGraphicBlockBuffer::canCopy(const std::shared_ptr<C2Buffer> &buffer) const { bool ConstGraphicBlockBuffer::canCopy(const std::shared_ptr<C2Buffer> &buffer) const { Loading media/codec2/sfplugin/Codec2Buffer.h +5 −0 Original line number Original line Diff line number Diff line Loading @@ -59,6 +59,8 @@ public: sp<ABuffer> getImageData() const { return mImageData; } sp<ABuffer> getImageData() const { return mImageData; } virtual void clearC2BufferRefs() {} protected: protected: /** /** * canCopy() implementation for linear buffers. * canCopy() implementation for linear buffers. Loading Loading @@ -102,6 +104,7 @@ public: const std::shared_ptr<C2Buffer> &buffer = nullptr); const std::shared_ptr<C2Buffer> &buffer = nullptr); std::shared_ptr<C2Buffer> asC2Buffer() override; std::shared_ptr<C2Buffer> asC2Buffer() override; void clearC2BufferRefs() override; bool canCopy(const std::shared_ptr<C2Buffer> &buffer) const override; bool canCopy(const std::shared_ptr<C2Buffer> &buffer) const override; bool copy(const std::shared_ptr<C2Buffer> &buffer) override; bool copy(const std::shared_ptr<C2Buffer> &buffer) override; Loading Loading @@ -161,6 +164,7 @@ public: virtual ~ConstLinearBlockBuffer() = default; virtual ~ConstLinearBlockBuffer() = default; std::shared_ptr<C2Buffer> asC2Buffer() override; std::shared_ptr<C2Buffer> asC2Buffer() override; void clearC2BufferRefs() override; private: private: ConstLinearBlockBuffer( ConstLinearBlockBuffer( Loading Loading @@ -280,6 +284,7 @@ public: virtual ~ConstGraphicBlockBuffer() = default; virtual ~ConstGraphicBlockBuffer() = default; std::shared_ptr<C2Buffer> asC2Buffer() override; std::shared_ptr<C2Buffer> asC2Buffer() override; void clearC2BufferRefs() override; bool canCopy(const std::shared_ptr<C2Buffer> &buffer) const override; bool canCopy(const std::shared_ptr<C2Buffer> &buffer) const override; bool copy(const std::shared_ptr<C2Buffer> &buffer) override; bool copy(const std::shared_ptr<C2Buffer> &buffer) override; Loading Loading
media/codec2/sfplugin/CCodecBuffers.cpp +2 −0 Original line number Original line Diff line number Diff line Loading @@ -261,6 +261,7 @@ bool FlexBuffersImpl::releaseSlot( std::shared_ptr<C2Buffer> result = mBuffers[index].compBuffer.lock(); std::shared_ptr<C2Buffer> result = mBuffers[index].compBuffer.lock(); if (!result) { if (!result) { result = clientBuffer->asC2Buffer(); result = clientBuffer->asC2Buffer(); clientBuffer->clearC2BufferRefs(); mBuffers[index].compBuffer = result; mBuffers[index].compBuffer = result; } } if (c2buffer) { if (c2buffer) { Loading Loading @@ -379,6 +380,7 @@ bool BuffersArrayImpl::returnBuffer( std::shared_ptr<C2Buffer> result = mBuffers[index].compBuffer.lock(); std::shared_ptr<C2Buffer> result = mBuffers[index].compBuffer.lock(); if (!result) { if (!result) { result = clientBuffer->asC2Buffer(); result = clientBuffer->asC2Buffer(); clientBuffer->clearC2BufferRefs(); mBuffers[index].compBuffer = result; mBuffers[index].compBuffer = result; } } if (c2buffer) { if (c2buffer) { Loading
media/codec2/sfplugin/Codec2Buffer.cpp +15 −3 Original line number Original line Diff line number Diff line Loading @@ -111,7 +111,11 @@ DummyContainerBuffer::DummyContainerBuffer( } } std::shared_ptr<C2Buffer> DummyContainerBuffer::asC2Buffer() { std::shared_ptr<C2Buffer> DummyContainerBuffer::asC2Buffer() { return std::move(mBufferRef); return mBufferRef; } void DummyContainerBuffer::clearC2BufferRefs() { mBufferRef.reset(); } } bool DummyContainerBuffer::canCopy(const std::shared_ptr<C2Buffer> &) const { bool DummyContainerBuffer::canCopy(const std::shared_ptr<C2Buffer> &) const { Loading Loading @@ -187,7 +191,11 @@ ConstLinearBlockBuffer::ConstLinearBlockBuffer( } } std::shared_ptr<C2Buffer> ConstLinearBlockBuffer::asC2Buffer() { std::shared_ptr<C2Buffer> ConstLinearBlockBuffer::asC2Buffer() { return std::move(mBufferRef); return mBufferRef; } void ConstLinearBlockBuffer::clearC2BufferRefs() { mBufferRef.reset(); } } // GraphicView2MediaImageConverter // GraphicView2MediaImageConverter Loading Loading @@ -689,8 +697,12 @@ ConstGraphicBlockBuffer::ConstGraphicBlockBuffer( } } std::shared_ptr<C2Buffer> ConstGraphicBlockBuffer::asC2Buffer() { std::shared_ptr<C2Buffer> ConstGraphicBlockBuffer::asC2Buffer() { return mBufferRef; } void ConstGraphicBlockBuffer::clearC2BufferRefs() { mView.reset(); mView.reset(); return std::move(mBufferRef); mBufferRef.reset(); } } bool ConstGraphicBlockBuffer::canCopy(const std::shared_ptr<C2Buffer> &buffer) const { bool ConstGraphicBlockBuffer::canCopy(const std::shared_ptr<C2Buffer> &buffer) const { Loading
media/codec2/sfplugin/Codec2Buffer.h +5 −0 Original line number Original line Diff line number Diff line Loading @@ -59,6 +59,8 @@ public: sp<ABuffer> getImageData() const { return mImageData; } sp<ABuffer> getImageData() const { return mImageData; } virtual void clearC2BufferRefs() {} protected: protected: /** /** * canCopy() implementation for linear buffers. * canCopy() implementation for linear buffers. Loading Loading @@ -102,6 +104,7 @@ public: const std::shared_ptr<C2Buffer> &buffer = nullptr); const std::shared_ptr<C2Buffer> &buffer = nullptr); std::shared_ptr<C2Buffer> asC2Buffer() override; std::shared_ptr<C2Buffer> asC2Buffer() override; void clearC2BufferRefs() override; bool canCopy(const std::shared_ptr<C2Buffer> &buffer) const override; bool canCopy(const std::shared_ptr<C2Buffer> &buffer) const override; bool copy(const std::shared_ptr<C2Buffer> &buffer) override; bool copy(const std::shared_ptr<C2Buffer> &buffer) override; Loading Loading @@ -161,6 +164,7 @@ public: virtual ~ConstLinearBlockBuffer() = default; virtual ~ConstLinearBlockBuffer() = default; std::shared_ptr<C2Buffer> asC2Buffer() override; std::shared_ptr<C2Buffer> asC2Buffer() override; void clearC2BufferRefs() override; private: private: ConstLinearBlockBuffer( ConstLinearBlockBuffer( Loading Loading @@ -280,6 +284,7 @@ public: virtual ~ConstGraphicBlockBuffer() = default; virtual ~ConstGraphicBlockBuffer() = default; std::shared_ptr<C2Buffer> asC2Buffer() override; std::shared_ptr<C2Buffer> asC2Buffer() override; void clearC2BufferRefs() override; bool canCopy(const std::shared_ptr<C2Buffer> &buffer) const override; bool canCopy(const std::shared_ptr<C2Buffer> &buffer) const override; bool copy(const std::shared_ptr<C2Buffer> &buffer) override; bool copy(const std::shared_ptr<C2Buffer> &buffer) override; Loading