Browse Source

!10683 回滚视频框拖动功能
Merge pull request !10683 from 80274480/revert_merge_10679_T25CZ011_base_ST2_1

陈礼鹏80274480 6 months ago
parent
commit
d951a975c8

+ 15 - 17
Module/mod_sipphone/mod_sipphone.cpp

@@ -115,19 +115,22 @@ static void __audiomgrlog(void* user_data, const char* fmt, va_list arg)
 }
 
 
+
 static void __video_render_log(render_loglevel elevel, void* user_data, const char* fmt, va_list arg)
 {
 	int n = rvc_vsnprintf(NULL, 0, fmt, arg);
-	if (n >= MAX_PATH) {
-		char* buf = (char*)malloc((size_t)(n + 1));
-		rvc_vsnprintf(buf, n + 1, fmt, arg);
-		DbgWithLink((LOG_LEVEL_E)elevel, LOG_TYPE_SYSTEM)("%s", buf);
-		free(buf);
-	}
-	else {
-		char strlog[MAX_PATH] = { 0 };
-		rvc_vsnprintf(strlog, MAX_PATH, fmt, arg);
-		DbgWithLink((LOG_LEVEL_E)elevel, LOG_TYPE_SYSTEM)("%s", strlog);
+	if (elevel >= RENDER_LOG_INFO) {
+		if (n >= MAX_PATH) {
+			char* buf = (char*)malloc((size_t)(n + 1));
+			rvc_vsnprintf(buf, n + 1, fmt, arg);
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("%s", buf);
+			free(buf);
+		}
+		else {
+			char strlog[MAX_PATH] = { 0 };
+			rvc_vsnprintf(strlog, MAX_PATH, fmt, arg);
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("%s", strlog);
+		}
 	}
 }
 
@@ -3254,13 +3257,8 @@ int CSIPPhoneSession::stop_video_render()
 		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("stop video render failed.");
 	}
 
-	if (NULL != m_pEntity->m_render->plocal_render) {
-		DestroyVideoRenderObj(m_pEntity->m_render->plocal_render);
-	}
-
-	if (NULL != m_pEntity->m_render->premote_render) {
-		DestroyVideoRenderObj(m_pEntity->m_render->premote_render);
-	}
+	DestroyVideoRenderObj(m_pEntity->m_render->plocal_render);
+	DestroyVideoRenderObj(m_pEntity->m_render->premote_render);
 
 	delete(m_pEntity->m_render);
 	m_pEntity->m_render = NULL;

+ 2 - 2
Module/mod_sipphone/unix/video_session.cpp

@@ -1656,13 +1656,13 @@ static void __video_render_log(render_loglevel elevel, void* user_data, const ch
 	if (n >= MAX_PATH) {
 		char* buf = (char*)malloc((size_t)(n + 1));
 		vsnprintf(buf, n + 1, fmt, arg);
-		DbgWithLink((LOG_LEVEL_E)elevel, LOG_TYPE_SYSTEM)("%s", buf);
+		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_E)elevel, LOG_TYPE_SYSTEM)("%s", strlog);
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("%s", strlog);
 	}
 }
 

+ 95 - 98
Module/mod_sipphone/video_render.cpp

