From e659640eeb35a48f16d84825b335580368ec06f1 Mon Sep 17 00:00:00 2001 From: Eric Kunze Date: Thu, 9 Jun 2022 21:27:36 +0000 Subject: Increment version to 0.25 Also insert the TOSA file identifier in the flatbuffer. Reports a warning if the identifier is not present when loading. Signed-off-by: Eric Kunze Change-Id: I1cd4a9cc78e898ba5015e29be1c65cb640dd6a00 --- include/tosa_generated.h | 6 +++--- python/serializer/tosa_serializer.py | 6 +++++- python/tosa/Version.py | 4 ++-- schema/tosa.fbs | 2 +- src/tosa_serialization_handler.cpp | 6 +++++- 5 files changed, 16 insertions(+), 8 deletions(-) diff --git a/include/tosa_generated.h b/include/tosa_generated.h index f3fab51..799a3e7 100644 --- a/include/tosa_generated.h +++ b/include/tosa_generated.h @@ -2021,7 +2021,7 @@ struct Version FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { return GetField(VT__MAJOR, 0); } int32_t _minor() const { - return GetField(VT__MINOR, 24); + return GetField(VT__MINOR, 25); } int32_t _patch() const { return GetField(VT__PATCH, 0); @@ -2047,7 +2047,7 @@ struct VersionBuilder { fbb_.AddElement(Version::VT__MAJOR, _major, 0); } void add__minor(int32_t _minor) { - fbb_.AddElement(Version::VT__MINOR, _minor, 24); + fbb_.AddElement(Version::VT__MINOR, _minor, 25); } void add__patch(int32_t _patch) { fbb_.AddElement(Version::VT__PATCH, _patch, 0); @@ -2070,7 +2070,7 @@ struct VersionBuilder { inline flatbuffers::Offset CreateVersion( flatbuffers::FlatBufferBuilder &_fbb, int32_t _major = 0, - int32_t _minor = 24, + int32_t _minor = 25, int32_t _patch = 0, bool _draft = true) { VersionBuilder builder_(_fbb); diff --git a/python/serializer/tosa_serializer.py b/python/serializer/tosa_serializer.py index cd86777..929aebd 100644 --- a/python/serializer/tosa_serializer.py +++ b/python/serializer/tosa_serializer.py @@ -39,6 +39,10 @@ TOSA_VERSION = [ TOSA_VERSION_PATCH, TOSA_VERSION_DRAFT, ] + +# File identifier needs to be kept in sync with schema/tosa.fbs +TOSA_GRAPH_IDENTIFIER = b"\x54\x4F\x53\x41" + # With the way flatc generates its python types, there is no programatic way # to get string names for the integer types. Manually maintain a string table # here. @@ -703,7 +707,7 @@ class TosaSerializer: TosaGraph.AddBlocks(builder, fbv_bb) graph = TosaGraph.End(builder) - self.builder.Finish(graph) + self.builder.Finish(graph, TOSA_GRAPH_IDENTIFIER) return self.builder.Output() def writeJson(self, tosa_filename): diff --git a/python/tosa/Version.py b/python/tosa/Version.py index 95df414..27dea53 100644 --- a/python/tosa/Version.py +++ b/python/tosa/Version.py @@ -36,7 +36,7 @@ class Version(object): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: return self._tab.Get(flatbuffers.number_types.Int32Flags, o + self._tab.Pos) - return 24 + return 25 # Version def _patch(self): @@ -54,7 +54,7 @@ class Version(object): def VersionStart(builder): builder.StartObject(4) def VersionAdd_major(builder, Major): builder.PrependInt32Slot(0, Major, 0) -def VersionAdd_minor(builder, Minor): builder.PrependInt32Slot(1, Minor, 24) +def VersionAdd_minor(builder, Minor): builder.PrependInt32Slot(1, Minor, 25) def VersionAdd_patch(builder, Patch): builder.PrependInt32Slot(2, Patch, 0) def VersionAdd_draft(builder, Draft): builder.PrependBoolSlot(3, Draft, 1) def VersionEnd(builder): return builder.EndObject() diff --git a/schema/tosa.fbs b/schema/tosa.fbs index f519d1c..b0b219f 100644 --- a/schema/tosa.fbs +++ b/schema/tosa.fbs @@ -282,7 +282,7 @@ table PadQuantInfo { table Version { _major: int32 = 0; - _minor: int32 = 24; + _minor: int32 = 25; _patch: int32 = 0; _draft: bool = true; } diff --git a/src/tosa_serialization_handler.cpp b/src/tosa_serialization_handler.cpp index bd2cbb4..32725a0 100644 --- a/src/tosa_serialization_handler.cpp +++ b/src/tosa_serialization_handler.cpp @@ -436,6 +436,10 @@ tosa_err_t TosaSerializationHandler::Clear() tosa_err_t TosaSerializationHandler::Deserialize(const uint8_t* buf) { + if (!TosaGraphBufferHasIdentifier(buf)) + { + printf("WARNING: TOSA file does not have TOSA file identifier\n"); + } auto fb_tosa_graph = GetTosaGraph(buf); auto fb_tosa_version = fb_tosa_graph->version(); auto fb_tosa_blocks = fb_tosa_graph->blocks(); @@ -846,7 +850,7 @@ tosa_err_t TosaSerializationHandler::Serialize() CreateVersion(_builder, TOSA_VERSION_MAJOR, TOSA_VERSION_MINOR, TOSA_VERSION_PATCH, TOSA_VERSION_DRAFT); auto fb_graph = CreateTosaGraph(_builder, fb_version, fb_blocks); - _builder.Finish(fb_graph); + _builder.Finish(fb_graph, TosaGraphIdentifier()); return TOSA_OK; } -- cgit v1.2.1