BlobReader.hpp
Go to the documentation of this file.
1 // Modified for internal use of depthai-core library
2 // Luxonis - December 2020
3 
4 // Copyright (C) 2018-2020 Intel Corporation
5 // SPDX-License-Identifier: Apache-2.0
6 //
7 
8 #pragma once
9 
10 #include <vector>
11 #include <utility>
12 
13 #include "BlobFormat.hpp"
15 
16 namespace dai {
17 
18 class BlobReader {
19 public:
20  BlobReader() = default;
21 
22  void parse(const std::vector<std::uint8_t>& blob);
23 
24  const std::unordered_map<std::string, TensorInfo>& getNetworkInputs() const { return networkInputs; }
25  const std::unordered_map<std::string, TensorInfo>& getNetworkOutputs() const { return networkOutputs; }
26 
27  uint32_t getStageCount() const { return blobHeader.stages_count; }
28 
29  uint32_t getMagicNumber() const { return blobHeader.magic_number; }
30 
31  uint32_t getVersionMajor() const { return blobHeader.blob_ver_major; }
32  uint32_t getVersionMinor() const { return blobHeader.blob_ver_minor; }
33 
34  uint32_t getNumberOfShaves() const { return blobHeader.number_of_shaves; }
35  uint32_t getNumberOfSlices() const { return blobHeader.number_of_cmx_slices; }
36 
37  std::pair<const std::uint8_t*, size_t> getHeader() const { return {pBlob, sizeof(ElfN_Ehdr) + sizeof(mv_blob_header)};}
38 
39 private:
40  const std::uint8_t* pBlob = nullptr;
41 
42  mv_blob_header blobHeader = {};
43 
44  constexpr static std::uint32_t BLOB_MAGIC_NUMBER = 9709;
45 
46  std::unordered_map<std::string, TensorInfo> networkInputs;
47  std::unordered_map<std::string, TensorInfo> networkOutputs;
48 
49 };
50 
51 } // namespace dai
dai::BlobReader::getNumberOfSlices
uint32_t getNumberOfSlices() const
Definition: BlobReader.hpp:35
dai::BlobReader::networkInputs
std::unordered_map< std::string, TensorInfo > networkInputs
Definition: BlobReader.hpp:46
dai::BlobReader::parse
void parse(const std::vector< std::uint8_t > &blob)
Definition: BlobReader.cpp:45
dai::BlobReader::getStageCount
uint32_t getStageCount() const
Definition: BlobReader.hpp:27
dai::BlobReader::getNumberOfShaves
uint32_t getNumberOfShaves() const
Definition: BlobReader.hpp:34
dai::BlobReader::getVersionMajor
uint32_t getVersionMajor() const
Definition: BlobReader.hpp:31
dai::BlobReader::getNetworkOutputs
const std::unordered_map< std::string, TensorInfo > & getNetworkOutputs() const
Definition: BlobReader.hpp:25
dai::BlobReader::networkOutputs
std::unordered_map< std::string, TensorInfo > networkOutputs
Definition: BlobReader.hpp:47
BlobFormat.hpp
dai::BlobReader::getHeader
std::pair< const std::uint8_t *, size_t > getHeader() const
Definition: BlobReader.hpp:37
dai::BlobReader::blobHeader
mv_blob_header blobHeader
Definition: BlobReader.hpp:42
dai::BlobReader::BLOB_MAGIC_NUMBER
constexpr static std::uint32_t BLOB_MAGIC_NUMBER
Definition: BlobReader.hpp:44
dai::BlobReader::getVersionMinor
uint32_t getVersionMinor() const
Definition: BlobReader.hpp:32
dai::BlobReader::BlobReader
BlobReader()=default
dai::BlobReader
Definition: BlobReader.hpp:18
dai::BlobReader::getNetworkInputs
const std::unordered_map< std::string, TensorInfo > & getNetworkInputs() const
Definition: BlobReader.hpp:24
dai::BlobReader::getMagicNumber
uint32_t getMagicNumber() const
Definition: BlobReader.hpp:29
dai
Definition: CameraExposureOffset.hpp:6
TensorInfo.hpp
dai::BlobReader::pBlob
const std::uint8_t * pBlob
Definition: BlobReader.hpp:40


depthai
Author(s): Martin Peterlin
autogenerated on Sat Mar 22 2025 02:58:18