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