瀏覽代碼

Z991239-4792 #comment 优化单摄像头自适应流程

80274480 2 年之前
父節點
當前提交
6ed1b4a463

+ 38 - 9
Module/mod_mediacontroller/mod_mediacontroller.cpp

@@ -73,7 +73,7 @@ void CMediaControllerEntity::OnSysVarEvent(const char *pszKey, const char *pszVa
 				if (!m_bStartCamera) {
 					StartCameraAndSetSysVar();
 					if (m_bStartCamera) {
-						LogEvent(Severity_Middle, LOG_EVT_MEDIACONTROLLER_BEGIN_FACETRACKING, "start facetracking.");
+						StartFacetracking();
 					}
 				}
 				else {
@@ -322,7 +322,7 @@ void CMediaControllerEntity::OnStarted()
 			CSmartPointer<IEntityFunction> Func = GetFunction();
 			Func->GetSysVar("SessionID", strSessionId);
 			LogEvent(Severity_Middle, EVENT_MOD_BEGIN_RECORD, strSessionId);
-			LogEvent(Severity_Middle, LOG_EVT_MEDIACONTROLLER_BEGIN_FACETRACKING, "start facetracking.");
+			StartFacetracking();
 		}
 	}
 
@@ -626,7 +626,7 @@ void CMediaControllerEntity::OnTimeout(DWORD dwTimerID)
 		GetFunction()->GetSysVar(SYSVAR_CALLSTATE, strCallState);
 		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("Timer 3 strCallState = %s", strCallState.GetData());
 		if ('O' == strCallState[0] && m_bStartCamera) {
-			LogEvent(Severity_Middle, LOG_EVT_MEDIACONTROLLER_END_FACETRACKING, "stop facetracking.");
+			StopFacetracking();
 			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("stop camera.");
 			if (m_capture){
 				GetFunction()->KillTimer(1);
@@ -1124,6 +1124,11 @@ ErrorCodeEnum CMediaControllerEntity::CheckConfigCameraName(capture_config_t *co
 			}
 		}
 	}
+	else if (eStand1SPlusType == eType) {
+		if (0 != EnvConfigNameError) {
+			Error = Error_AllCamera;
+		}
+	}
 		
 	return Error;
 }
