#include "TestImgEngine.h" #include #include #include #include #include #include #include #include #include using namespace std; using namespace ai_matrix; TestImgEngine::TestImgEngine() {} TestImgEngine::~TestImgEngine() {} APP_ERROR TestImgEngine::Init() { strPort0_ = engineName_ + "_" + std::to_string(engineId_) + "_0"; dataSourceConfig_ = MyYaml::GetIns()->GetDataSourceConfigById(engineId_); //获取摄像机参数 width_ = IMAGE_WIDTH, height_ = IMAGE_HEIGHT; LogInfo << "engineId_:" << engineId_ << " TestImgEngine Init ok"; return APP_ERR_OK; } APP_ERROR TestImgEngine::DeInit() { LogInfo << "engineId_:" << engineId_ << " TestImgEngine DeInit ok"; return APP_ERR_OK; } //测试jpeg解码时打开,并修改相应的yaml配置引擎间通信 #if 0 APP_ERROR TestImgEngine::Process() { int iRet = APP_ERR_OK; uint64_t u64count_num = 0; while (!isStop_) { // std::cout<<"Enter Read Image Thread "<<++u64count_num<<" Times!"<GetStringValue("jpeg_image_file_name"); //从本地文件读取jpg图像并构造jpeg数据 void* pJPEGBuffer = nullptr; FILE *jpeg_fp; jpeg_fp = fopen(jpeg_img_file_name.c_str(), "r"); if (!jpeg_fp) { std::cerr<<"Can not open "< pJPEGFrameData = std::make_shared(); //组织数据,压入下一引擎 pJPEGFrameData->iDataSource = engineId_; pJPEGFrameData->iSize = pJPEGBuffer_Size; pJPEGFrameData->pData.reset(pJPEGBuffer, [](void* data){if(data) {delete[] data; data = nullptr;}}); //智能指针管理内存 // pJPEGFrameData->pData.reset(pJPEGBuffer, Deleter); //智能指针管理内存 pJPEGFrameData->i64TimeStamp = MyUtils::getins()->GetCurrentTimeMillis(); #if 1 iRet = outputQueMap_[strPort0_]->push(std::static_pointer_cast(pJPEGFrameData)); if (iRet != APP_ERR_OK){ LogError << "push the jpeg image data failed..."; std::cerr<<"push the jpeg image data failed..."<GetStringValue("yuv420m_image_file_name"); //从本地文件读取yuv420m图像并构造yuv420m数据 void* pYUV420MBuffer = nullptr; FILE *yuv420m_fp; yuv420m_fp = fopen(yuv420m_img_file_name.c_str(), "rb"); if (!yuv420m_fp) { std::cerr<<"Can not open "<