Merge "codec2: change of asC2Buffer behavior" into rvc-dev

gugelfrei
TreeHugger Robot 4 years ago committed by Android (Google) Code Review
commit 5226677901

@ -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) {
@ -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) {

@ -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 {
@ -187,7 +191,11 @@ ConstLinearBlockBuffer::ConstLinearBlockBuffer(
}
std::shared_ptr<C2Buffer> ConstLinearBlockBuffer::asC2Buffer() {
return std::move(mBufferRef);
return mBufferRef;
}
void ConstLinearBlockBuffer::clearC2BufferRefs() {
mBufferRef.reset();
}
// GraphicView2MediaImageConverter
@ -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 {

@ -59,6 +59,8 @@ public:
sp<ABuffer> getImageData() const { return mImageData; }
virtual void clearC2BufferRefs() {}
protected:
/**
* canCopy() implementation for linear buffers.
@ -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;
@ -161,6 +164,7 @@ public:
virtual ~ConstLinearBlockBuffer() = default;
std::shared_ptr<C2Buffer> asC2Buffer() override;
void clearC2BufferRefs() override;
private:
ConstLinearBlockBuffer(
@ -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…
Cancel
Save