C++ Code Sample
Example 1
Prototype:
APP_ERROR SendData(const std::string& streamName, int inPluginId, MxstDataInput& dataBuffer);
For details about the sample code, see the main.cpp file. For more details, see Service Running (C++).
Example 2
Prototype:
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;
Example 3
Prototype:
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;
Sample 4
Prototype:
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;;
}
Parent topic: SendData-GetResult Sample Code