// Copyright 2021 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. //#define LOG_NDEBUG 0 #define LOG_TAG "DmabufHelpers" #include <v4l2_codec2/plugin_store/DmabufHelpers.h> #include <sys/stat.h> #include <sys/types.h> #include <unistd.h> #include <log/log.h> namespace android { std::optional<unique_id_t> getDmabufId(int dmabufFd) { struct stat sb {}; if (fstat(dmabufFd, &sb) != 0) { return std::nullopt; } if (sb.st_size == 0) { ALOGE("Dma-buf size is 0. Please check your kernel is v5.3+"); return std::nullopt; } return static_cast<unique_id_t>(sb.st_ino); } } // namespace android