Ver código fonte

win-wasapi: Use system timestamps by default for input

Microphones and other input devices can often have bad or erroneous
timestamps.  Although we handle bad timestamps much better in
obs-studio, there are still lingering issues that can crop up from time
to time with device QPC timestamps that leads to mic data not playing
back properly.  It's best if it be off by default rather than on, which
will now cause it to use system timestamps for input devices by default.
This changes it to the same handling as OBS1 for this case.
jp9000 10 anos atrás
pai
commit
18542461f2
1 arquivos alterados com 9 adições e 3 exclusões
  1. 9 3
      plugins/win-wasapi/win-wasapi.cpp

+ 9 - 3
plugins/win-wasapi/win-wasapi.cpp

@@ -486,7 +486,13 @@ static const char *GetWASAPIOutputName(void*)
 	return obs_module_text("AudioOutput");
 }
 
-static void GetWASAPIDefaults(obs_data_t *settings)
+static void GetWASAPIDefaultsInput(obs_data_t *settings)
+{
+	obs_data_set_default_string(settings, OPT_DEVICE_ID, "default");
+	obs_data_set_default_bool(settings, OPT_USE_DEVICE_TIMING, false);
+}
+
+static void GetWASAPIDefaultsOutput(obs_data_t *settings)
 {
 	obs_data_set_default_string(settings, OPT_DEVICE_ID, "default");
 	obs_data_set_default_bool(settings, OPT_USE_DEVICE_TIMING, true);
@@ -572,7 +578,7 @@ void RegisterWASAPIInput()
 	info.create          = CreateWASAPIInput;
 	info.destroy         = DestroyWASAPISource;
 	info.update          = UpdateWASAPISource;
-	info.get_defaults    = GetWASAPIDefaults;
+	info.get_defaults    = GetWASAPIDefaultsInput;
 	info.get_properties  = GetWASAPIPropertiesInput;
 	obs_register_source(&info);
 }
@@ -587,7 +593,7 @@ void RegisterWASAPIOutput()
 	info.create          = CreateWASAPIOutput;
 	info.destroy         = DestroyWASAPISource;
 	info.update          = UpdateWASAPISource;
-	info.get_defaults    = GetWASAPIDefaults;
+	info.get_defaults    = GetWASAPIDefaultsOutput;
 	info.get_properties  = GetWASAPIPropertiesOutput;
 	obs_register_source(&info);
 }