C++样例
样例一
函数原型:
APP_ERROR SendData(const std::string& streamName, int inPluginId, MxstDataInput& dataBuffer);
样例代码参考样例代码“main.cpp”,详情参考C++运行步骤。
样例二
函数原型:
APP_ERROR SendData(const std::string& streamName, const std::string& elementName, MxstDataInput& dataBuffer);
std::string inElementName = "appsrc0"
APP_ERROR ret = mxStreamManager->SendData(streamName, inElementName, mxstDataInput);
if (ret != APP_ERR_OK) {
LogError << GetError(ret) << "SendData two failed.";
return ret;
}
MxStream::MxstDataOutput *mxstDataOutput = mxStreamManager->GetResult(streamName, outPluginId);
if (mxstDataOutput == nullptr) {
LogError << "SendDataAndGetResult mxstDataOutput is nullptr.";
return APP_ERR_COMM_INVALID_POINTER;
}
std::string result((char *) mxstDataOutput->dataPtr, mxstDataOutput->dataSize);
std::cout << "result:" << result << std::endl;
delete mxstDataOutput;
mxstDataOutput = nullptr;
样例三
函数原型:
APP_ERROR SendData(const std::string& streamName, const std::string& elementName, MxstDataInput& dataBuffer);
std::string inElementName = "appsrc0"
APP_ERROR ret = mxStreamManager->SendData(streamName, inElementName, mxstDataInput);
if (ret != APP_ERR_OK) {
LogError << GetError(ret) << "SendData two failed.";
return ret;
}
auto mxstDataOutput = mxStreamManager->GetResultSP(streamName, outPluginId);
if (mxstDataOutput == nullptr) {
LogError << "SendDataAndGetResult mxstDataOutput is nullptr.";
return APP_ERR_COMM_INVALID_POINTER;
}
std::string result((char *) mxstDataOutput->dataPtr, mxstDataOutput->dataSize);
std::cout<< "result:" << result << std::endl;
样例四
函数原型:
APP_ERROR SendData(const std::string& streamName, const std::string& elementName,std::vector<MxstMetadataInput>& metadataVec, MxstBufferInput& bufferInput);
APP_ERROR ret = mxStreamManager->SendData(streamName, "appsrc0", mxstMetadataInputVec, mxstBufferInput);
if (ret != APP_ERR_OK) {
LogError << GetError(ret) << "SendData failed.";
return ret;
}
std::vector<std::string> dataSourceVec = {"appsrc0"};
MxStream::MxstBufferAndMetadataOutput mxstBufferAndMetadataOutput =
mxStreamManager->GetResult(streamName, "appsink0", dataSourceVec);
if (mxstBufferAndMetadataOutput.errorCode != APP_ERR_OK) {
LogError << GetError(mxstBufferAndMetadataOutput.errorCode) << "GetResult failed";
return mxstBufferAndMetadataOutput.errorCode;
}
if (mxstBufferAndMetadataOutput.bufferOutput.get() == nullptr) {
LogError << "bufferOutput nullptr";
return APP_ERR_COMM_INVALID_POINTER;
}
std::string outBuffer((char *) mxstBufferAndMetadataOutput.bufferOutput->dataPtr,
mxstBufferAndMetadataOutput.bufferOutput->dataSize);
LogInfo << "result:" << outBuffer ;
for (uint32_t i = 0; i < mxstBufferAndMetadataOutput.metadataVec.size(); i++) {
auto metaData = mxstBufferAndMetadataOutput.metadataVec[i];
std::cout << metaData.dataPtr->DebugString() << std::endl;;
}