// Copyright (C) 2018-2022 Intel Corporation // SPDX-License-Identifier: Apache-2.0 // #include // clang-format off #include "bmp.h" #include "MnistUbyte.h" #include "yuv_nv12.h" #include "opencv_wrapper.h" #include "format_reader.h" // clang-format on using namespace FormatReader; std::vector Registry::_data; Register MnistUbyte::reg; Register YUV_NV12::reg; #ifdef USE_OPENCV Register OCVReader::reg; #else Register BitMap::reg; #endif Reader* Registry::CreateReader(const char* filename) { for (const auto &maker : _data) { Reader* ol = maker(filename); if (ol != nullptr && ol->size() != 0) return ol; if (ol != nullptr) delete ol; } return nullptr; } void Registry::RegisterReader(CreatorFunction f) { _data.push_back(f); } FORMAT_READER_API(Reader*) CreateFormatReader(const char* filename) { return Registry::CreateReader(filename); }