瀏覽代碼

Z991239-5945 #comment 优化vector内存释放

80274480 9 月之前
父節點
當前提交
44b22265dd

+ 9 - 2
Module/mod_SalesRecorder/mod_SalesRecorder.cpp

@@ -1697,7 +1697,7 @@ ErrorCodeEnum CSalesRecorderEntity::AddToSalesRecordList(const char* videopath,
 
 	item->file_name = strfilename;
 	
-	m_vRecordList.push_back(*item);
+	m_vRecordList.push_back(item);
 
 	Error = Error_Succeed;
 
@@ -1728,7 +1728,7 @@ ErrorCodeEnum CSalesRecorderEntity::PostSalesRecordInfos()
 	}
 
 	video_params.strRecordID = m_SalesVideoName + strlen(RVC_SALES_RECORD_SUFFIX);
-	for (vector<record_item_t>::iterator it = m_vRecordList.begin(); it < m_vRecordList.end(); ++it) {
+	for (vector<record_item_t*>::iterator it = m_vRecordList.begin(); it < m_vRecordList.end(); ++it) {
 		video_params.vRecordList.push_back(*it);
 	}
 
@@ -1742,6 +1742,13 @@ ErrorCodeEnum CSalesRecorderEntity::PostSalesRecordInfos()
 		LogWarn(Severity_Middle, Error_Exception, LOG_EVT_POST_SALESRECORD_INFO_FAILED, strErrorMsg.GetData());
 	}
 
+	for (vector<record_item_t*>::iterator it = m_vRecordList.begin(); it < m_vRecordList.end(); ++it) {
+		if (NULL != *it) {
+			delete* it;
+			*it = NULL;
+		}
+	}
+
 	m_vRecordList.clear();
 
 	return Error;

+ 1 - 1
Module/mod_SalesRecorder/mod_SalesRecorder.h

@@ -200,7 +200,7 @@ namespace SalesRecorder {
 		int m_iHttpTimeOut;
 		CSimpleStringA m_strAppVersion;
 		CSimpleStringA m_strTerminalId;
-		vector<record_item_t> m_vRecordList;
+		vector<record_item_t*> m_vRecordList;
 		eRvcBusinessStatus m_eBusinessStatus;
 		bool m_bEncFlag;
 		int m_iRemoteRecordType;

+ 4 - 4
Module/mod_mediacontroller/brightnessinfo.cpp

@@ -40,11 +40,11 @@ int post_camera_brightness_info_list(unsigned int& uposttime, CSimpleStringA& er
 		rootReq["app_version"] = pData;
 	}
 
-	for (vector<brightness_item_t>::iterator it = pinfo->vBrightnessList.begin(); it < pinfo->vBrightnessList.end(); ++it) {
+	for (vector<brightness_item_t*>::iterator it = pinfo->vBrightnessList.begin(); it < pinfo->vBrightnessList.end(); ++it) {
 		Json::Value item;
-		item["module"] = it->module;
-		item["name"] = it->name;
-		item["value"] = it->value;
+		item["module"] = (*it)->module;
+		item["name"] = (*it)->name;
+		item["value"] = (*it)->value;
 		rootReq["config_list"].append(item);
 	}
 

+ 1 - 1
Module/mod_mediacontroller/brightnessinfo.h

@@ -53,7 +53,7 @@ typedef struct brightness_info_s {
 	CSimpleStringA strTerminalNo;
 	CSimpleStringA strAppVersion;
 	CSimpleStringA strBranchNo;
-	vector<brightness_item_t> vBrightnessList;
+	vector<brightness_item_t*> vBrightnessList;
 }brightness_info_t;
 
 

+ 24 - 2
Module/mod_mediacontroller/mod_mediacontroller.cpp

@@ -2199,6 +2199,14 @@ void CMediaControllerEntity::CheckAutoVideoConfig(capture_config_t* conf)
 void CMediaControllerEntity::OnCameraStarted()
 {
 	LogEvent(Severity_Middle, LOG_EVT_MEDIACONTROLLER_CAMERA_STARTED, "camera started.");
+
+	int ienvbrightness = 0;
+	capture_get_camera_brightness(&ienvbrightness, m_capture, m_nCameraErrorCode, 0);
+
+	int ioptbrightness = 0;
+	capture_get_camera_brightness(&ioptbrightness, m_capture, m_nCameraErrorCode, 1);
+
+	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)(CSimpleStringA::Format("current env camera brightness is %d, opt camera brightness is %d.", ienvbrightness, ioptbrightness).GetData());
 }
 
 
@@ -2296,6 +2304,12 @@ void CMediaControllerEntity::SetCameraBrightness(SpReqAnsContext<MediaService_Se
 {
 	int ibrightness = ctx->Req.ibrightness;
 	if (0 == capture_set_camera_brightness(ibrightness, m_capture, m_nCameraErrorCode, ctx->Req.icameraid)) {
+		if (0 == ctx->Req.icameraid) {
+			DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("set env camera brightness to %d.", ibrightness);
+		}
+		else if (1 == ctx->Req.icameraid) {
+			DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("set opt camera brightness to %d.", ibrightness);
+		}
 		ctx->Ans.result = 0;
 		ctx->Answer(Error_Succeed);
 	}
@@ -2333,8 +2347,8 @@ ErrorCodeEnum CMediaControllerEntity::PostCameraBrightnessInfos(int iBrightness)
 	item_opt->name = "OptBrightness";
 	item_opt->value = CSimpleStringA::Format("%d", iBrightness).GetData();
 
-	camera_brightness_params.vBrightnessList.push_back(*item_env);
-	camera_brightness_params.vBrightnessList.push_back(*item_opt);
+	camera_brightness_params.vBrightnessList.push_back(item_env);
+	camera_brightness_params.vBrightnessList.push_back(item_opt);
 
 	unsigned int uposttime = 0;
 	CSimpleStringA strErrorMsg("");
@@ -2346,6 +2360,14 @@ ErrorCodeEnum CMediaControllerEntity::PostCameraBrightnessInfos(int iBrightness)
 		LogWarn(Severity_Middle, Error_Exception, LOG_EVT_POST_CAMERA_BRIGHTNESSINFO_FAILED, strErrorMsg.GetData());
 	}
 
+	for (vector<brightness_item_t*>::iterator it = camera_brightness_params.vBrightnessList.begin(); it < camera_brightness_params.vBrightnessList.end(); ++it) {
+		if (NULL != *it) {
+			delete* it;
+			*it = NULL;
+		}
+	}
+	camera_brightness_params.vBrightnessList.clear();
+
 	return Error;
 }
 

+ 9 - 3
Module/mod_recorder/mod_recorder.cpp

@@ -436,7 +436,7 @@ ErrorCodeEnum CRecorderEntity::PostVideoRecordInfos()
 	}
 
 	video_params.strRecordID = m_strRecordName;
