|
|
|
@ -46,6 +46,10 @@ class LinearBuffer : public C2Buffer {
|
|
|
|
|
explicit LinearBuffer(const std::shared_ptr<C2LinearBlock>& block)
|
|
|
|
|
: C2Buffer(
|
|
|
|
|
{block->share(block->offset(), block->size(), ::C2Fence())}) {}
|
|
|
|
|
|
|
|
|
|
explicit LinearBuffer(const std::shared_ptr<C2LinearBlock>& block, size_t size)
|
|
|
|
|
: C2Buffer(
|
|
|
|
|
{block->share(block->offset(), size, ::C2Fence())}) {}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static ComponentTestEnvironment* gEnv = nullptr;
|
|
|
|
@ -371,11 +375,12 @@ void decodeNFrames(const std::shared_ptr<android::Codec2Client::Component>& comp
|
|
|
|
|
ASSERT_EQ(eleStream.gcount(), size);
|
|
|
|
|
|
|
|
|
|
work->input.buffers.clear();
|
|
|
|
|
auto alignedSize = ALIGN(size, PAGE_SIZE);
|
|
|
|
|
if (size) {
|
|
|
|
|
std::shared_ptr<C2LinearBlock> block;
|
|
|
|
|
ASSERT_EQ(C2_OK,
|
|
|
|
|
linearPool->fetchLinearBlock(
|
|
|
|
|
size, {C2MemoryUsage::CPU_READ, C2MemoryUsage::CPU_WRITE},
|
|
|
|
|
alignedSize, {C2MemoryUsage::CPU_READ, C2MemoryUsage::CPU_WRITE},
|
|
|
|
|
&block));
|
|
|
|
|
ASSERT_TRUE(block);
|
|
|
|
|
|
|
|
|
@ -385,13 +390,13 @@ void decodeNFrames(const std::shared_ptr<android::Codec2Client::Component>& comp
|
|
|
|
|
fprintf(stderr, "C2LinearBlock::map() failed : %d", view.error());
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
ASSERT_EQ((size_t)size, view.capacity());
|
|
|
|
|
ASSERT_EQ((size_t)alignedSize, view.capacity());
|
|
|
|
|
ASSERT_EQ(0u, view.offset());
|
|
|
|
|
ASSERT_EQ((size_t)size, view.size());
|
|
|
|
|
ASSERT_EQ((size_t)alignedSize, view.size());
|
|
|
|
|
|
|
|
|
|
memcpy(view.base(), data, size);
|
|
|
|
|
|
|
|
|
|
work->input.buffers.emplace_back(new LinearBuffer(block));
|
|
|
|
|
work->input.buffers.emplace_back(new LinearBuffer(block, size));
|
|
|
|
|
free(data);
|
|
|
|
|
}
|
|
|
|
|
work->worklets.clear();
|
|
|
|
|