@@ -75,13 +75,13 @@ static bool get_local_video_frame(video_frame** frame, int itype, Clibvideoqueue
 	videoq_frame frm;
 	frm.data = tmp_frame_preview->data[0];
 
-	//static bool blog = true;
-	//if (blog) {
-	//	int ivideo_width = 0;
-	//	int ivideo_height = 0;
-	//	int isize = local_video_queue->GetFrameSize(ivideo_width, ivideo_height);
-	//	blog = false;
-	//}
+	static bool blog = true;
+	if (blog) {
+		int ivideo_width = 0;
+		int ivideo_height = 0;
+		int isize = local_video_queue->GetFrameSize(ivideo_width, ivideo_height);
+		blog = false;
+	}
 
 	result = local_video_queue->GetVideo(&frm, VIDEOQUEUE_FLAG_HORIZONTAL_FLIP);
 	if (result){
@@ -201,36 +201,6 @@ static int rvc_getrxkimage(IplImage** personimage, IplImage** personmask)
 }
 
 
-static int rvc_setrender_property(IVideoRender* pRender, rvc_video_render_params_t* param, bool blocal)
-{
-	int iret = -1;
-	if (NULL == pRender || NULL == param) {
-		return iret;
-	}
-
-	videorender_param_t tparam = { 0 };
-	if (blocal) {
-		tparam.icx = param->ilocal_view_x;
-		tparam.icy = param->ilocal_view_y;
-		tparam.uwidth = param->ilocal_view_cx;
-		tparam.uheight = param->ilocal_view_cy;
-	}
-	else {
-		tparam.icx = param->iremote_view_x;
-		tparam.icy = param->iremote_view_y;
-		tparam.uwidth = param->iremote_view_cx;
-		tparam.uheight = param->iremote_view_cy;
-	}
-
-	tparam.ivideoformat = VIDEO_FORMAT_RGB24;
-	if (0 == pRender->VideoRenderSetParam(&tparam)) {
-		pRender->HideVideoWindow();
-		iret = 0;
-	}
-
-	return iret;
-}
-
 #ifdef RVC_OS_WIN
 static unsigned int __stdcall rvc_videorender_func(void* arg)
 #else
@@ -239,6 +209,7 @@ static void* rvc_videorender_func(void* arg)
 {
 	rvc_video_render_t* param = (rvc_video_render_t*)arg;
 	int ilocal_video_fresh_time = param->render_param.ilocal_fresh_time;
+	bool bremote_video = false;
 
 	Clibvideoqueue* local_video_queue = NULL;
 	RVC_RendererFlip renderflip = RVC_FLIP_VERTICAL;
@@ -260,49 +231,98 @@ static void* rvc_videorender_func(void* arg)
 	IplImage* personmask = NULL;
 	rvc_getrxkimage(&personimage, &personmask);
 
-	//ivideo_width = 0;
-	//ivideo_height = 0;
-	//isize = local_video_queue->GetFrameSize(ivideo_width, ivideo_height);
-	
-	param->plocal_render->ShowVideoWindow();
+	if (NULL != param->plocal_render) {
+		videorender_param_t tparam = { 0 };
+		tparam.icx = param->render_param.ilocal_view_x;
+		tparam.icy = param->render_param.ilocal_view_y;
+		tparam.uwidth = param->render_param.ilocal_view_cx;
+		tparam.uheight = param->render_param.ilocal_view_cy;
+		tparam.ivideoformat = VIDEO_FORMAT_RGB24;
+		if (0 == param->plocal_render->VideoRenderSetParam(&tparam)) {
+			param->plocal_render->HideVideoWindow();
+		}
+		else {
+			return 0;
+		}
+	}
 
-	for (; ; ) {
+	if (0 != param->render_param.iremote_view_cx && 0 != param->render_param.iremote_view_cy) {
+		if (NULL != param->premote_render) {
+			videorender_param_t tparam_remote = { 0 };
+			tparam_remote.icx = param->render_param.iremote_view_x;
+			tparam_remote.icy = param->render_param.iremote_view_y;
+			tparam_remote.uwidth = param->render_param.iremote_view_cx;
+			tparam_remote.uheight = param->render_param.iremote_view_cy;
+			tparam_remote.ivideoformat = VIDEO_FORMAT_RGB24;
+			if (0 != param->premote_render->VideoRenderSetParam(&tparam_remote)) {
+				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("video render set param failed.");
+			}
+			bremote_video = true;
+		}
+		else {
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("remote video render is null.");
+		}
+	}
+
+	if (NULL != param->plocal_render) {
+		bool bshow_local = false;
+		bool bset = true;
+
+		param->plocal_render->StartVideoRender();
+		ivideo_width = 0;
+		ivideo_height = 0;
+		isize = local_video_queue->GetFrameSize(ivideo_width, ivideo_height);
+
+		for (; ; ) {
 #ifdef RVC_OS_WIN
-		DWORD dwRet = WaitForSingleObject(param->local_render_stop_event, ilocal_video_fresh_time);
-		if (WAIT_TIMEOUT == dwRet) {
+			DWORD dwRet = WaitForSingleObject(param->local_render_stop_event, ilocal_video_fresh_time);
+			if (WAIT_TIMEOUT == dwRet) {
 #else
-		struct timespec ts;
-		clock_gettime(CLOCK_REALTIME, &ts);
-		long unsec = ts.tv_nsec + (1000 * 1000 * ilocal_video_fresh_time);
-		ts.tv_sec += (unsec / 1000000000);
-		ts.tv_nsec = (unsec % 1000000000);
-		if (0 != sem_timedwait(&param->local_render_stop_sem, &ts) && (ETIMEDOUT == errno)){
+			struct timespec ts;
+			clock_gettime(CLOCK_REALTIME, &ts);
+			long unsec = ts.tv_nsec + (1000 * 1000 * ilocal_video_fresh_time);
+			ts.tv_sec += (unsec / 1000000000);
+			ts.tv_nsec = (unsec % 1000000000);
+			if (0 != sem_timedwait(&param->local_render_stop_sem, &ts) && (ETIMEDOUT == errno)){
 #endif
-			video_frame* local_video_frame = NULL;
-			int iwindowstate = param->cb.on_window_type(param->cb.user_data);
-			get_local_video_frame(&local_video_frame, iwindowstate, local_video_queue, iwidth, iheight, personimage, personmask);
-
-			if (NULL != local_video_frame) {
-				video_frame* localframe = NULL;
-				if (0 == translate_image_resolution(&localframe, param->render_param.ilocal_view_cx, param->render_param.ilocal_view_cy, local_video_frame)) {					
-					param->plocal_render->RenderVideoFrame(localframe, renderflip);
-					video_frame_delete(localframe);
-					localframe = NULL;
-				}
-				else {
-					param->plocal_render->RenderVideoFrame(local_video_frame, renderflip);
+				video_frame* local_video_frame = NULL;
+				int iwindowstate = param->cb.on_window_type(param->cb.user_data);
+				get_local_video_frame(&local_video_frame, iwindowstate, local_video_queue, iwidth, iheight, personimage, personmask);
+
+				if (NULL != local_video_frame) {
+					video_frame* localframe = NULL;
+					if (0 == translate_image_resolution(&localframe, param->render_param.ilocal_view_cx, param->render_param.ilocal_view_cy, local_video_frame)) {					
+						param->plocal_render->RenderVideoFrame(localframe, renderflip);
+						video_frame_delete(localframe);
+						localframe = NULL;
+					}
+					else {
+						param->plocal_render->RenderVideoFrame(local_video_frame, renderflip);
+					}
+
+					bshow_local = true;
+					video_frame_delete(local_video_frame);
+					local_video_frame = NULL;
 				}
+			}
+			else {
+				param->plocal_render->HideVideoWindow();
+				break;
+			}
 
-				video_frame_delete(local_video_frame);
-				local_video_frame = NULL;
+			if (bset) {
+				if (bshow_local) {
+					param->plocal_render->ShowVideoWindow();
+					if (bremote_video) {
+						param->premote_render->ShowVideoWindow();
+					}
+					bset = false;
+				}
 			}
 		}
-		else {
-			param->plocal_render->HideVideoWindow();
-			break;
-		}
+		param->plocal_render->StopVideoRender();
 	}
-	
+
 	if (NULL != personimage) {
 		cvReleaseImage(&personimage);
 	}
@@ -315,7 +335,7 @@ static void* rvc_videorender_func(void* arg)
 }
 
 
-static int rvc_get_agent_videoframe(video_frame** remote_frame)
+static int rvc_get_remote_videoframe(video_frame** remote_frame)
 {
 	int iret = -1;
 
@@ -379,7 +399,7 @@ static void* rvc_remote_videorender_func(void* arg)
 	Clibvideoqueue* video_shm_q_remote = new Clibvideoqueue(REC_COMMON_VIDEO_REMOTE_SHM_RTP_QUEUE);
 
 	video_frame* remote_frame = NULL;
-	rvc_get_agent_videoframe(&remote_frame);
+	rvc_get_remote_videoframe(&remote_frame);
 
 	video_frame* showframe = NULL;
 	if (-1 == translate_image_resolution(&showframe, param->render_param.iremote_view_cx, param->render_param.iremote_view_cy, remote_frame)) {
@@ -393,8 +413,6 @@ static void* rvc_remote_videorender_func(void* arg)
 	if (rc != Error_Succeed) {
 		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("insert agent picture to remote video queue failed.");
 	}
-	
-	param->premote_render->ShowVideoWindow();
 
 	for (; ; ) {
 #ifdef RVC_OS_WIN
@@ -436,10 +454,10 @@ static unsigned int __stdcall rvc_optcam_videorender_func(void* arg)
 #else
 static void* rvc_optcam_videorender_func(void* arg)
 #endif
-{	
+{
 	rvc_video_render_t* param = (rvc_video_render_t*)arg;
 	int iremote_video_fresh_time = param->render_param.iremote_fresh_time;
-
+	
 	Clibvideoqueue* local_optvideo_queue = new Clibvideoqueue(REC_COMMON_VIDEO_OPT_SHM_SNAPSHOT_QUEUE);
 	int iwidth = REC_COMMON_VIDEO_SNAPSHOT_HEIGHT;
 	int iheight = REC_COMMON_VIDEO_SNAPSHOT_WIDTH;
@@ -450,8 +468,6 @@ static void* rvc_optcam_videorender_func(void* arg)
 	renderflip = RVC_FLIP_HORIZONTAL;
 #endif
 
-	param->premote_render->ShowVideoWindow();
-	
 	for (; ; ) {
 #ifdef RVC_OS_WIN
 		DWORD dwRet = WaitForSingleObject(param->remote_render_stop_event, iremote_video_fresh_time);
@@ -536,19 +552,11 @@ int rvc_start_video_render(rvc_video_render_t* prender, eVideoRenderMode eMode,
 		return Error_Resource;
 	}
 
-	if (0 != rvc_setrender_property(prender->plocal_render, &prender->render_param, true)) {
-		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("set local video render property failed.");
-		return Error_Resource;
-	}
-	
 	errcode = pthread_create(&prender->local_render_threadid, NULL, rvc_videorender_func, prender);
 	if (Error_Succeed != errcode) {
 		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("create local video render thread failed.");
 		return Error_Resource;
 	}
-	else {
-		prender->plocal_render->StartVideoRender();
-	}
 
 	if (eRender_LocalRemote == eMode || eRender_Local_Both == eMode) {
 		if (0 != sem_init(&prender->remote_render_stop_sem, 0, 0)) {
@@ -556,11 +564,6 @@ int rvc_start_video_render(rvc_video_render_t* prender, eVideoRenderMode eMode,
 			return Error_Resource;
 		}
 
-		if (0 != rvc_setrender_property(prender->premote_render, &prender->render_param, false)) {
-			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("set remote video render property failed.");
-			return Error_Resource;
-		}
-
 		if (eRender_LocalRemote == eMode) {
 			errcode = pthread_create(&prender->remote_render_threadid, NULL, rvc_remote_videorender_func, prender);
 		}
@@ -572,9 +575,6 @@ int rvc_start_video_render(rvc_video_render_t* prender, eVideoRenderMode eMode,
 			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("create remote video render thread failed.");
 			return Error_Resource;
 		}
-		else {
-			prender->premote_render->StartVideoRender();
-		}
 	}
 #endif // RVC_OS_WIN
 
@@ -604,7 +604,6 @@ int rvc_stop_video_render(rvc_video_render_t* prender)
 		prender->local_render_stop_event = NULL;
 	}
 #else
-	prender->plocal_render->StopVideoRender();
 	sem_post(&prender->local_render_stop_sem);
 	rvc_stop_remote_video_render(prender);
 	if (prender->local_render_threadid > 0) {
@@ -628,7 +627,6 @@ int rvc_stop_remote_video_render(rvc_video_render_t* prender)
 {
 #ifdef RVC_OS_WIN
 	if (NULL != prender->remote_render_thread) {
-		prender->premote_render->StopVideoRender();
 		SetEvent(prender->remote_render_stop_event);
 		WaitForSingleObject(prender->remote_render_thread, INFINITE);
 		CloseHandle(prender->remote_render_thread);
@@ -640,7 +638,6 @@ int rvc_stop_remote_video_render(rvc_video_render_t* prender)
 	}
 #else
 	if (prender->remote_render_threadid > 0) {
-		prender->premote_render->StopVideoRender();
 		sem_post(&prender->remote_render_stop_sem);
 		if (0 == pthread_join(prender->remote_render_threadid, NULL)) {
 			prender->remote_render_threadid = 0;

+ 12 - 10
Module/mod_sipphone/win/video_session.cpp

@@ -1675,16 +1675,18 @@ static unsigned int __stdcall ui_proc(void *arg)
 static void __video_render_log(render_loglevel elevel, void* user_data, const char* fmt, va_list arg)
 {
 	int n = _vsnprintf(NULL, 0, fmt, arg);
-	if (n >= MAX_LOG_LEN) {
-		char* buf = (char*)malloc((size_t)(n + 1));
-		_vsnprintf(buf, n + 1, fmt, arg);
-		DbgWithLink((LOG_LEVEL_E)elevel, LOG_TYPE_SYSTEM)("%s", buf);
-		free(buf);
-	}
-	else {
-		char strlog[MAX_LOG_LEN] = { 0 };
-		_vsnprintf(strlog, MAX_LOG_LEN, fmt, arg);
-		DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("%s", strlog);
+	if (elevel >= RENDER_LOG_INFO) {
+		if (n >= MAX_LOG_LEN) {
+			char* buf = (char*)malloc((size_t)(n + 1));
+			_vsnprintf(buf, n + 1, fmt, arg);
+			DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("%s", buf);
+			free(buf);
+		}
+		else {
+			char strlog[MAX_LOG_LEN] = { 0 };
+			_vsnprintf(strlog, MAX_LOG_LEN, fmt, arg);
+			DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("%s", strlog);
+		}
 	}
 }
 

+ 2 - 4
Other/libvideorender/ivideorenderinterface.cpp

@@ -8,11 +8,9 @@ IVideoRender* CreateVideoRenderObj(videorender_callback_t* pCallback)
 }
 
 
-void  DestroyVideoRenderObj(IVideoRender* pIVideoRender)
+void  DestroyVideoRenderObj(IVideoRender* pIVideoCapture)
 {
-	if (NULL != pIVideoRender) {
-		pIVideoRender->VideoRenderDestroy();
-	}	
+	pIVideoCapture->VideoRenderDestroy();
 }
 
 int VideoRender_Init()

+ 5 - 3
Other/libvideorender/ivideorenderinterface.h

@@ -31,16 +31,18 @@ typedef struct videorender_param_s {
 	uint32_t uvideoheight;
 	uint32_t uwidth;
 	uint32_t uheight;
+	uint32_t uwinflags;
+	bool bpersonarea;
 	int ivideoformat;
 	bool bmoveable;
 }videorender_param_t;
 
+
 enum render_loglevel {
+	RENDER_LOG_NO,
 	RENDER_LOG_DEBUG,
 	RENDER_LOG_INFO,
-	RENDER_LOG_WARN,
-	RENDER_LOG_ERROR,
-	RENDER_LOG_FATAL
+	RENDER_LOG_ERROR
 };
 
 typedef struct videorender_callback_s

+ 21 - 48
Other/libvideorender/libvideorender.cpp

@@ -8,7 +8,7 @@
 #endif
 
 #ifndef RVC_DEFAULT_DELAY_TIME
-#define RVC_DEFAULT_DELAY_TIME 10
+#define RVC_DEFAULT_DELAY_TIME 1
 #endif
 
 
@@ -20,7 +20,7 @@ VideoRenderImpl::VideoRenderImpl(videorender_callback_t* pCallback)
 	memcpy(&m_callback, pCallback, sizeof(videorender_callback_t));
 
 	m_refresh_flag = false;
-	m_bmoveable = true;
+	m_bmoveable = false;
 	m_refresh_thread = NULL;
 
 	m_cx = SDL_WINDOWPOS_UNDEFINED;
@@ -28,7 +28,7 @@ VideoRenderImpl::VideoRenderImpl(videorender_callback_t* pCallback)
 	m_width = 0;
 	m_height = 0;
 	m_videoformat = VIDEO_FORMAT_RGB24;
-	m_flags = SDL_WINDOW_SHOWN | SDL_WINDOW_BORDERLESS | SDL_WINDOW_ALWAYS_ON_TOP;
+	m_flags = SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE | SDL_WINDOW_BORDERLESS | SDL_WINDOW_HIDDEN | SDL_WINDOW_ALWAYS_ON_TOP | SDL_WINDOW_SKIP_TASKBAR | SDL_WINDOW_POPUP_MENU;
 }
 
 
@@ -74,6 +74,8 @@ int VideoRenderImpl::SetWindowProperty(videorender_param_t* tparam)
 		m_videoheight = tparam->uvideoheight;
 	}
 
+	m_flags |= tparam->uwinflags;
+
 	m_videoformat = tparam->ivideoformat;
 
 	iRet = 0;
@@ -84,6 +86,7 @@ int VideoRenderImpl::SetWindowProperty(videorender_param_t* tparam)
 SDL_PixelFormatEnum VideoRenderImpl::GetPixelFormat()
 {
 	SDL_PixelFormatEnum eType = SDL_PIXELFORMAT_BGR24;
+	//SDL_PixelFormatEnum eType = SDL_PIXELFORMAT_BGR888;
 	if (VIDEO_FORMAT_I420 == m_videoformat){
 		eType = SDL_PIXELFORMAT_IYUV;
 	}
@@ -104,7 +107,7 @@ int VideoRenderImpl::VideoRenderSetParam(videorender_param_t* tparam)
 		//	return -1;
 		//}
 
-		SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "1");
+		SDL_SetHint("SDL_HINT_RENDER_SCALE_QUALITY", "1");
 
 		m_sdl_window = SDL_CreateWindow(
 			"rvc video",    // window title
@@ -138,7 +141,6 @@ int VideoRenderImpl::VideoRenderSetParam(videorender_param_t* tparam)
 		if (m_width > display_mode.w) {
 			m_width = display_mode.w;
 		}
-
 		if (m_height > display_mode.h) {
 			m_height = display_mode.h;
 		}
@@ -153,7 +155,6 @@ int VideoRenderImpl::VideoRenderSetParam(videorender_param_t* tparam)
 		VideoRenderDestroy();
 		return -5;
 	}
-
 	static bool blog = true;
 	/* Print the list of the available renderers*/
 	if (blog) {
@@ -168,10 +169,10 @@ int VideoRenderImpl::VideoRenderSetParam(videorender_param_t* tparam)
 			if (blog) {
 				RenderLog(RENDER_LOG_DEBUG, " %2d: %s", i, rend_info->name);
 			}
-			//RenderLog(RENDER_LOG_DEBUG,"    SDL_RENDERER_TARGETTEXTURE [%c]", (rend_info->flags & SDL_RENDERER_TARGETTEXTURE) ? 'X' : ' ');
-			//RenderLog(RENDER_LOG_DEBUG,"    SDL_RENDERER_SOFTWARE      [%c]", (rend_info->flags & SDL_RENDERER_SOFTWARE) ? 'X' : ' ');
-			//RenderLog(RENDER_LOG_DEBUG,"    SDL_RENDERER_ACCELERATED   [%c]", (rend_info->flags & SDL_RENDERER_ACCELERATED) ? 'X' : ' ');
-			//RenderLog(RENDER_LOG_DEBUG,"    SDL_RENDERER_PRESENTVSYNC  [%c]", (rend_info->flags & SDL_RENDERER_PRESENTVSYNC) ? 'X' : ' ');
+			//m_callback->Debug("    SDL_RENDERER_TARGETTEXTURE [%c]", (rend_info->flags & SDL_RENDERER_TARGETTEXTURE) ? 'X' : ' ');
+			//m_callback->Debug("    SDL_RENDERER_SOFTWARE      [%c]", (rend_info->flags & SDL_RENDERER_SOFTWARE) ? 'X' : ' ');
+			//m_callback->Debug("    SDL_RENDERER_ACCELERATED   [%c]", (rend_info->flags & SDL_RENDERER_ACCELERATED) ? 'X' : ' ');
+			//m_callback->Debug("    SDL_RENDERER_PRESENTVSYNC  [%c]", (rend_info->flags & SDL_RENDERER_PRESENTVSYNC) ? 'X' : ' ');
 		}
 	}
 	free(rend_info);
@@ -190,7 +191,8 @@ int VideoRenderImpl::VideoRenderSetParam(videorender_param_t* tparam)
 			SDL_RENDERER_TARGETTEXTURE |
 			SDL_RENDERER_SOFTWARE);
 
-		if (m_renderer == NULL){
+		if (m_renderer == NULL)
+		{
 			RenderLog(RENDER_LOG_ERROR, "RENDER: (SDL2) Couldn't get a software renderer: %s", SDL_GetError());
 			RenderLog(RENDER_LOG_ERROR, "RENDER: (SDL2) giving up...");
 			VideoRenderDestroy();
@@ -245,13 +247,14 @@ int VideoRenderImpl::VideoRenderSetParam(videorender_param_t* tparam)
 static int refresh_video(void *opaque)
 {
 	VideoRenderImpl* pImpl = (VideoRenderImpl*)opaque;
-
+	pImpl->RenderLog(RENDER_LOG_DEBUG, "function enter %s:%d", __FUNCTION__, __LINE__);
 	while (pImpl->GetReFreshFlag()) {
 		SDL_Event event;
 		event.type = REFRESH_EVENT;
 		SDL_PushEvent(&event);
 		SDL_Delay(RVC_DEFAULT_DELAY_TIME);
 	}
+	pImpl->RenderLog(RENDER_LOG_DEBUG, "function leave %s:%d", __FUNCTION__, __LINE__);
 
 	return 0;
 }
@@ -266,11 +269,6 @@ static SDL_HitTestResult SDLCALL SDL_HitTestCallback(SDL_Window *win, const SDL_
 	VideoRenderImpl* pImpl = (VideoRenderImpl*)data;
 
 	SDL_GetWindowSize(win, &w, &h);
-	
-	pImpl->RenderLog(RENDER_LOG_DEBUG, "win = 0x%08x, current windows is 0x%08x.", win, pImpl->GetRenderWindow());
-	pImpl->RenderLog(RENDER_LOG_DEBUG, "SDL_GetWindowSize area->x = %d, area->y = %d, w = %d, h = %d.", area->x, area->y, w, h);
-
-	return SDL_HITTEST_DRAGGABLE;
 
 	if (area->x < RESIZE_BORDER) {
 		if (area->y < RESIZE_BORDER) {
@@ -283,8 +281,7 @@ static SDL_HitTestResult SDLCALL SDL_HitTestCallback(SDL_Window *win, const SDL_
 			pImpl->RenderLog(RENDER_LOG_DEBUG, "SDL_HITTEST_RESIZE_LEFT");
 			return SDL_HITTEST_RESIZE_LEFT;
 		}
-	} 
-	else if (area->x >= (w-RESIZE_BORDER)) {
+	} else if (area->x >= (w-RESIZE_BORDER)) {
 		if (area->y < RESIZE_BORDER) {
 			pImpl->RenderLog(RENDER_LOG_DEBUG, "SDL_HITTEST_RESIZE_TOPRIGHT");
 			return SDL_HITTEST_RESIZE_TOPRIGHT;
@@ -295,19 +292,17 @@ static SDL_HitTestResult SDLCALL SDL_HitTestCallback(SDL_Window *win, const SDL_
 			pImpl->RenderLog(RENDER_LOG_DEBUG, "SDL_HITTEST_RESIZE_RIGHT");
 			return SDL_HITTEST_RESIZE_RIGHT;
 		}
-	} 
-	else if (area->y >= (h-RESIZE_BORDER)) {
+	} else if (area->y >= (h-RESIZE_BORDER)) {
 		pImpl->RenderLog(RENDER_LOG_DEBUG, "SDL_HITTEST_RESIZE_BOTTOM");
 		return SDL_HITTEST_RESIZE_BOTTOM;
-	} 
-	else if (area->y < RESIZE_BORDER) {
+	} else if (area->y < RESIZE_BORDER) {
 		pImpl->RenderLog(RENDER_LOG_DEBUG, "SDL_HITTEST_RESIZE_TOP");
 		return SDL_HITTEST_RESIZE_TOP;
-	} 
-	else if (area->y < DRAGGABLE_TITLE) {
+	} else if (area->y < DRAGGABLE_TITLE) {
 		pImpl->RenderLog(RENDER_LOG_DEBUG, "SDL_HITTEST_DRAGGABLE");
 		return SDL_HITTEST_DRAGGABLE;
 	}
+	return SDL_HITTEST_NORMAL;
 }
 
 
@@ -321,16 +316,8 @@ int VideoRenderImpl::StartVideoRender()
 	m_refresh_flag = true;
 	m_refresh_thread = SDL_CreateThread(refresh_video,"refresh video thread", this);
 	RenderLog(RENDER_LOG_DEBUG, "%s:%d m_refresh_thread is 0x%08x.",__FUNCTION__, __LINE__, m_refresh_thread);
-	if (NULL == m_refresh_thread) {
-		RenderLog(RENDER_LOG_ERROR, "SDL_Create refresh video thread failed: %s.", SDL_GetError());
-		return -1;
-	}
-
 	if (m_bmoveable){
-		if (0 != SDL_SetWindowHitTest(m_sdl_window, SDL_HitTestCallback, this)) {
-			RenderLog(RENDER_LOG_ERROR, "SDL_SetWindowHitTest failed: %s.", SDL_GetError());
-			return -1;
-		}
+		SDL_SetWindowHitTest(m_sdl_window, SDL_HitTestCallback, this);
 	}
 
 	return 0;
@@ -426,20 +413,6 @@ int VideoRenderImpl::RenderVideoFrame(video_frame* pframe, RVC_RendererFlip eFli
 
 		SDL_Delay(RVC_DEFAULT_DELAY_TIME);
 	}
-	else if(SDL_MOUSEBUTTONDOWN == event.type)
-	{
-		RenderLog(RENDER_LOG_DEBUG, "Mouse button pressed down.");
-		RenderLog(RENDER_LOG_DEBUG, "  - Mouse position: (%d, %d)", event.button.x, event.button.y);
-		RenderLog(RENDER_LOG_DEBUG, "  - Mouse button: %d.", event.button.button);
-	}
-	else if (SDL_MOUSEBUTTONUP == event.type) {
-		RenderLog(RENDER_LOG_DEBUG, "Mouse button released.");
-		RenderLog(RENDER_LOG_DEBUG, "  - Mouse position: (%d, %d)", event.button.x, event.button.y);
-		RenderLog(RENDER_LOG_DEBUG, "  - Mouse button: %d", event.button.button);
-	}
-	else {
-		//RenderLog(RENDER_LOG_DEBUG, "SDL_WaitEvent type is %d.", event.type);
-	}
 
 	iret = 0;
 

+ 1 - 4
Other/libvideorender/libvideorender.h

@@ -20,6 +20,7 @@ class VideoRenderImpl : public IVideoRender
 {
 public:
 	VideoRenderImpl(videorender_callback_t* pCallback);
+	~VideoRenderImpl();
 
 	int VideoRenderSetParam(videorender_param_t* tparam);
 	int StartVideoRender();
@@ -34,10 +35,6 @@ public:
 	void ConVert24to32(unsigned char* image_in, unsigned char* image_out, int w, int h);
 	bool GetReFreshFlag();
 	void RenderLog(render_loglevel elevel, const char* fmt, ...);
-	SDL_Window* GetRenderWindow() { return m_sdl_window; }
-
-private:
-	~VideoRenderImpl();
 
 private:
 	SDL_Window* m_sdl_window;