diff --git a/src/ai_engine_module/pedestrian_vehicle_retrograde.cpp b/src/ai_engine_module/pedestrian_vehicle_retrograde.cpp index 3090e43..d2956b7 100755 --- a/src/ai_engine_module/pedestrian_vehicle_retrograde.cpp +++ b/src/ai_engine_module/pedestrian_vehicle_retrograde.cpp @@ -387,7 +387,9 @@ bool PedestrianVehicleRetrograde::update_mstreams(const std::vector & } } - LOG_DEBUG("obj_to_alarm_boxes_ size: {}", obj_to_alarm_boxes_.size()); + if(obj_to_alarm_boxes_.size() > 0) { + LOG_DEBUG("obj_to_alarm_boxes_ size: {}", obj_to_alarm_boxes_.size()); + } return true; } diff --git a/src/decoder/dvpp/DvppDecoder.cpp b/src/decoder/dvpp/DvppDecoder.cpp index 5f6ac25..77a4b79 100755 --- a/src/decoder/dvpp/DvppDecoder.cpp +++ b/src/decoder/dvpp/DvppDecoder.cpp @@ -151,7 +151,10 @@ AVCodecContext* DvppDecoder::init_FFmpeg(FFDecConfig config){ m_fps = av_q2d(stream ->avg_frame_rate); #ifdef USE_VILLAGE - m_recoderManager.init(stream, avctx); + bool bRet = m_recoderManager.init(stream, avctx); + if (!bRet){ + LOG_ERROR("[{}]- m_recoderManager 初始化失败!", m_dec_name); + } #endif LOG_INFO("[{}]- init ffmpeg success! input:{} frame_width:{} frame_height:{} fps:{} ", m_dec_name, input_file, frame_width, frame_height, m_fps); diff --git a/src/decoder/dvpp/FFRecoderTaskManager.cpp b/src/decoder/dvpp/FFRecoderTaskManager.cpp index ecb565e..7847f10 100644 --- a/src/decoder/dvpp/FFRecoderTaskManager.cpp +++ b/src/decoder/dvpp/FFRecoderTaskManager.cpp @@ -38,6 +38,10 @@ FFRecoderTaskManager::~FFRecoderTaskManager(){ } bool FFRecoderTaskManager::init(AVStream* stream, AVCodecContext* avctx){ + if(stream == nullptr || avctx == nullptr) { + return false; + } + m_time_base = stream->time_base; m_avctx = avctx; m_inStream = stream; @@ -368,7 +372,6 @@ void FFRecoderTaskManager::recode_thread2() { } m_pkt_list_mtx.unlock(); - std::string id = recoderinfo.task_id + "_" + recoderinfo.object_id + "_" + std::to_string(recoderinfo.frame_nb); string file_name = recoderinfo.recoderPath; FFRecoder ffrecoder; bool bInit = ffrecoder.init(m_inStream, m_avctx, file_name.c_str()); @@ -389,6 +392,14 @@ void FFRecoderTaskManager::recode_thread2() { break; } AVPacket* pkt = dataPkt->pkt; + if(pkt == nullptr) { + LOG_ERROR("{} pkt is nullptr", recoderinfo.task_id); + continue; + } else if (pkt->data == nullptr || pkt->size <= 0){ + LOG_ERROR("{} pkt data is nullptr", recoderinfo.task_id); + continue; + } + ffrecoder.write_pkt(pkt); count++; end_frame_nb = (*it_save)->frame_nb; diff --git a/src/demo/demo.cpp b/src/demo/demo.cpp index 7b7308c..11a8ae7 100755 --- a/src/demo/demo.cpp +++ b/src/demo/demo.cpp @@ -634,7 +634,9 @@ static long long get_cur_time(){ return tpMicro.time_since_epoch().count(); } -string createTask(void *handle, std::vector algor_vec, int gi){ +static int nTaskId = 0; + +string createTask(void *handle, std::vector algor_vec, int gi, bool bFlag = true){ task_param tparam; switch(gi){ @@ -692,6 +694,13 @@ string createTask(void *handle, std::vector algor_vec, int gi) case 17: tparam.ipc_url = "/opt/share/data/diedao.mp4"; break; + case 18: + tparam.ipc_url = "rtsp://122.97.218.170:8604/openUrl/LBBYTra?params=eyJwcm90b2NhbCI6InJ0c3AiLCJjbGllbnRUeXBlIjoib3Blbl9hcGkiLCJleHByaWVUaW1lIjotMSwicHJvdG9jb2wiOiJydHNwIiwiZXhwaXJlVGltZSI6MzAwLCJlbmFibGVNR0MiOnRydWUsImV4cGFuZCI6InN0YW5kYXJkPXJ0c3Amc3RyZWFtZm9ybT1ydHAiLCJhIjoiOTgzYjRjMmUxMThlNGU1OTlkYThmMTI3NTkyMGViODV8MXwwfDEiLCJ0IjoxfQ=="; + break; + case 19: + // 公安内网 + tparam.ipc_url = "http://192.168.51.200:8554/320202202308231001001002"; + break; default: tparam.ipc_url = "/opt/share/data/Street.uvf"; break; @@ -700,9 +709,15 @@ string createTask(void *handle, std::vector algor_vec, int gi) tparam.algor_counts = algor_vec.size(); tparam.dec_type = 2; - std::string task_id_str = "test_task_id_" + std::to_string(gi); + if (bFlag){ + nTaskId = gi; + } + + std::string task_id_str = "test_task_id_" + std::to_string(nTaskId); tparam.task_id = task_id_str.c_str(); + nTaskId++; + tparam.algor_config_params = new algor_config_param[tparam.algor_counts]; for (size_t idx = 0; idx < algor_vec.size(); ++idx) @@ -774,21 +789,26 @@ void test_gpu(int gpuID){ // string task_id = createTask(handle, algor_vec, 3 + gpuID * 10); // string task_id1 = createTask(handle, algor_vec2, 5); - createTask(handle, algor_vec, 3); - createTask(handle, algor_vec, 4); - createTask(handle, algor_vec, 5); - createTask(handle, algor_vec, 6); - createTask(handle, algor_vec, 7); - createTask(handle, algor_vec, 8); - createTask(handle, algor_vec, 9); - createTask(handle, algor_vec, 10); - createTask(handle, algor_vec, 11); - createTask(handle, algor_vec, 12); - createTask(handle, algor_vec, 13); - createTask(handle, algor_vec, 14); - createTask(handle, algor_vec, 15); - createTask(handle, algor_vec, 16); - createTask(handle, algor_vec, 17); + createTask(handle, algor_vec, 18, false); + createTask(handle, algor_vec, 18, false); + createTask(handle, algor_vec, 18, false); + createTask(handle, algor_vec, 18, false); + createTask(handle, algor_vec, 18, false); + // createTask(handle, algor_vec, 3); + // createTask(handle, algor_vec, 4); + // createTask(handle, algor_vec, 5); + // createTask(handle, algor_vec, 6); + // createTask(handle, algor_vec, 7); + // createTask(handle, algor_vec, 8); + // createTask(handle, algor_vec, 9); + // createTask(handle, algor_vec, 10); + // createTask(handle, algor_vec, 11); + // createTask(handle, algor_vec, 12); + // createTask(handle, algor_vec, 13); + // createTask(handle, algor_vec, 14); + // createTask(handle, algor_vec, 15); + // createTask(handle, algor_vec, 16); + // createTask(handle, algor_vec, 17); // createTask(handle, algor_vec, 18); // createTask(handle, algor_vec, 19); @@ -804,16 +824,16 @@ void test_gpu(int gpuID){ int main(int argc, char *argv[]) { printf("new test\n"); - if (argc < 4) { - fprintf(stderr, "./xxx 0 2 10 1 ## [start_ai_id, end_ai_id) repeat_num gpu_id\n"); - return -1; - } + // if (argc < 4) { + // fprintf(stderr, "./xxx 0 2 10 1 ## [start_ai_id, end_ai_id) repeat_num gpu_id\n"); + // return -1; + // } - //! load params. - int start_id = atoi(argv[1]); - int end_id = atoi(argv[2]); - int repeat_num = atoi(argv[3]); - int gpuID = atoi(argv[4]); + // //! load params. + // int start_id = atoi(argv[1]); + // int end_id = atoi(argv[2]); + // int repeat_num = atoi(argv[3]); + // int gpuID = atoi(argv[4]); test_gpu(0); // test_gpu(1); diff --git a/src/reprocessing_module/snapshot_reprocessing.cpp b/src/reprocessing_module/snapshot_reprocessing.cpp index cc5d7e6..a5512bd 100755 --- a/src/reprocessing_module/snapshot_reprocessing.cpp +++ b/src/reprocessing_module/snapshot_reprocessing.cpp @@ -549,11 +549,12 @@ int snapshot_reprocessing::update_face_bestsnapshot(vector vec_de int frame_height = memPtr->getHeight(); int frame_width = memPtr->getWidth(); - LOG_DEBUG("{}: {}",task_id,ol_det_result[idx].obj_count); if (0 == ol_det_result[idx].obj_count) { continue; } + LOG_DEBUG("{}: {}",task_id,ol_det_result[idx].obj_count); + int copy_obj_count = 0; //用于记录该路有多少个目标需要进行显存图像的更新 vector vec_obj_info; for (int c = 0; c < ol_det_result[idx].obj_count; c++) { diff --git a/src/util/vpc_util.cpp b/src/util/vpc_util.cpp index fdc4e07..06360eb 100755 --- a/src/util/vpc_util.cpp +++ b/src/util/vpc_util.cpp @@ -192,10 +192,10 @@ vector VPCUtil::crop_batch(DeviceMemory *devMem, vector