mirror of
https://github.com/opencv/opencv.git
synced 2024-12-18 11:28:02 +08:00
Merge pull request #21424 from dbudniko:dbudniko/media_frame_adapter_enabling
Adapt remote inference to operate with NV12 blobs * Media Frame Adapter support * address comments
This commit is contained in:
parent
aebb65e983
commit
19bbe6c67d
@ -19,6 +19,8 @@
|
|||||||
#include <functional>
|
#include <functional>
|
||||||
#include <unordered_set>
|
#include <unordered_set>
|
||||||
#include <atomic>
|
#include <atomic>
|
||||||
|
#include <tuple>
|
||||||
|
|
||||||
|
|
||||||
#include <ade/util/algorithm.hpp>
|
#include <ade/util/algorithm.hpp>
|
||||||
|
|
||||||
@ -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();
|
cv::util::any any_blob_params = ctx.inFrame(i).blobParams();
|
||||||
auto ie_core = cv::gimpl::ie::wrap::getCore();
|
auto ie_core = cv::gimpl::ie::wrap::getCore();
|
||||||
|
|
||||||
using ParamType = std::pair<InferenceEngine::TensorDesc,
|
using ParamType = std::pair<InferenceEngine::TensorDesc, InferenceEngine::ParamMap>;
|
||||||
InferenceEngine::ParamMap>;
|
using NV12ParamType = std::pair<ParamType, ParamType>;
|
||||||
|
|
||||||
ParamType* blob_params = cv::util::any_cast<ParamType>(&any_blob_params);
|
NV12ParamType* blob_params = cv::util::any_cast<NV12ParamType>(&any_blob_params);
|
||||||
if (blob_params == nullptr) {
|
if (blob_params == nullptr) {
|
||||||
GAPI_Assert(false && "Incorrect type of blobParams:"
|
GAPI_Assert(false && "Incorrect type of blobParams:"
|
||||||
"expected std::pair<InferenceEngine::TensorDesc,"
|
"expected std::pair<ParamType, ParamType>,"
|
||||||
"InferenceEngine::ParamMap>");
|
"with ParamType std::pair<InferenceEngine::TensorDesc,"
|
||||||
|
"InferenceEngine::ParamMap >>");
|
||||||
}
|
}
|
||||||
|
|
||||||
return ctx.uu.rctx->CreateBlob(blob_params->first,
|
//The parameters are TensorDesc and ParamMap for both y and uv blobs
|
||||||
blob_params->second);
|
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<IE::NV12Blob>(y_blob, uv_blob);
|
||||||
|
#else
|
||||||
|
return IE::make_shared_blob<InferenceEngine::NV12Blob>(y_blob, uv_blob);
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inline IE::Blob::Ptr extractBlob(IECallContext& ctx,
|
inline IE::Blob::Ptr extractBlob(IECallContext& ctx,
|
||||||
|
Loading…
Reference in New Issue
Block a user