Browse Source

Z991239-5945 #comment 优化win下开始和停止回显功能

80274480 8 tháng trước cách đây
mục cha
commit
aeee6f489b
2 tập tin đã thay đổi với 24 bổ sung2 xóa
  1. 1 1
      Module/mod_sipphone/mod_sipphone.cpp
  2. 23 1
      Module/mod_sipphone/video_render.cpp

+ 1 - 1
Module/mod_sipphone/mod_sipphone.cpp

@@ -2477,7 +2477,7 @@ int CSIPEntity::StartCameraRender(int icamid, int ivideoview_x, int ivideoview_y
 	m_stVideoParam.bShowPersonArea = 0;
 
 	if (Error_Succeed == rvc_start_video_render(m_render, false, &t_render_callback)) {
-		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("start video render success.");
+		DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("start video render success.");
 		m_bIsCameraRender = true;
 	}
 

+ 23 - 1
Module/mod_sipphone/video_render.cpp

@@ -452,15 +452,37 @@ static void* rvc_remote_videorender_func(void* arg)
 int rvc_start_video_render(rvc_video_render_t* prender, bool bremote, rvc_video_box_move_callback_t* cb)
 {
 	int errcode = -1;
+	if (NULL == prender) {
+		return errcode;
+	}
+
 #ifdef RVC_OS_WIN
 	prender->local_render_stop_event = CreateEventA(NULL, false, false, NULL);
+	if (NULL == prender->local_render_stop_event) {
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("create local stop event failed!");
+		return Error_Resource;
+	}
+
 	prender->local_render_thread = (HANDLE)_beginthreadex(NULL, 0, rvc_videorender_func, prender, 0, NULL);
+	if (NULL == prender->local_render_thread) {
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("create local video render thread failed.");
+		return Error_Resource;
+	}
 
 	if (bremote) {
 		prender->remote_render_stop_event = CreateEventA(NULL, false, false, NULL);
+		if (NULL == prender->local_render_stop_event) {
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("create remote stop event failed!");
+			return Error_Resource;
+		}
+
 		prender->remote_render_thread = (HANDLE)_beginthreadex(NULL, 0, rvc_remote_videorender_func, prender, 0, NULL);
+		if (NULL == prender->remote_render_thread) {
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("create remote video render thread failed.");
+			return Error_Resource;
+		}
 	}
-
+	errcode = 0;
 #else
 	if (0 != sem_init(&prender->local_render_stop_sem, 0, 0)) {
 		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("create local stop sem failed!");