Merge pull request #2657 from hselasky/improvement
libobs: Implement and use better scaling function for 64-bit integers
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
#include <obs-module.h>
|
||||
#include <util/circlebuf.h>
|
||||
#include <util/util_uint64.h>
|
||||
|
||||
#ifndef SEC_TO_NSEC
|
||||
#define SEC_TO_NSEC 1000000000ULL
|
||||
@@ -199,7 +200,8 @@ async_delay_filter_audio(void *data, struct obs_audio_data *audio)
|
||||
|
||||
filter->last_audio_ts = audio->timestamp;
|
||||
|
||||
duration = (uint64_t)audio->frames * SEC_TO_NSEC / filter->samplerate;
|
||||
duration =
|
||||
util_mul_div64(audio->frames, SEC_TO_NSEC, filter->samplerate);
|
||||
end_ts = audio->timestamp + duration;
|
||||
|
||||
for (size_t i = 0; i < MAX_AV_PLANES; i++) {
|
||||
|
@@ -1,5 +1,6 @@
|
||||
#include <obs-module.h>
|
||||
#include <util/circlebuf.h>
|
||||
#include <util/util_uint64.h>
|
||||
|
||||
#define S_DELAY_MS "delay_ms"
|
||||
#define T_DELAY_MS obs_module_text("DelayMs")
|
||||
@@ -90,8 +91,7 @@ static inline void check_interval(struct gpu_delay_filter_data *f)
|
||||
|
||||
obs_get_video_info(&ovi);
|
||||
|
||||
interval_ns =
|
||||
(uint64_t)ovi.fps_den * 1000000000ULL / (uint64_t)ovi.fps_num;
|
||||
interval_ns = util_mul_div64(ovi.fps_den, 1000000000ULL, ovi.fps_num);
|
||||
|
||||
if (interval_ns != f->interval_ns)
|
||||
update_interval(f, interval_ns);
|
||||
|
Reference in New Issue
Block a user