Browse Source

#IQRV #comment [sipphone] 优化图像渲染流程,优化图像渲染有延时问题

陈礼鹏80274480 4 years ago
parent
commit
f025b5e239

+ 7 - 0
Module/mod_sipphone/video_session.cpp

@@ -2869,6 +2869,12 @@ int video_lib_init()
 	
 #else
 	videoframework_init();
+	if (0 == VideoRender_Init()){
+		Dbg("sdl init success.");
+	}
+	else {
+		Dbg("sdl init failed.");
+	}
 	//av_log_set_callback(&av_log_cb);
 	//av_log_set_level(AV_LOG_TRACE);
 	//av_log_set_level(AV_LOG_QUIET);
@@ -2885,5 +2891,6 @@ void video_lib_deinit()
 #endif // RVC_OS_WIN
 
 	videoframework_term();
+	VideoRender_Term();
 }
 

+ 16 - 0
Other/libvideorender/ivideorenderinterface.cpp

@@ -12,3 +12,19 @@ void  DestroyVideoRenderObj(IVideoRender* pIVideoCapture)
 {
 	pIVideoCapture->VideoRenderDestroy();
 }
+
+int VideoRender_Init()
+{
+	if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER) < 0) {
+		return -1;
+	}
+	else {
+		return 0;
+	}
+}
+
+int VideoRender_Term()
+{
+	SDL_Quit();
+	return 0;
+}

+ 2 - 0
Other/libvideorender/ivideorenderinterface.h

@@ -50,4 +50,6 @@ public:
 
 extern "C" LIBVIDEORENDER_API IVideoRender* CreateVideoRenderObj(IRenderCallback* pCallback);
 extern "C" LIBVIDEORENDER_API void DestroyVideoRenderObj(IVideoRender* pIVideoRender);
+extern "C" LIBVIDEORENDER_API int VideoRender_Init();
+extern "C" LIBVIDEORENDER_API int VideoRender_Term();
 

+ 5 - 5
Other/libvideorender/linux/videorender_linux.cpp

@@ -41,7 +41,7 @@ VideoRenderImpl::~VideoRenderImpl()
 		m_convertbuffer = NULL;
 	}
 		
-	SDL_Quit();
+	//SDL_Quit();
 }
 
 int VideoRenderImpl::SetWindowProperty(videorender_param_t* tparam)
@@ -97,10 +97,10 @@ int VideoRenderImpl::VideoRenderSetParam(videorender_param_t* tparam)
 	}
 
 	if (NULL == m_sdl_window){
-		if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER) < 0){
-			m_callback->Debug("RENDER: Couldn't initialize SDL2: %s", SDL_GetError());
-			return -1;
-		}
+		// if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER) < 0){
+			// m_callback->Debug("RENDER: Couldn't initialize SDL2: %s", SDL_GetError());
+			// return -1;
+		// }
 
 		SDL_SetHint("SDL_HINT_RENDER_SCALE_QUALITY", "1");