Changeset View
Changeset View
Standalone View
Standalone View
multimedia/obs-studio/files/patch-libobs_obs-source.c
- This file was added.
--- libobs/obs-source.c.orig 2020-04-26 23:47:36 UTC | |||||
+++ libobs/obs-source.c | |||||
@@ -23,6 +23,7 @@ | |||||
#include "media-io/audio-io.h" | |||||
#include "util/threading.h" | |||||
#include "util/platform.h" | |||||
+#include "util/util_uint64.h" | |||||
#include "callback/calldata.h" | |||||
#include "graphics/matrix3.h" | |||||
#include "graphics/vec3.h" | |||||
@@ -1165,13 +1166,13 @@ static inline uint64_t conv_frames_to_time(const size_ | |||||
if (!sample_rate) | |||||
return 0; | |||||
- return (uint64_t)frames * 1000000000ULL / (uint64_t)sample_rate; | |||||
+ return util_mul_div64(frames, 1000000000ULL, sample_rate); | |||||
} | |||||
static inline size_t conv_time_to_frames(const size_t sample_rate, | |||||
const uint64_t duration) | |||||
{ | |||||
- return (size_t)(duration * (uint64_t)sample_rate / 1000000000ULL); | |||||
+ return (size_t)util_mul_div64(duration, sample_rate, 1000000000ULL); | |||||
} | |||||
/* maximum buffer size */ | |||||
@@ -1235,7 +1236,7 @@ static inline uint64_t uint64_diff(uint64_t ts1, uint6 | |||||
static inline size_t get_buf_placement(audio_t *audio, uint64_t offset) | |||||
{ | |||||
uint32_t sample_rate = audio_output_get_sample_rate(audio); | |||||
- return (size_t)(offset * (uint64_t)sample_rate / 1000000000ULL); | |||||
+ return (size_t)util_mul_div64(offset, sample_rate, 1000000000ULL); | |||||
} | |||||
static void source_output_audio_place(obs_source_t *source, |