Browse Source

Z991239-4157 #comment mod_mediacontroller实体启动优化

80274480 2 years ago
parent
commit
b04fa328b5

+ 25 - 3
Module/mod_localmediaplay/mod_localmediaplay.cpp

@@ -454,10 +454,21 @@ int CLocalMediaPlayEntity::LoadPlayConfig(CPicPlayConfig& config, int CfgInx)
 
 void CLocalMediaPlayEntity::Debug(media_loglevel log_level, const char* fmt, ...)
 {
-	if (log_level >= MEDIA_LOG_DEBUG){
+	if (log_level >= MEDIA_LOG_ERROR){
 		va_list arg;
 		va_start(arg, fmt);
-		vDbg(fmt, arg);
+		int n = _vscprintf(fmt, arg);
+		if (n >= MAX_PATH) {
+			char* buf = (char*)malloc((size_t)(n + 1));
+			vsnprintf(buf, n + 1, fmt, arg);
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("%s", buf);
+			free(buf);
+		}
+		else {
+			char strlog[MAX_PATH] = { 0 };
+			vsnprintf(strlog, MAX_PATH, fmt, arg);
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("%s", strlog);
+		}
 		va_end(arg);
 	}
 }
@@ -467,7 +478,18 @@ void CLocalMediaPlayEntity::PicDebug(pic_loglevel log_level, const char* fmt, ..
 	if (log_level >= PIC_LOG_ERROR){
 		va_list arg;
 		va_start(arg, fmt);
-		vDbg(fmt, arg);
+		int n = _vscprintf(fmt, arg);
+		if (n >= MAX_PATH) {
+			char* buf = (char*)malloc((size_t)(n + 1));
+			vsnprintf(buf, n + 1, fmt, arg);
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("%s", buf);
+			free(buf);
+		}
+		else {
+			char strlog[MAX_PATH] = { 0 };
+			vsnprintf(strlog, MAX_PATH, fmt, arg);
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("%s", strlog);
+		}
 		va_end(arg);
 	}
 }

+ 15 - 4
Module/mod_mediacontroller/Event.h

@@ -43,16 +43,27 @@
 #define ERROR_MOD_MEDIACONTROLLER_HANDFREEIN_INITFAIL		0x20880044  //免提初始化失败,级别3
 #define ERROR_MOD_MEDIACONTROLLER_HANDFREEOUT_INITFAIL		0x20880045  //免提初始化失败,级别3
 
-
-#define ERROR_MOD_MEDIACONTROLLER_CAMERA_OPEN				0x20880061  //打开摄像头
-#define ERROR_MOD_MEDIACONTROLLER_CAMERA_CLOSE				0x20880062  //关闭摄像头
-
 #define ERROR_MOD_MEDIACONTROLLER_ENV_CAMERA_INFO			0x20880063  //env摄像头信息
 #define ERROR_MOD_MEDIACONTROLLER_OPT_CAMERA_INFO			0x20880064  //opt摄像头信息
 
 #define LOG_EVT_MEDIACONTROLLER_CAMERA_MATCHED_FORMAT		0x20880065  //匹配的摄像头分辨率
 #define LOG_EVT_MEDIACONTROLLER_CAMERA_OUTPUT_FORMAT		0x20880066  //摄像头输出图像信息
 
+#define LOG_EVT_MEDIACONTROLLER_CAMERA_INFOS				0x20880067  //摄像头信息
+#define LOG_EVT_MEDIACONTROLLER_CAMERA_COUNT				0x20880068  //摄像头数量
+#define ERROR_MOD_MEDIACONTROLLER_NOCAMERA					0x20880069  //无摄像头
+#define LOG_EVT_MEDIACONTROLLER_GETCAMERA_INFOS				0x20880070  //识别到的摄像头信息
+#define LOG_EVT_MEDIACONTROLLER_AUTO_MODIFY_ENV				0x20880071  //自动调整后的Env摄像头名称
+#define LOG_EVT_MEDIACONTROLLER_AUTO_MODIFY_OPT				0x20880072  //自动调整后的Opt摄像头名称
+#define LOG_EVT_MEDIACONTROLLER_REAL_SELF_CHECK				0x20880073  //摄像头实体自动重启
+
+#define LOG_EVT_MEDIACONTROLLER_ENVCAM_OPEN					0x20880075  //打开上摄像头
+#define LOG_EVT_MEDIACONTROLLER_ENVCAM_CLOSE				0x20880076  //关闭上摄像头
+#define LOG_EVT_MEDIACONTROLLER_OPTCAM_OPEN					0x20880077  //打开下摄像头
+#define LOG_EVT_MEDIACONTROLLER_OPTCAM_CLOSE				0x20880078  //关闭下摄像头
+
+#define ERROR_MOD_MEDIACONTROLLER_CONFIG_ALLERROR			0x20880050  //配置的摄像头都故障
+
 
 //sysvar
 #define SYSVAR_CAMERASTATE	"CameraState"

File diff suppressed because it is too large
+ 176 - 131
Module/mod_mediacontroller/capture.cpp


+ 2 - 0
Module/mod_mediacontroller/capture.h

@@ -135,8 +135,10 @@ namespace MediaController {
 		capture_t *parent;
 		int camera_type; // CAMERA_TYPE_xxx
 		int frame_id;
+		unsigned int ulastcaptime;
 		struct SwsContext *preview_sws_ctx;
 		struct SwsContext *rtp_sws_ctx;
+		unsigned int ustarttime;
 	}video_capture_t;
 
 

File diff suppressed because it is too large
+ 237 - 336
Module/mod_mediacontroller/mod_mediacontroller.cpp


+ 8 - 5
Module/mod_mediacontroller/mod_mediacontroller.h

@@ -77,7 +77,7 @@ public:
 		m_lCaptureEnvOptCount(0), m_lCaptureOptCount(0), m_iEnvEmptyTimes(0), m_iOptEmptyTimes(0), m_bSendCameraError(false),
 		m_nEnvCameraRestartNum(0), m_nOptCameraRestartNum(0), m_nCameraCount(2), m_pSelfcheckClient(NULL),
 		strFrontCam("$"), strRearCam("$"), strEnvCam("$"), strUSBCam("$"), strEwsCam("$"), m_bCustomerwareBegin(false),
-		m_pAudioRenderObj(NULL), m_bRecordPCM(false), m_bIsRemoteRecord(false), m_bHasStartSpeakerRender(false) {
+		m_pAudioRenderObj(NULL), m_bRecordPCM(false), m_bIsRemoteRecord(false), m_bHasStartSpeakerRender(false), m_bConnectedAssist(FALSE){
 
 #ifdef RVC_OS_LINUX
 		m_env_mutex = PTHREAD_MUTEX_INITIALIZER;
@@ -169,6 +169,8 @@ private:
 	ErrorCodeEnum ReStartCamera(int nCamera);
 	virtual CServerSessionBase* OnNewSession(const char* pszRemoteEntityName, const char* pszClass);
 	ErrorCodeEnum RvcGetAudioDevice();
+	ErrorCodeEnum ConnectAssistChannel();
+	void OnTimeCameraStatusCheck();
 
 private:
 	LONG m_lCaptureEnvCount;
@@ -177,10 +179,11 @@ private:
 	CAutoArray<CUUID> m_arrListener;
 	ChannelMediaControllerClient* m_pMediaControllerChannel;
 	SelfChekerClient* m_pSelfcheckClient;
-	IAudioRender* m_pAudioRenderObj;		//add by clp 20200319	扬声器捕捉实体
-	bool m_bRecordPCM;						//add by clp 20200401   是否单独录制PCM音频
-	int m_nSalesAudioSmpPsec;				//add by clp 20200402   销售双录音频采样率
-	bool m_bIsRemoteRecord;					//add by clp 20200403	是否是远程双录
+	IAudioRender* m_pAudioRenderObj;		
+	bool m_bRecordPCM;						
+	int m_nSalesAudioSmpPsec;				
+	bool m_bIsRemoteRecord;					
+	BOOL m_bConnectedAssist;
 
 #ifdef RVC_OS_WIN
 #else

Some files were not shown because too many files changed in this diff