// // Copyright © 2020 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include #include namespace od { /** * @brief Frame source reader interface * * @tparam FrameDataT frame container data type */ template class IFrameReader { public: /** * @brief Reads the next frame from the source * * @return pointer to the frame container */ virtual std::shared_ptr ReadFrame() = 0; /** * @brief Checks if the frame source has more frames to read. * * @param[in] frame the pointer to the last frame captured with the ReadFrame method could be used in * implementation specific logic to check frames source state. * @return True if frame source was exhausted, False otherwise */ virtual bool IsExhausted(const std::shared_ptr & frame) const = 0; /** * @brief Default destructor */ virtual ~IFrameReader() = default; }; }// namespace od