diff --git a/src/plugins/intel_npu/src/plugin/src/metadata.cpp b/src/plugins/intel_npu/src/plugin/src/metadata.cpp index b33993096ad62d..ce60641f415b0d 100644 --- a/src/plugins/intel_npu/src/plugin/src/metadata.cpp +++ b/src/plugins/intel_npu/src/plugin/src/metadata.cpp @@ -11,6 +11,7 @@ #include "intel_npu/config/config.hpp" #include "intel_npu/utils/logger/logger.hpp" #include "openvino/core/version.hpp" +#include "openvino/runtime/shared_buffer.hpp" namespace { @@ -20,10 +21,10 @@ std::streampos getFileSize(std::istream& stream) { OPENVINO_THROW("Stream is in bad status! Please check the passed stream status!"); } - if (stream.rdbuf()->in_avail() != 0) { - // ov::OwningSharedStreamBuffer scenario + if (dynamic_cast(stream.rdbuf()) != nullptr) { return stream.rdbuf()->in_avail() + stream.tellg(); } + const std::streampos streamStart = stream.tellg(); stream.seekg(0, std::ios_base::end); const std::streampos streamEnd = stream.tellg(); diff --git a/src/plugins/intel_npu/src/plugin/src/plugin.cpp b/src/plugins/intel_npu/src/plugin/src/plugin.cpp index 313dd1aeea6534..dfef6d475024de 100644 --- a/src/plugins/intel_npu/src/plugin/src/plugin.cpp +++ b/src/plugins/intel_npu/src/plugin/src/plugin.cpp @@ -749,7 +749,7 @@ std::shared_ptr Plugin::import_model(std::istream& stream, c stream.seekg(stream_start_pos); return ov::npuw::LLMCompiledModel::deserialize(stream, shared_from_this()); } - stream.seekg(stream_start_pos); + stream.seekg(-stream.tellg() + stream_start_pos, std::ios::cur); // Drop NPUW properties if there are any ov::AnyMap npu_plugin_properties;