@@ -178,21 +178,35 @@ def CheckAudioDevice(self):
178
178
self .error_found .emit (audio_error )
179
179
180
180
# Check active sample rate from audio device
181
+ # Parse string as float ("48000.0" -> 48000 OR NaN)
181
182
detected_sample_rate = float (self .player .GetDefaultSampleRate ())
182
183
if detected_sample_rate and not math .isnan (detected_sample_rate ) and detected_sample_rate > 0.0 :
184
+ # Convert float to Integer
185
+ detected_sample_rate_int = round (detected_sample_rate )
186
+
183
187
s = get_app ().get_settings ()
184
- rate = int (s .get ("default-samplerate" ) or 48000 )
185
- if detected_sample_rate != rate :
188
+ settings_sample_rate = int (s .get ("default-samplerate" ) or 48000 )
189
+ if detected_sample_rate_int != settings_sample_rate :
186
190
log .warning ("Your sample rate (%d) does not match OpenShot (%d). "
187
191
"Adjusting your 'Preferences->Preview->Default Sample Rate to match your "
188
- "system rate: %d." % (detected_sample_rate , rate , detected_sample_rate ))
192
+ "system rate: %d." % (detected_sample_rate_int ,
193
+ settings_sample_rate ,
194
+ detected_sample_rate_int ))
189
195
190
196
# Update default sample rate in settings
191
- s .set ("default-samplerate" , detected_sample_rate )
197
+ s .set ("default-samplerate" , detected_sample_rate_int )
192
198
193
199
# Update current project's sample rate, so we don't have some crazy
194
200
# audio drift due to mis-matching sample rates
195
- get_app ().updates .update (["sample_rate" ], detected_sample_rate )
201
+ get_app ().updates .update (["sample_rate" ], detected_sample_rate_int )
202
+
203
+ # Convert float 'settings' sample rate to Integer, if detected
204
+ if type (s .get ("default-samplerate" )) == float :
205
+ s .set ("default-samplerate" , detected_sample_rate_int )
206
+
207
+ # Convert float 'project' sample rate to Integer, if detected
208
+ if type (get_app ().project .get ("sample_rate" )) == float :
209
+ get_app ().updates .update (["sample_rate" ], round (get_app ().project .get ("sample_rate" )))
196
210
197
211
# Check active audio device name and type from audio device
198
212
active_audio_device = self .player .GetCurrentAudioDevice ()
0 commit comments