Commit e24744056584c15ceb100484af44f5ceeff56a4a

Authored by Hu Chunming
1 parent 936f5977

修复traffic_light 卡死导致显存暴增问题

src/ai_platform/MultiSourceProcess.cpp
... ... @@ -1533,8 +1533,10 @@ void CMultiSourceProcess::algorithm_traffic_light_process(vector<string>& vpt_in
1533 1533 algor_map->find(algorithm_type_t::NONMOTOR_RUNNING_REDLIGHTS) != algor_map->end()) {
1534 1534  
1535 1535 m_RoadSegTaskMtx.lock();
1536   - if (!m_RoadSegTaskMap[task_id].isseg) continue;
1537   - else {
  1536 + if (!m_RoadSegTaskMap[task_id].isseg){
  1537 + m_RoadSegTaskMtx.unlock();
  1538 + continue;
  1539 + } else {
1538 1540 interest_traffic_region.push_back(m_RoadSegTaskMap[task_id].traffic_region);
1539 1541 interest_labels.push_back(m_RoadSegTaskMap[task_id].labels);
1540 1542 }
... ... @@ -1601,17 +1603,16 @@ void CMultiSourceProcess::algorithm_roadseg_correlation_process(vector<string>&
1601 1603 }
1602 1604 m_RoadSegTaskMtx.unlock();
1603 1605  
1604   -
1605   - sy_img img;
1606   - img.w_ = mem->getWidth();
1607   - img.h_ = mem->getHeight();
1608   - img.c_ = mem->getChannel();
1609   - img.data_ = mem->getMem();
1610   - sy_interest_imgs.push_back(img);
1611   -
1612   - interest_task_id.emplace_back(task_id);
1613   - interest_imgs.emplace_back(vpt_interest_imgs[i]);
1614   - interest_vpt_result.emplace_back(vptResult[i]);
  1606 + sy_img img;
  1607 + img.w_ = mem->getWidth();
  1608 + img.h_ = mem->getHeight();
  1609 + img.c_ = mem->getChannel();
  1610 + img.data_ = mem->getMem();
  1611 + sy_interest_imgs.push_back(img);
  1612 +
  1613 + interest_task_id.emplace_back(task_id);
  1614 + interest_imgs.emplace_back(vpt_interest_imgs[i]);
  1615 + interest_vpt_result.emplace_back(vptResult[i]);
1615 1616 }
1616 1617 }
1617 1618  
... ...
src/decoder/dvpp/DvppDecoder.cpp
... ... @@ -804,6 +804,19 @@ void DvppDecoder::doVdppVdecCallBack(acldvppStreamDesc *input, acldvppPicDesc *o
804 804 break;
805 805 }
806 806  
  807 + if (m_bReal) {
  808 + // 实时流缓存长度大于25时做丢帧处理
  809 + m_decoded_data_queue_mtx.lock();
  810 + if(m_decoded_data_queue.size() >= 25){
  811 + m_decoded_data_queue_mtx.unlock();
  812 + LOG_WARN("[{}]- m_decoded_data_queue >= 25 ", m_dec_name);
  813 + acldvppFree(outputDataDev);
  814 + outputDataDev = nullptr;
  815 + break;
  816 + }
  817 + m_decoded_data_queue_mtx.unlock();
  818 + }
  819 +
807 820 bool bCached = false;
808 821 if(width > 0 && height > 0 && outputSize > 0){
809 822  
... ...