#include #include #include "hw/frame_buffer.h" #include "hw/hw_factory.h" #include "hw/rk3588_defaults.h" namespace rk3588 { namespace { TEST(HwFactoryTest, DefaultsReturnsRk3588Impls) { SimpleJson config(SimpleJson::Object{}); auto infer = HwFactory::CreateInferBackend(config); auto image = HwFactory::CreateImageProcessor(config); auto decoder = HwFactory::CreateDecoder(config); auto encoder = HwFactory::CreateEncoder(config); EXPECT_NE(infer, nullptr); EXPECT_NE(image, nullptr); EXPECT_NE(decoder, nullptr); EXPECT_NE(encoder, nullptr); EXPECT_NE(std::dynamic_pointer_cast(infer), nullptr); EXPECT_NE(std::dynamic_pointer_cast(image), nullptr); EXPECT_NE(std::dynamic_pointer_cast(decoder), nullptr); EXPECT_NE(std::dynamic_pointer_cast(encoder), nullptr); } TEST(FrameBufferTest, MetadataPreserved) { FrameBuffer::Plane plane0; plane0.data = reinterpret_cast(0x1000); plane0.stride = 1280; plane0.size = 921600; plane0.offset = 0; FrameBuffer::Plane plane1; plane1.data = reinterpret_cast(0x2000); plane1.stride = 640; plane1.size = 460800; plane1.offset = 921600; std::vector planes{plane0, plane1}; FrameBuffer buffer(42, planes); EXPECT_EQ(buffer.DmaFd(), 42); ASSERT_EQ(buffer.Planes().size(), 2u); EXPECT_EQ(buffer.Planes()[0].stride, 1280); EXPECT_EQ(buffer.Planes()[0].size, 921600); EXPECT_EQ(buffer.Planes()[0].offset, 0); EXPECT_EQ(buffer.Planes()[1].stride, 640); EXPECT_EQ(buffer.Planes()[1].size, 460800); EXPECT_EQ(buffer.Planes()[1].offset, 921600); } } // namespace } // namespace rk3588