Differential D25097 Diff 72666 multimedia/obs-studio/files/patch-libobs_audio-monitoring_win32_wasapi-output.c
Changeset View
Changeset View
Standalone View
Standalone View
multimedia/obs-studio/files/patch-libobs_audio-monitoring_win32_wasapi-output.c
- This file was added.
--- libobs/audio-monitoring/win32/wasapi-output.c.orig 2020-04-26 23:47:36 UTC | |||||
+++ libobs/audio-monitoring/win32/wasapi-output.c | |||||
@@ -2,6 +2,7 @@ | |||||
#include "../../util/circlebuf.h" | |||||
#include "../../util/platform.h" | |||||
#include "../../util/darray.h" | |||||
+#include "../../util/util_uint64.h" | |||||
#include "../../obs-internal.h" | |||||
#include "wasapi-output.h" | |||||
@@ -78,8 +79,8 @@ static bool process_audio_delay(struct audio_monitor * | |||||
monitor->prev_video_ts = last_frame_ts; | |||||
} else if (monitor->prev_video_ts == last_frame_ts) { | |||||
- monitor->time_since_prev += (uint64_t)*frames * 1000000000ULL / | |||||
- (uint64_t)monitor->sample_rate; | |||||
+ monitor->time_since_prev += util_mul_div64( | |||||
+ *frames, 1000000000ULL, monitor->sample_rate); | |||||
} else { | |||||
monitor->time_since_prev = 0; | |||||
} | |||||
@@ -90,8 +91,8 @@ static bool process_audio_delay(struct audio_monitor * | |||||
circlebuf_peek_front(&monitor->delay_buffer, &cur_ts, | |||||
sizeof(ts)); | |||||
- front_ts = cur_ts - ((uint64_t)pad * 1000000000ULL / | |||||
- (uint64_t)monitor->sample_rate); | |||||
+ front_ts = cur_ts - util_mul_div64(pad, 1000000000ULL, | |||||
+ monitor->sample_rate); | |||||
diff = (int64_t)front_ts - (int64_t)last_frame_ts; | |||||
bad_diff = !last_frame_ts || llabs(diff) > 5000000000 || | |||||
monitor->time_since_prev > 100000000ULL; |