| // 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 |