-	for (vector<record_item_t>::iterator it = m_vRecordList.begin(); it < m_vRecordList.end(); ++it) {
+	for (vector<record_item_t*>::iterator it = m_vRecordList.begin(); it < m_vRecordList.end(); ++it) {
 		video_params.vRecordList.push_back(*it);
 	}
 
@@ -450,6 +450,12 @@ ErrorCodeEnum CRecorderEntity::PostVideoRecordInfos()
 		LogWarn(Severity_Middle, Error_Exception, LOG_EVT_POST_RECORDINFO_FAILED, strErrorMsg.GetData());
 	}
 
+	for (vector<record_item_t*>::iterator it = m_vRecordList.begin(); it < m_vRecordList.end(); ++it) {
+		if (NULL != *it) {
+			delete* it;
+			*it = NULL;
+		}
+	}
 	m_vRecordList.clear();
 
 	return Error;
@@ -459,7 +465,7 @@ ErrorCodeEnum CRecorderEntity::PostVideoRecordInfos()
 ErrorCodeEnum CRecorderEntity::HandleExceptionRecordVideos()
 {
 	ErrorCodeEnum Error = Error_Failed;
-	const char* videofilename = m_vRecordList[0].file_path.c_str();
+	const char* videofilename = m_vRecordList[0]->file_path.c_str();
 	if (NULL == videofilename) {
 		return Error;
 	}
@@ -499,7 +505,7 @@ ErrorCodeEnum CRecorderEntity::AddToVideoRecordList(const char* videofilename)
 		item->file_name = strfilename;
 	}
 
-	m_vRecordList.push_back(*item);
+	m_vRecordList.push_back(item);
 
 	Error = Error_Succeed;
 

+ 1 - 1
Module/mod_recorder/mod_recorder.h

@@ -100,7 +100,7 @@ namespace Recorder {
 		int m_iHttpTimeOut;
 		CSimpleStringA m_strAppVersion;
 		CSimpleStringA m_strTerminalId;
-		vector<record_item_t> m_vRecordList;
+		vector<record_item_t*> m_vRecordList;
 		char m_strRecordName[MAX_PATH];
 		eRvcBusinessStatus m_eBusinessStatus;
 	};

+ 4 - 4
Module/mod_recorder/recordinfo.cpp

@@ -52,11 +52,11 @@ int post_video_recordinfo_list(unsigned int& uposttime, CSimpleStringA& errormsg
 
 	rootReq["business_status"] = pinfo->iBusinessStatus;
 
-	for (vector<record_item_t>::iterator it = pinfo->vRecordList.begin(); it < pinfo->vRecordList.end(); ++it) {
+	for (vector<record_item_t*>::iterator it = pinfo->vRecordList.begin(); it < pinfo->vRecordList.end(); ++it) {
 		Json::Value item;
-		item["file_name"] = it->file_name;
-		item["file_path"] = it->file_path;
-		item["file_length"] = it->file_length;
+		item["file_name"] = (*it)->file_name;
+		item["file_path"] = (*it)->file_path;
+		item["file_length"] = (*it)->file_length;
 		rootReq["file_list"].append(item);
 	}
 

+ 1 - 1
Module/mod_recorder/recordinfo.h

@@ -40,7 +40,7 @@ typedef struct video_record_info_s {
 	CSimpleStringA strRecordEndTime;
 	CSimpleStringA strRecordID;
 	int iBusinessStatus;
-	vector<record_item_t> vRecordList;
+	vector<record_item_t*> vRecordList;
 }video_record_info_t;