28 const char *debugName)
30 QUniqueFileDescriptorHandle memfd{
31 ::memfd_create(debugName, MFD_ALLOW_SEALING),
35 if (::ftruncate(memfd.get(), bufferSize) != 0)
37 if (::write(memfd.get(), data.constData(), data.size()) != data.size())
39 if (::fcntl(memfd.get(), F_ADD_SEALS, F_SEAL_SHRINK) != 0)
46 QUniqueFileDescriptorHandle device{
47 ::open(
"/dev/udmabuf", O_RDWR),
52 udmabuf_create create{
53 .memfd = uint32_t(memFd.get()),
54 .flags = UDMABUF_FLAGS_CLOEXEC,
59 QUniqueFileDescriptorHandle dmabufFd{
60 QtMultimediaPrivate::qt_safe_ioctl(device.get(), UDMABUF_CREATE, &create),