1 /* 2 * Copyright (C) 2005-2020 Team Kodi 3 * This file is part of Kodi - https://kodi.tv 4 * 5 * SPDX-License-Identifier: GPL-2.0-or-later 6 * See LICENSES/README.md for more information. 7 */ 8 9 #pragma once 10 11 #include "IBufferObject.h" 12 13 #include <memory> 14 #include <stdint.h> 15 16 /** 17 * @brief base class for using the IBufferObject interface. Derived classes 18 * should be based on this class. 19 * 20 */ 21 class CBufferObject : public IBufferObject 22 { 23 public: 24 /** 25 * @brief Get a BufferObject from CBufferObjectFactory 26 * 27 * @return std::unique_ptr<CBufferObject> 28 */ 29 static std::unique_ptr<CBufferObject> GetBufferObject(bool needsCreateBySize); 30 CreateBufferObject(uint64_t size)31 bool CreateBufferObject(uint64_t size) override { return false; } 32 33 int GetFd() override; 34 uint32_t GetStride() override; 35 uint64_t GetModifier() override; 36 37 void SyncStart() override; 38 void SyncEnd() override; 39 40 protected: 41 int m_fd{-1}; 42 uint32_t m_stride{0}; 43 }; 44