Release InterpolateVideoFrame.

This commit is contained in:
sdk-team
2020-12-22 07:07:28 +00:00
parent 196b891ec3
commit e70f8f2d10
8 changed files with 334 additions and 0 deletions

View File

@@ -57,6 +57,8 @@ set(facebody_public_header_model
include/alibabacloud/facebody/model/DetectMaskResult.h
include/alibabacloud/facebody/model/DetectPedestrianRequest.h
include/alibabacloud/facebody/model/DetectPedestrianResult.h
include/alibabacloud/facebody/model/DetectPedestrianIntrusionRequest.h
include/alibabacloud/facebody/model/DetectPedestrianIntrusionResult.h
include/alibabacloud/facebody/model/DetectVideoLivingFaceRequest.h
include/alibabacloud/facebody/model/DetectVideoLivingFaceResult.h
include/alibabacloud/facebody/model/EnhanceFaceRequest.h
@@ -140,6 +142,8 @@ set(facebody_src
src/model/DetectMaskResult.cc
src/model/DetectPedestrianRequest.cc
src/model/DetectPedestrianResult.cc
src/model/DetectPedestrianIntrusionRequest.cc
src/model/DetectPedestrianIntrusionResult.cc
src/model/DetectVideoLivingFaceRequest.cc
src/model/DetectVideoLivingFaceResult.cc
src/model/EnhanceFaceRequest.cc

View File

@@ -58,6 +58,8 @@
#include "model/DetectMaskResult.h"
#include "model/DetectPedestrianRequest.h"
#include "model/DetectPedestrianResult.h"
#include "model/DetectPedestrianIntrusionRequest.h"
#include "model/DetectPedestrianIntrusionResult.h"
#include "model/DetectVideoLivingFaceRequest.h"
#include "model/DetectVideoLivingFaceResult.h"
#include "model/EnhanceFaceRequest.h"
@@ -165,6 +167,9 @@ namespace AlibabaCloud
typedef Outcome<Error, Model::DetectPedestrianResult> DetectPedestrianOutcome;
typedef std::future<DetectPedestrianOutcome> DetectPedestrianOutcomeCallable;
typedef std::function<void(const FacebodyClient*, const Model::DetectPedestrianRequest&, const DetectPedestrianOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DetectPedestrianAsyncHandler;
typedef Outcome<Error, Model::DetectPedestrianIntrusionResult> DetectPedestrianIntrusionOutcome;
typedef std::future<DetectPedestrianIntrusionOutcome> DetectPedestrianIntrusionOutcomeCallable;
typedef std::function<void(const FacebodyClient*, const Model::DetectPedestrianIntrusionRequest&, const DetectPedestrianIntrusionOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DetectPedestrianIntrusionAsyncHandler;
typedef Outcome<Error, Model::DetectVideoLivingFaceResult> DetectVideoLivingFaceOutcome;
typedef std::future<DetectVideoLivingFaceOutcome> DetectVideoLivingFaceOutcomeCallable;
typedef std::function<void(const FacebodyClient*, const Model::DetectVideoLivingFaceRequest&, const DetectVideoLivingFaceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DetectVideoLivingFaceAsyncHandler;
@@ -290,6 +295,9 @@ namespace AlibabaCloud
DetectPedestrianOutcome detectPedestrian(const Model::DetectPedestrianRequest &request)const;
void detectPedestrianAsync(const Model::DetectPedestrianRequest& request, const DetectPedestrianAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
DetectPedestrianOutcomeCallable detectPedestrianCallable(const Model::DetectPedestrianRequest& request) const;
DetectPedestrianIntrusionOutcome detectPedestrianIntrusion(const Model::DetectPedestrianIntrusionRequest &request)const;
void detectPedestrianIntrusionAsync(const Model::DetectPedestrianIntrusionRequest& request, const DetectPedestrianIntrusionAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
DetectPedestrianIntrusionOutcomeCallable detectPedestrianIntrusionCallable(const Model::DetectPedestrianIntrusionRequest& request) const;
DetectVideoLivingFaceOutcome detectVideoLivingFace(const Model::DetectVideoLivingFaceRequest &request)const;
void detectVideoLivingFaceAsync(const Model::DetectVideoLivingFaceRequest& request, const DetectVideoLivingFaceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
DetectVideoLivingFaceOutcomeCallable detectVideoLivingFaceCallable(const Model::DetectVideoLivingFaceRequest& request) const;

View File

@@ -0,0 +1,54 @@
/*
* Copyright 2009-2017 Alibaba Cloud All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef ALIBABACLOUD_FACEBODY_MODEL_DETECTPEDESTRIANINTRUSIONREQUEST_H_
#define ALIBABACLOUD_FACEBODY_MODEL_DETECTPEDESTRIANINTRUSIONREQUEST_H_
#include <string>
#include <vector>
#include <alibabacloud/core/RpcServiceRequest.h>
#include <alibabacloud/facebody/FacebodyExport.h>
namespace AlibabaCloud
{
namespace Facebody
{
namespace Model
{
class ALIBABACLOUD_FACEBODY_EXPORT DetectPedestrianIntrusionRequest : public RpcServiceRequest
{
public:
DetectPedestrianIntrusionRequest();
~DetectPedestrianIntrusionRequest();
std::string getRegionType()const;
void setRegionType(const std::string& regionType);
std::string getImageURL()const;
void setImageURL(const std::string& imageURL);
Array getRegion()const;
void setRegion(const Array& region);
private:
std::string regionType_;
std::string imageURL_;
Array region_;
};
}
}
}
#endif // !ALIBABACLOUD_FACEBODY_MODEL_DETECTPEDESTRIANINTRUSIONREQUEST_H_

View File

@@ -0,0 +1,76 @@
/*
* Copyright 2009-2017 Alibaba Cloud All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef ALIBABACLOUD_FACEBODY_MODEL_DETECTPEDESTRIANINTRUSIONRESULT_H_
#define ALIBABACLOUD_FACEBODY_MODEL_DETECTPEDESTRIANINTRUSIONRESULT_H_
#include <string>
#include <vector>
#include <utility>
#include <alibabacloud/core/ServiceResult.h>
#include <alibabacloud/facebody/FacebodyExport.h>
namespace AlibabaCloud
{
namespace Facebody
{
namespace Model
{
class ALIBABACLOUD_FACEBODY_EXPORT DetectPedestrianIntrusionResult : public ServiceResult
{
public:
struct Data
{
struct ElementsItem
{
struct Box
{
long left;
long top;
long right;
long bottom;
};
long boxId;
std::string type;
long score;
bool isIntrude;
Box box;
};
long imageHeight;
long imageWidth;
std::vector<ElementsItem> elements;
};
DetectPedestrianIntrusionResult();
explicit DetectPedestrianIntrusionResult(const std::string &payload);
~DetectPedestrianIntrusionResult();
std::string getMessage()const;
Data getData()const;
std::string getCode()const;
protected:
void parse(const std::string &payload);
private:
std::string message_;
Data data_;
std::string code_;
};
}
}
}
#endif // !ALIBABACLOUD_FACEBODY_MODEL_DETECTPEDESTRIANINTRUSIONRESULT_H_

View File

@@ -699,6 +699,42 @@ FacebodyClient::DetectPedestrianOutcomeCallable FacebodyClient::detectPedestrian
return task->get_future();
}
FacebodyClient::DetectPedestrianIntrusionOutcome FacebodyClient::detectPedestrianIntrusion(const DetectPedestrianIntrusionRequest &request) const
{
auto endpointOutcome = endpointProvider_->getEndpoint();
if (!endpointOutcome.isSuccess())
return DetectPedestrianIntrusionOutcome(endpointOutcome.error());
auto outcome = makeRequest(endpointOutcome.result(), request);
if (outcome.isSuccess())
return DetectPedestrianIntrusionOutcome(DetectPedestrianIntrusionResult(outcome.result()));
else
return DetectPedestrianIntrusionOutcome(outcome.error());
}
void FacebodyClient::detectPedestrianIntrusionAsync(const DetectPedestrianIntrusionRequest& request, const DetectPedestrianIntrusionAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
{
auto fn = [this, request, handler, context]()
{
handler(this, request, detectPedestrianIntrusion(request), context);
};
asyncExecute(new Runnable(fn));
}
FacebodyClient::DetectPedestrianIntrusionOutcomeCallable FacebodyClient::detectPedestrianIntrusionCallable(const DetectPedestrianIntrusionRequest &request) const
{
auto task = std::make_shared<std::packaged_task<DetectPedestrianIntrusionOutcome()>>(
[this, request]()
{
return this->detectPedestrianIntrusion(request);
});
asyncExecute(new Runnable([task]() { (*task)(); }));
return task->get_future();
}
FacebodyClient::DetectVideoLivingFaceOutcome FacebodyClient::detectVideoLivingFace(const DetectVideoLivingFaceRequest &request) const
{
auto endpointOutcome = endpointProvider_->getEndpoint();

View File

@@ -0,0 +1,62 @@
/*
* Copyright 2009-2017 Alibaba Cloud All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <alibabacloud/facebody/model/DetectPedestrianIntrusionRequest.h>
using AlibabaCloud::Facebody::Model::DetectPedestrianIntrusionRequest;
DetectPedestrianIntrusionRequest::DetectPedestrianIntrusionRequest() :
RpcServiceRequest("facebody", "2019-12-30", "DetectPedestrianIntrusion")
{
setMethod(HttpRequest::Method::Post);
}
DetectPedestrianIntrusionRequest::~DetectPedestrianIntrusionRequest()
{}
std::string DetectPedestrianIntrusionRequest::getRegionType()const
{
return regionType_;
}
void DetectPedestrianIntrusionRequest::setRegionType(const std::string& regionType)
{
regionType_ = regionType;
setBodyParameter("RegionType", regionType);
}
std::string DetectPedestrianIntrusionRequest::getImageURL()const
{
return imageURL_;
}
void DetectPedestrianIntrusionRequest::setImageURL(const std::string& imageURL)
{
imageURL_ = imageURL;
setBodyParameter("ImageURL", imageURL);
}
Array DetectPedestrianIntrusionRequest::getRegion()const
{
return region_;
}
void DetectPedestrianIntrusionRequest::setRegion(const Array& region)
{
region_ = region;
setBodyParameter("Region", std::to_string(region));
}

View File

@@ -0,0 +1,91 @@
/*
* Copyright 2009-2017 Alibaba Cloud All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <alibabacloud/facebody/model/DetectPedestrianIntrusionResult.h>
#include <json/json.h>
using namespace AlibabaCloud::Facebody;
using namespace AlibabaCloud::Facebody::Model;
DetectPedestrianIntrusionResult::DetectPedestrianIntrusionResult() :
ServiceResult()
{}
DetectPedestrianIntrusionResult::DetectPedestrianIntrusionResult(const std::string &payload) :
ServiceResult()
{
parse(payload);
}
DetectPedestrianIntrusionResult::~DetectPedestrianIntrusionResult()
{}
void DetectPedestrianIntrusionResult::parse(const std::string &payload)
{
Json::Reader reader;
Json::Value value;
reader.parse(payload, value);
setRequestId(value["RequestId"].asString());
auto dataNode = value["Data"];
if(!dataNode["ImageHeight"].isNull())
data_.imageHeight = std::stol(dataNode["ImageHeight"].asString());
if(!dataNode["ImageWidth"].isNull())
data_.imageWidth = std::stol(dataNode["ImageWidth"].asString());
auto allElementsNode = dataNode["Elements"]["ElementsItem"];
for (auto dataNodeElementsElementsItem : allElementsNode)
{
Data::ElementsItem elementsItemObject;
if(!dataNodeElementsElementsItem["BoxId"].isNull())
elementsItemObject.boxId = std::stol(dataNodeElementsElementsItem["BoxId"].asString());
if(!dataNodeElementsElementsItem["Type"].isNull())
elementsItemObject.type = dataNodeElementsElementsItem["Type"].asString();
if(!dataNodeElementsElementsItem["Score"].isNull())
elementsItemObject.score = std::stol(dataNodeElementsElementsItem["Score"].asString());
if(!dataNodeElementsElementsItem["IsIntrude"].isNull())
elementsItemObject.isIntrude = dataNodeElementsElementsItem["IsIntrude"].asString() == "true";
auto boxNode = value["Box"];
if(!boxNode["Left"].isNull())
elementsItemObject.box.left = std::stol(boxNode["Left"].asString());
if(!boxNode["Top"].isNull())
elementsItemObject.box.top = std::stol(boxNode["Top"].asString());
if(!boxNode["Right"].isNull())
elementsItemObject.box.right = std::stol(boxNode["Right"].asString());
if(!boxNode["Bottom"].isNull())
elementsItemObject.box.bottom = std::stol(boxNode["Bottom"].asString());
data_.elements.push_back(elementsItemObject);
}
if(!value["Message"].isNull())
message_ = value["Message"].asString();
if(!value["Code"].isNull())
code_ = value["Code"].asString();
}
std::string DetectPedestrianIntrusionResult::getMessage()const
{
return message_;
}
DetectPedestrianIntrusionResult::Data DetectPedestrianIntrusionResult::getData()const
{
return data_;
}
std::string DetectPedestrianIntrusionResult::getCode()const
{
return code_;
}