diff --git a/modules/gapi/src/backends/ie/giebackend.cpp b/modules/gapi/src/backends/ie/giebackend.cpp index 929a18f721..d1e9c1eb5b 100644 --- a/modules/gapi/src/backends/ie/giebackend.cpp +++ b/modules/gapi/src/backends/ie/giebackend.cpp @@ -19,6 +19,8 @@ #include #include #include +#include + #include @@ -507,18 +509,27 @@ inline IE::Blob::Ptr extractRemoteBlob(IECallContext& ctx, std::size_t i) { cv::util::any any_blob_params = ctx.inFrame(i).blobParams(); auto ie_core = cv::gimpl::ie::wrap::getCore(); - using ParamType = std::pair; + using ParamType = std::pair; + using NV12ParamType = std::pair; - ParamType* blob_params = cv::util::any_cast(&any_blob_params); + NV12ParamType* blob_params = cv::util::any_cast(&any_blob_params); if (blob_params == nullptr) { - GAPI_Assert(false && "Incorrect type of blobParams: " - "expected std::pair"); + GAPI_Assert(false && "Incorrect type of blobParams:" + "expected std::pair," + "with ParamType std::pair>"); } - return ctx.uu.rctx->CreateBlob(blob_params->first, - blob_params->second); + //The parameters are TensorDesc and ParamMap for both y and uv blobs + auto y_blob = ctx.uu.rctx->CreateBlob(blob_params->first.first, blob_params->first.second); + auto uv_blob = ctx.uu.rctx->CreateBlob(blob_params->second.first, blob_params->second.second); + +#if INF_ENGINE_RELEASE >= 2021010000 + return IE::make_shared_blob(y_blob, uv_blob); +#else + return IE::make_shared_blob(y_blob, uv_blob); +#endif + } inline IE::Blob::Ptr extractBlob(IECallContext& ctx,