@@ -1136,6 +1141,7 @@ ErrorCodeEnum CMediaControllerEntity::AutoGetVideoDeviceName(capture_config_t* c
 	int ifound = 0;
 	bool benv = false;
 	bool bopt = false;
+	CSimpleStringA strLastCamera;
 	for (int i = 0; i < 64 && ifound < icount; ++i) {
 		char strfullname[2 * MAX_PATH] = { 0 };
 		if (0 == rvc_videocap_get_device_fullpathname(i, strfullname, 2 * MAX_PATH)) {
@@ -1148,6 +1154,8 @@ ErrorCodeEnum CMediaControllerEntity::AutoGetVideoDeviceName(capture_config_t* c
 				conf->strVideoOpt = strfullname;
 				bopt = true;
 			}
+			
+			strLastCamera = strfullname;
 
 			if (benv && bopt){
 				break;
@@ -1155,6 +1163,11 @@ ErrorCodeEnum CMediaControllerEntity::AutoGetVideoDeviceName(capture_config_t* c
 		}
 	}
 
+	if (eStand1SPlusType == m_eDeviceType && 1 == icount && strLastCamera.GetLength() > 0) {
+		conf->strVideoEnv = strLastCamera;
+		benv = true;
+	}
+
 	if (benv || bopt) {
 		Error = Error_Succeed;
 	}
@@ -1405,7 +1418,7 @@ void CMediaControllerEntity::OnLog( const CAutoArray<CUUID> &SubIDs, const CUUID
 
 					if (m_bStartCamera) {
 						LogEvent(Severity_Middle, EVENT_MOD_BEGIN_RECORD, pszMessage);
-						LogEvent(Severity_Middle, LOG_EVT_MEDIACONTROLLER_BEGIN_FACETRACKING, "start facetracking.");
+						StartFacetracking();
 					}
 				}
 			}
@@ -1418,7 +1431,7 @@ void CMediaControllerEntity::OnLog( const CAutoArray<CUUID> &SubIDs, const CUUID
 			if (!m_bStartCamera){
 				StartCameraAndSetSysVar();
 				if (m_bStartCamera) {
-					LogEvent(Severity_Middle, LOG_EVT_MEDIACONTROLLER_BEGIN_FACETRACKING, "start facetracking.");
+					StartFacetracking();
 				}
 			}
 			else {
@@ -1459,7 +1472,7 @@ void CMediaControllerEntity::OnLog( const CAutoArray<CUUID> &SubIDs, const CUUID
 					DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("stop camera.");
 					if (m_capture)
 					{
-						LogEvent(Severity_Middle, LOG_EVT_MEDIACONTROLLER_END_FACETRACKING, "customeraware end, stop facetracking.");
+						StopFacetracking();
 						LogEvent(Severity_Middle, EVENT_MOD_END_RECORD, pszMessage);
 						GetFunction()->KillTimer(1);
 						capture_stop(m_capture);
@@ -1688,7 +1701,7 @@ ErrorCodeEnum CMediaControllerEntity::StartCamera()
 				{
 					SetAutoBright(Error);
 					GetFunction()->SetTimer(1, this, 5000);
-					if((Error == Error_OptCamera)&&((ePadtype == m_eDeviceType)||(eMobilePadType == m_eDeviceType)||(eDesk2SType == m_eDeviceType)||(eDesk1SType == m_eDeviceType)||(eDesk2SIntegratedType == m_eDeviceType)))
+					if((Error == Error_OptCamera)&&((ePadtype == m_eDeviceType)||(eStand1SPlusType == m_eDeviceType)))
 					{
 						return Error_Succeed;
 					}
@@ -1821,7 +1834,7 @@ ErrorCodeEnum CMediaControllerEntity::ExternStartCamera()
 		StartCameraAndSetSysVar();
 		if (m_bStartCamera) {
 			LogEvent(Severity_Middle, EVENT_MOD_BEGIN_RECORD, strSessionId);
-			LogEvent(Severity_Middle, LOG_EVT_MEDIACONTROLLER_BEGIN_FACETRACKING, "extern start camera, start facetracking.");
+			StartFacetracking();
 		}
 	}
 	m_bExternControlCam = FALSE;
@@ -1833,7 +1846,7 @@ ErrorCodeEnum CMediaControllerEntity::ExternStopCamera()
 {
 	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("Extern stop camera");
 	if (m_capture) {
-		LogEvent(Severity_Middle, LOG_EVT_MEDIACONTROLLER_END_FACETRACKING, "extern stop camera, stop facetracking.");
+		StopFacetracking();
 		LogEvent(Severity_Middle, EVENT_MOD_END_RECORD,NULL);
 		GetFunction()->KillTimer(1);
 		capture_stop(m_capture);
@@ -2039,6 +2052,22 @@ void CMediaControllerEntity::CheckAutoVideoConfig(capture_config_t* conf)
 }
 
 
+void CMediaControllerEntity::StartFacetracking()
+{
+	if (eStand2sType == m_eDeviceType) {
+		LogEvent(Severity_Middle, LOG_EVT_MEDIACONTROLLER_BEGIN_FACETRACKING, "start facetracking.");
+	}
+}
+
+
+void CMediaControllerEntity::StopFacetracking()
+{
+	if (eStand2sType == m_eDeviceType) {
+		LogEvent(Severity_Middle, LOG_EVT_MEDIACONTROLLER_END_FACETRACKING, "stop facetracking.");
+	}
+}
+
+
 SelfChekerClient::SelfChekerClient( CMediaControllerEntity *pEntity ) : SelfCheckerService_ClientBase(pEntity)
 {
 

+ 2 - 0
Module/mod_mediacontroller/mod_mediacontroller.h

@@ -121,6 +121,8 @@ private:
 	void OnTimeCameraStatusCheck();
 	ErrorCodeEnum ConnectAssistChannel();
 	void CheckAutoVideoConfig(capture_config_t* conf);
+	void StartFacetracking();
+	void StopFacetracking();
 
 public:
 	bool m_bSendCameraError;

+ 1 - 1
Other/libmediadeviceinfo/linux/videodevice_info_linux.cpp

@@ -266,7 +266,7 @@ int  rvc_videocap_get_device_fullpathname(int device_id, char* fullnamebuf, int
 			{
 				char strmd5[MAX_PATH] = { 0 };
 				snprintf(strmd5, MAX_PATH, "%s", cap.bus_info);
-				unsigned char x[MD5_DIGESTSIZE];
+				unsigned char x[MD5_DIGESTSIZE] = {0};
 				md5_ctx_t ctx;
 				md5_init(&ctx);
 				md5(x, strmd5, strlen(strmd5));