소스 검색

libobs: Allow deferred source udpate on create

This allows sources to optionally defer update on creation in order to
prevent updates from being called from threads other than the video
thread.
jp9000 11 년 전
부모
커밋
1343d6bdee
1개의 변경된 파일7개의 추가작업 그리고 7개의 파일을 삭제
  1. 7 7
      libobs/obs-source.c

+ 7 - 7
libobs/obs-source.c

@@ -364,14 +364,14 @@ void obs_source_update(obs_source_t source, obs_data_t settings)
 {
 	if (!source) return;
 
-	obs_data_apply(source->context.settings, settings);
+	if (settings)
+		obs_data_apply(source->context.settings, settings);
 
-	if (source->context.data && source->info.update) {
-		if (source->info.output_flags & OBS_SOURCE_VIDEO)
-			source->defer_update = true;
-		else
-			source->info.update(source->context.data,
-					source->context.settings);
+	if (source->info.output_flags & OBS_SOURCE_VIDEO) {
+		source->defer_update = true;
+	} else if (source->context.data && source->info.update) {
+		source->info.update(source->context.data,
+				source->context.settings);
 	}
 }