diff --git a/src/ai_platform/MultiSourceProcess.cpp b/src/ai_platform/MultiSourceProcess.cpp index fdc9281..43a58fc 100755 --- a/src/ai_platform/MultiSourceProcess.cpp +++ b/src/ai_platform/MultiSourceProcess.cpp @@ -1533,8 +1533,10 @@ void CMultiSourceProcess::algorithm_traffic_light_process(vector& vpt_in algor_map->find(algorithm_type_t::NONMOTOR_RUNNING_REDLIGHTS) != algor_map->end()) { m_RoadSegTaskMtx.lock(); - if (!m_RoadSegTaskMap[task_id].isseg) continue; - else { + if (!m_RoadSegTaskMap[task_id].isseg){ + m_RoadSegTaskMtx.unlock(); + continue; + } else { interest_traffic_region.push_back(m_RoadSegTaskMap[task_id].traffic_region); interest_labels.push_back(m_RoadSegTaskMap[task_id].labels); } @@ -1601,17 +1603,16 @@ void CMultiSourceProcess::algorithm_roadseg_correlation_process(vector& } m_RoadSegTaskMtx.unlock(); - - sy_img img; - img.w_ = mem->getWidth(); - img.h_ = mem->getHeight(); - img.c_ = mem->getChannel(); - img.data_ = mem->getMem(); - sy_interest_imgs.push_back(img); - - interest_task_id.emplace_back(task_id); - interest_imgs.emplace_back(vpt_interest_imgs[i]); - interest_vpt_result.emplace_back(vptResult[i]); + sy_img img; + img.w_ = mem->getWidth(); + img.h_ = mem->getHeight(); + img.c_ = mem->getChannel(); + img.data_ = mem->getMem(); + sy_interest_imgs.push_back(img); + + interest_task_id.emplace_back(task_id); + interest_imgs.emplace_back(vpt_interest_imgs[i]); + interest_vpt_result.emplace_back(vptResult[i]); } } diff --git a/src/decoder/dvpp/DvppDecoder.cpp b/src/decoder/dvpp/DvppDecoder.cpp index 82184ed..8cecbd0 100644 --- a/src/decoder/dvpp/DvppDecoder.cpp +++ b/src/decoder/dvpp/DvppDecoder.cpp @@ -804,6 +804,19 @@ void DvppDecoder::doVdppVdecCallBack(acldvppStreamDesc *input, acldvppPicDesc *o break; } + if (m_bReal) { + // 实时流缓存长度大于25时做丢帧处理 + m_decoded_data_queue_mtx.lock(); + if(m_decoded_data_queue.size() >= 25){ + m_decoded_data_queue_mtx.unlock(); + LOG_WARN("[{}]- m_decoded_data_queue >= 25 ", m_dec_name); + acldvppFree(outputDataDev); + outputDataDev = nullptr; + break; + } + m_decoded_data_queue_mtx.unlock(); + } + bool bCached = false; if(width > 0 && height > 0 && outputSize > 0){