return true;
}
+bool DSBufferQueueTBMImpl::canAcquireBuffer(bool wait)
+{
+ if (!tbm_surface_queue_can_acquire(__tqueue, wait)) {
+ DSLOG_ERR("BuffeQueueTBM", "tbm_surface_queue_can_acquire fails.");
+ return false;
+ }
+
+ return true;
+}
+
}
virtual bool enqueueBuffer(std::shared_ptr<IDSBuffer> ) = 0;
virtual std::shared_ptr<IDSBuffer> acquireBuffer() = 0;
virtual bool releaseBuffer(std::shared_ptr<IDSBuffer> ) = 0;
+
+ virtual bool canAcquireBuffer(bool wait) = 0;
};
}
EXPECT_TRUE(bufferQueue->releaseBuffer(buffer4));
EXPECT_TRUE(bufferQueue->releaseBuffer(buffer5));
EXPECT_TRUE(bufferQueue->releaseBuffer(buffer6));
-}
\ No newline at end of file
+}
+
+TEST_F(DSBufferTBMImplTest, CanAcquireBuffer)
+{
+ auto bufferQueue = std::make_unique<DSBufferQueueTBMImpl>(3, 100, 100, IDSBuffer::FORMAT_ARGB8888);
+ EXPECT_TRUE(bufferQueue.get() != nullptr);
+
+ auto buffer1 = bufferQueue->dequeueBuffer();
+ EXPECT_TRUE(buffer1 != nullptr);
+ EXPECT_TRUE(bufferQueue->enqueueBuffer(buffer1));
+ EXPECT_TRUE(bufferQueue->canAcquireBuffer(true));
+}