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;; }